7 releases (breaking)
Uses old Rust 2015
0.6.0 | May 25, 2016 |
---|---|
0.5.0 | Mar 9, 2016 |
0.4.0 | Feb 29, 2016 |
0.3.1 | Feb 17, 2016 |
0.1.0 | Jan 26, 2016 |
#938 in Audio
Used in ness
24KB
606 lines
PocketSphinx
The pocketsphinx
crate provides a safe wrapper around the native libpocketsphinx
library.
Dependencies
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.
Usage
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),
}
License
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.
Dependencies
~60KB