8个版本 (4个破坏性更新)
0.8.0 | 2021年2月27日 |
---|---|
0.7.2 | 2021年2月27日 |
0.6.0 | 2021年2月26日 |
0.5.0 | 2021年2月26日 |
0.4.1 | 2021年2月26日 |
#1379 在 解析器实现
1MB
687 行
CMUSphinx发音字典
这是从原始 rust库中获取发音的CMUSphinx发音字典的分支。
⚠️ 从0.6.0版本开始,与原始crate不兼容API。0.5.0或更早版本与API大部分兼容,但明显没有下载实用程序功能。
变更日志
- 0.8.0
- 为cmudict实现FromStr
- 0.7.1
- 更新readme中的版本 🤦
- 0.7.0
- 添加了在"serialization"功能下序列化和反序列化的能力
- 0.6.0
- 更改get函数以返回所有可能的发音的切片
- 0.5.0
- 将
cmudict_core
和cmudict
合并到一个crate中 - 添加了丢失在混乱中的回文函数
- 将
- 0.4.1
- 修复了将固定的readme上传到crates.io的补丁
- 0.4.0
- 从已弃用的
failure
crate切换到基于thiserror
的错误 - 在cargo配置中切换到rust 2018
- 删除了下载实用程序函数
- 删除了不再需要或已弃用的许多依赖项
- 修复了由于新内部结构导致的挂起查找bug
- 更改内部结构,以便文件I/O不需要每次查找(因此简化了它们)
- 从已弃用的
这些更改中的最后一个就是名字的来源 - 由于整个字典被加载到volitile内存中,每个单独的查找都比原始crate快得多(平均应为O(1),最坏情况为O(n))。当然,缺点是创建对象需要更长的时间,并且使用更多的内存,但对我来说最初创建此应用时查找时间是关键的。
安装
要在您的rust
项目中使用,请将以下内容添加到您的Cargo.toml
[dependencies]
cmudict-fast = "0.8"
用法
要使用字典,您需要获取一个 Cmudict
结构体的实例
use cmudict_fast::Cmudict;
fn main() {
let dict = Cmudict::new("./path/to/a/cmudict/file").expect("Couldn't make Cmudict");
}
您可以像这样检索单词的发音
use cmudict_fast::Cmudict;
fn main() {
let dict = Cmudict::new("path/to/cmudict").expect("Couldn't get/make Cmudict");
let word = dict.get("apple").unwrap().pronunciation();
println!("{:?}", word); // &[Symbol::AE(Stress::Primary), Symbol::P, Symbol::AH(Stress::None), Symbol::L]
}