#voice #recognition #speech-recognition

pocketsphinx

Rust 对 libpocketsphinx 的封装

7 个版本 (重大变更)

使用旧的 Rust 2015

0.6.0 2016 年 5 月 25 日
0.5.0 2016 年 3 月 9 日
0.4.0 2016 年 2 月 29 日
0.3.1 2016 年 2 月 17 日
0.1.0 2016 年 1 月 26 日

#934 in 音频


用于 ness

MIT 许可证

24KB
606

PocketSphinx

pocketsphinx crate 为原生 libpocketsphinx 库提供了一个安全的封装。

依赖项

为了使用此 crate,您必须安装 libpocketsphinx 库,并使其可通过 pkg-config 找到。

在基于 Debian 的 Linux 发行版上,安装 libpocketsphinx1 软件包

sudo apt-get install libpocketsphinx1

在 OS X 上,使用 Homebrew 安装 cmu-pocketsphinx

brew install --HEAD cmu-sphinxbase
brew install --HEAD cmu-pocketsphinx

有关构建 CMU PocketSphinx 自定义版本的说明,请参阅官方构建文档

用法

Cargo.toml 中将 pocketsphinx 添加为依赖项

[dependencies]
pocketsphinx = "0.6.0"

导入 pocketsphinx crate,初始化 PocketSphinx 解码器

let ps_config = try!(pocketsphinx::CmdLn::init(true, &["pocketsphinx",
    "-hmm", "data/cmusphinx-en-us-5.2",
    "-lm", "data/cmusphinx-5.0-en-us.lm",
    "-dict", "data/turtle.dic",
    ]));
let ps_decoder = pocketsphinx::PsDecoder::init(ps_config);

请参阅 PocketSphinx 文档 以了解配置参数的含义。

开始语音识别

try!(ps_decoder.start_utt(Some("utt_id")))
loop {
    let input_samples: &[i16] = read_audio();
    try!(ps_decoder.process_raw(input_samples, false, false));
    if (...) break;
}

停止语音识别并获取结果

try!(ps_decoder.end_utt());
match ps_decoder.get_hyp() {
    None => println!("Not recognized"),
    Some((hyp, _utt_id, _score)) => println!("Recognized: {}", hyp),
}

许可证

版权所有 © 2016 Mikhail Trishchenkov

MIT 许可证 下分发。

注意:使用此 crate 时,您的可执行文件将链接到 libpocketsphinx C 库,该库在 简化版 BSD 许可证 下提供。

依赖项

~60KB