#转换 #高级 #通道 #转换 #libsamplerate #samplerates

samplerate

一个基于libsamplerate进行采样率转换的库

11个版本

使用旧的Rust 2015

0.2.4 2021年1月14日
0.2.3 2020年11月19日
0.2.2 2020年4月29日
0.2.1 2019年7月7日
0.1.5 2018年10月30日

#205 in 音频

Download history 3100/week @ 2024-03-14 4726/week @ 2024-03-21 4494/week @ 2024-03-28 4613/week @ 2024-04-04 3240/week @ 2024-04-11 3034/week @ 2024-04-18 2915/week @ 2024-04-25 3517/week @ 2024-05-02 2313/week @ 2024-05-09 2004/week @ 2024-05-16 1983/week @ 2024-05-23 2199/week @ 2024-05-30 1439/week @ 2024-06-06 2178/week @ 2024-06-13 2306/week @ 2024-06-20 2544/week @ 2024-06-27

8,805 每月下载量
用于 4 crates

BSD-2-Clause

28KB
482

采样率

Build Status Docs

Rust的采样率转换库。此库为libsamplerate-sys提供高级API,因此建立在libsamplerate之上。

示例

extern crate samplerate;
extern crate hound;

use samplerate::{convert, ConverterType};
use hound::{WavSpec, WavWriter, SampleFormat};

fn main() {
    // Generate a 880Hz sine wave for 1 second in 44100Hz with one channel.
    let freq = std::f32::consts::PI * 880f32 / 44100f32;
    let input: Vec<f32> = (0..44100 * 5).map(|i| (freq * i as f32).sin()).collect();

    // Resample the input from 44100Hz to 48000Hz.
    let resampled = convert(44100, 48000, 1, ConverterType::SincBestQuality, &input).unwrap();

    // Write the resampled pcm data to disk.
    let mut writer = WavWriter::create("resampled.wav", WavSpec {
        channels: 1,
        sample_rate: 48000,
        bits_per_sample: 32,
        sample_format: SampleFormat::Float,
    }).unwrap();
    resampled.iter().for_each(|i| writer.write_sample(*i).unwrap());
}

依赖关系

~4MB