3个稳定版本
1.2.0 | 2024年7月21日 |
---|---|
1.1.0 | 2024年7月21日 |
1.0.2 | 2022年4月3日 |
#229 in 算法
238 每月下载量
在aus中使用
58KB
1K SLoC
用Rust编写的Pyin算法
该包为音频信号的每一帧提供音高估计和一个概率,表明该帧是浊音区域。
该实现基于librosa。为了便于从Python + Numpy转换为Rust,实现是建立在ndarray包之上。
下载 & 运行
您可以从发布页面下载可执行二进制文件。
pyin <input_file> <output_npy_file> <fmin> <fmax> --frame_ms <frame length in miliseconds>
注意
- 支持的音频文件:与Creak包相同。
- 支持多通道音频文件。
- 输出文件:npy文件包含输出ndarray,其形状为
- 形状:(4, 输入音频中的通道数,帧数)
- [0, :, :]: 时间戳 [秒]
- [1, :, :]: f0数组 [Hz]
- [2, :, :]: 浊音标志数组(浊音为1.0,非浊音为0.0)
- [3, :, :]: 浊音概率数组
- 如果使用"-"作为输出文件名,应用程序将输出数据发送到stdout。
构建 & 运行
您可以使用它作为可执行二进制文件和库(C共享库和Rust库)。构建时,您可以通过启用blas
特性标志来使用BLAS。
作为可执行二进制文件
cargo run -F build-binary[,blas] --release <input_file> <output_npy_file> <fmin> <fmax> --frame_ms <frame length in miliseconds>
或
cargo build -F build-binary[,blas] --release
./target/release/pyin <input_file> <output_npy_file> <fmin> <fmax> --frame_ms <frame length in miliseconds>
示例:使用pYIN作为C共享库
示例在test/test.c
中。要使用GCC构建和运行它,
./compile_test.sh [blas]
LD_LIBRARY_PATH=target/release ./test_pyin
使用pYIN作为Rust库
将以下内容添加到您的Cargo.toml
[dependencies]
pyin = "1.2.0"
# or, pyin = {version = "1.2.0", features = ["blas"]}
待办事项
- 从stdio输入
- 支持更多的命令行参数选项
依赖项
~16MB
~308K SLoC