Crates.io | pocketsphinx |
lib.rs | pocketsphinx |
version | 0.6.0 |
source | src |
created_at | 2016-01-26 17:52:37.277621 |
updated_at | 2016-05-25 11:22:06.979001 |
description | Rust wrapper for libpocketsphinx |
homepage | https://github.com/kriomant/pocketsphinx-rs |
repository | https://github.com/kriomant/pocketsphinx-rs |
max_upload_size | |
id | 3995 |
size | 24,421 |
The pocketsphinx
crate provides a safe wrapper around the native libpocketsphinx
library.
In order to use the this crate, you must have the libpocketsphinx
library
installed where it can be found by pkg-config
.
On Debian-based Linux distributions, install the libpocketsphinx1
package:
sudo apt-get install libpocketsphinx1
On OS X, install cmu-pocketsphinx
with Homebrew:
brew install --HEAD cmu-sphinxbase
brew install --HEAD cmu-pocketsphinx
For building custom version of CMU PocketSphinx refer to official building documentation.
Add pocketsphinx
as a dependency in Cargo.toml
:
[dependencies]
pocketsphinx = "0.6.0"
Import the pocketsphinx
crate, initialize PocketSphinx decoder:
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);
See PocketSphinx documentation to understand meaning of configuration parameters.
Start voice recognition:
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;
}
Stop voice recognition and get result:
try!(ps_decoder.end_utt());
match ps_decoder.get_hyp() {
None => println!("Not recognized"),
Some((hyp, _utt_id, _score)) => println!("Recognized: {}", hyp),
}
Copyright © 2016 Mikhail Trishchenkov
Distributed under the MIT License.
Note: By using this crate, your executable will link to the libpocketsphinx
C library, which is available
under the simplified BSD license.