2个不稳定版本
0.1.0 | 2019年5月30日 |
---|---|
0.0.1 | 2019年5月24日 |
#666 in 科学
16KB
295 行
梅尔频率倒谱系数
在音频信号机器学习中,一个常见的预处理步骤是应用梅尔频率倒谱系数 (MFCC) 转换。它们将信号压缩到非常少的系数(每10毫秒大约16个)并解相关,以仅表达传输函数(例如,仅表达语音的共振峰,而不是音高)。这使得它们在自动语音识别 (ASR)、房间分类、说话人识别等应用中非常流行。
用法
将此添加到你的Cargo.toml
[dependencies]
mfcc = "0.1"
此库可以使用两个不同的FFT库。可以使用带有标准功能 fftrust 的 rustfft
(一个纯Rust FFT实现)或使用 fftw
(一个流行的FFT库)。
[dependencies.mfcc]
version = "0.1"
default-features = false
features = ["fftextern"]
对FFTW的粗略基准测试显示,它们的性能相当。
test tests::bench_mfcc ... bench: 123,959 ns/iter (+/- 22,979)
对于rustfft
test tests::bench_mfcc ... bench: 162,603 ns/iter (+/- 35,914)
工作原理
首先,您需要将音频数据分割成大约10ms-20ms的块(最大1024个样本,48kHz)。然后,您可以计算MFCC系数。
use mfcc::Transform;
let mut state = Transform::new(48000, 1024);
let mut output = vec![0.0; 16*3];
state.transform(&input, &mut output);
许可
根据您的选择,在以下许可下使用:
- Apache License,版本2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确说明,否则根据Apache-2.0许可定义的任何有意提交给工作并由您包含的贡献,均应按上述方式双许可,不附加任何额外条款或条件。
依赖项
~0.2–1.2MB
~23K SLoC