4个版本
0.2.0 | 2023年8月6日 |
---|---|
0.1.2 | 2023年8月5日 |
0.1.1 | 2022年2月26日 |
0.1.0 | 2022年2月19日 |
在音频类别中排名第731
26KB
489 行
espeakNG-rs
通过espeakNG-sys对espeak NG进行安全封装。
安装后,使用cargo doc --open -p espeakng
阅读文档。
lib.rs
:
通过espeakNG-sys对espeak NG进行安全封装。
安全性
此库通过单例([Speaker])封装内部C调用,以保持可变全局状态的安全。在未来,这可能会改为使用espeakNG
的异步功能,但我目前不相信在没有全局锁的情况下它是安全的。
原始绑定通过[bindings]模块重新导出,但使用此功能是unsafe
的,如果使用,则认为[Speaker]对象的所有安全性保证都已破坏。
已知问题
Speaker::synthesize
似乎会生成损坏的WAV音频数据,不知道如何修复。
示例
从文本生成音素
fn main() -> Result<(), espeakng::Error> {
// Get a reference to the global Speaker singleton, using default voice path and buffer length.
let mut speaker = espeakng::initialise(None)?.lock();
// Generate the phonemes in standard mode.
let phonemes = speaker.text_to_phonemes("Hello World", espeakng::PhonemeGenOptions::Standard {
phoneme_mode: espeakng::PhonemeMode::default(),
text_mode: espeakng::TextMode::default(),
})?.unwrap();
println!("Phonemes: {}", phonemes);
Ok(())
}
依赖关系
~2–11MB
~123K SLoC