3个版本
0.1.2 | 2024年6月18日 |
---|---|
0.1.1 | 2024年6月17日 |
0.1.0 | 2024年6月15日 |
在 音频 类别中排名 225
8.5MB
280 代码行
Cepstrum Extractor
一个易于使用的crate,用于计算信号的cepstrum。
关于cepstrum概念的更多信息,请参阅这篇原始论文。
使用方法
非常简单的crate:使用给定的长度创建一个CepstrumExtractor
,并使用它来计算信号的实数或复数cepstrum。
提取器接受一个Complex切片作为输入,RealToComplex::to_complex_vec
从一个f32或f64切片创建一个新的Complex向量。
此类切片也实现了具有窗口函数的特质,目前只有一个可用:Hann
。
关于结果长度的说明
对于频谱来说,只有fft结果的另一半具有有意义的值。cepstrums是通过fft计算的,所以这里也是一样的。
返回向量的方法已经截断了结果到输入切片的一半,但*_mut
方法,即那些修改输入切片的方法,显然不能这样做,所以在使用这些方法时请注意。
示例
给定一个长度为128
的CepstrumExtractor
,rceps_mut
修改了输入切片(长度为128个样本),但修改后的切片中只有前64
个样本真正代表了cepstrum。
关于多线程的说明
这个crate也可以用于并发环境。只需要一个提取器实例,并且可以通过简单的Arc
在线程之间共享;有关此信息,请参阅相关文档页面。
示例可以在example
文件夹下的concurrent
中找到。
测试和示例
Miri 测试可以在 脚本
中找到。
以下命令必须从 crate 的根目录开始运行。
测试可以通过以下方式运行
cargo test
并发示例可以通过以下方式运行
cargo run --example concurrent
其他示例可以通过以下方式运行
RUSTFLAGS="--cfg examples" cargo run --example `example_name`