2个不稳定版本
0.2.0 | 2022年10月1日 |
---|---|
0.1.0 | 2022年6月29日 |
#476 in 音频
每月311次下载
在 marek_vosk_speech_recognition 中使用
44KB
567 代码行
Vosk
围绕Vosk API语音识别工具包的安全FFI绑定。
用法
// Simplified version of examples/read_wav.rs
// Normally you would not want to hardcode the audio samples
let samples = vec![100, -2, 700, 30, 4, 5];
let model_path = "/path/to/model";
let model = Model::new(model_path).unwrap();
let mut recognizer = Recognizer::new(&model, 16000.0).unwrap();
recognizer.set_max_alternatives(10);
recognizer.set_words(true);
recognizer.set_partial_words(true);
for sample in samples.chunks(100) {
recognizer.accept_waveform(sample);
println!("{:#?}", recognizer.partial_result());
}
println!("{:#?}", recognizer.final_result().multiple().unwrap());
设置
编译
Vosk-API动态库必须可以被Rust链接器发现(静态库不可用)。请在此处下载您平台的zip文件 这里 并
Windows和Linux(推荐)
执行以下任一项操作
- 使用
RUSTFLAGS
环境变量提供路径,例如:RUSTFLAGS=-L/path/to/the/libraries
- 创建一个构建脚本并为Cargo提供库的路径,使用
cargo:rustc-link-search
或cargo:rustc-link-lib
。
尽管两种方法等效,但后者更实用,因为它不需要开发者记住终端命令。
仅限Windows
- 将库移动到您的
PATH
环境变量中的目录。
仅限Linux
执行以下任一项操作
- 移动到
/usr/local/lib
或/usr/lib
。 - 将
LIBRARY_PATH
环境变量设置为包含库的目录。
执行
库还必须在运行时可以被可执行文件发现。您必须遵循在编译部分中选择的方法之一。
Windows和Linux(推荐)
对于两种方法,您都需要将库复制到可执行文件的根目录(默认情况下为target/<cargo profile name>
)。建议您使用例如cargo-make之类的工具来自动化在构建过程中将库从另一个更实用的目录移动到目标位置。
仅限Windows
如果您将库添加到了您的 PATH
目录中,只要目标机器也是如此,则无需额外步骤。
仅限Linux
- 如果您在编译部分遵循了选项 1: 无需额外步骤,只要目标机器也有提到的目录中的一个包含库即可。
- 如果您遵循了选项 2: 您需要将包含库的目录添加到环境变量
LD_LIBRARY_PATH
中。请注意,此目录不必与编译步骤中添加到LIBRARY_PATH
的目录相同。
依赖关系
~0.7–1.4MB
~33K SLoC