wsug
1
装了eSpeak写了个elisp函数搞定
(defun my-read-aloud()
(interactive)
(let (wd)
(if mark-active
(setq wd (buffer-substring-no-properties
(region-beginning) (region-end)))
(progn
(setq wd (thing-at-point 'filename) )
))
(shell-command
(format "\"C:/Program Files/eSpeak NG/espeak-ng\" %s" wd)
) ))
在 github下载 的espeak-ng windows安装包,不能选安装路径,安装后没有提示怎么用,命令行里没有espeak-ng,环境变量也无,控制面板也找不到,最后在c盘里找到了,于是把整个目录复制到d盘在调用,但是发现用不了,安装时的绝对路径是写死的,可执行文件换一个目录就不能执行。这里只好把绝对路径写上。
另一个问题,就是中文读不出来,espeak-ng -v zh "不会中文"
,我看源码里是有中文语音数据的,论坛里有使用espeak的吗?有办法能对中文正常发音吗?
wsug
2
换成了日语,乌克兰语试了下,都不能正常读出,看来除了英语以外,其它语言都较难做到正常发音
把问题分开,先不管 Emacs,终端里能正常使用吗?
wsug
5
是在终端命令行里测试的,我把内容写在文件里,终端执行 espeak-ng -v cmn -f d:\file\test.org
读取文件内容,单个字进行测试,发现还是有极少字可以读出来,如:中
,收
,大部分字读的与这个字的普通话是完全不同的发声。
有没有这样一种可能:中文贡献者严重缺乏(就没有),开发者也不会读中文,就象征性的支持了几个中文音节,然后就在语言支持列表里把中文加上了
绝大多数中文汉字应该读的出来吧,或许是差字典? --with-extdict-cmn
多音字肯定不管了,随意读一个音
wsug
7
这个读出来的音不太好形容,我英语差,听不明白读的是啥,如 '中'
字可以读出,与'中'
发音相近的'重、种、忠'
都能读出,'和'
字我听不懂读的是啥,只能感觉到是英语读法,与'和'
发音相近的'合、河、贺'
就都差不多是这个发音。 所以我说支持了几个中文音节。
中文的同音字非常多,即使只支持几个中文音节,只要是近似这个读音的字都能读出,那就已经是支持了很多汉字了。但我确定离 '绝大多数中文汉字'
能准确读出还差得很远
看样子是因为在 windows 上用的 TTS 引擎是 Windows 旧版 SAPI,对中文支持程度不高。因为 API 代码版权问题没法用新版的。Reimplement the SAPI bindings. · Issue #7 · espeak-ng/espeak-ng · GitHub
网上找了个视频,哪怕是英语 macOS 的 TTS 也比这强多了,毕竟 Apple 早在 Macintosh 时代就在做 TTS 了。
显然在 macOS 就会用 macOS 的系统 TTS,对盲人来说 macOS 比 Windows 不要好太多。