作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
python有没有可以把单词(主要是名字)转成Arpabet音标的库?
触须 -> B AA1 R B AH0 L Z
烧烤 -> B AA1 R B IH0 K Y UW2
烧烤 -> B AA1 R B IH0 K Y UW2 D
烧烤 -> B AA1 R B IH0 K Y UW2 IH0 NG
烧烤 -> B AA1 R B IH0 K Y UW2 Z
最佳答案
您想要的是不同名称的“字母到声音”或“字素到音素”引擎。周围有一些,包括每个文本到语音系统中的一个。
我通常处理非美国口音,为此我使用 espeak .它不直接输出 arpabet(无论如何仅限于美国声音),但您可以哄它尝试美国口音,然后从 IPA 转换为 arpabet。
>>> from subprocess import check_output
>>> print check_output(["espeak", "-q", "--ipa",
'-v', 'en-us',
'hello world']).decode('utf-8')
həlˈoʊ wˈɜːld
您可以使用 -x
而不是 --ipa
来表示 espeak 自己的电话表示(它是 ascii):
>>> check_output(["espeak", "-q", "-x", '-v', 'en-us', 'hello world'])
h@l'oU w'3:ld
虽然转换为 arpabet 并不像字符查找那么简单;例如,“tʃ”应该转换为“CH”,而不是贪婪转换会给你的“T SH”(除了,也就是说,在奇怪的情况下,例如“sweatshop”的“swˈɛtʃɑːp”)。
关于Python Arpabet 音标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11911028/
python有没有可以把单词(主要是名字)转成Arpabet音标的库? 触须 -> B AA1 R B AH0 L Z 烧烤 -> B AA1 R B IH0 K Y UW2 烧烤 -> B AA1
我是一名优秀的程序员,十分优秀!