我正在尝试实现一个使用发声器声音的tts应用程序。我已经下载了很多语音,它们被get voices调用正确地列出了。
for(Voice v : engine.getVoices()){
}
但是,当我调用engine.setVoice(v)
时,当您为一种语言下载了多个语音时,它的设置不正确。例如:
它不会在应用程序中使用选定的声音( Fiona ),而是使用凯特,如果我在发声器应用程序中交换最喜欢的声音,它将使用Fiona而不是凯特。这是相同的,如果你已经下载了所有的声音,它总是会为在应用程序中选择的声音的本地选择最喜欢的声音。
我该如何解决这个问题?
发布于 2016-08-25 17:14:07
我测试了一下,可以确认这是个bug。
正如您所说,它将成功地在不同地区的语音之间切换,但当试图在同一地区调用setVoice())
时,它将默认为应用程序中选择的“最爱”。
同样令人沮丧的是,当调用getVoice()
时,它会返回您试图设置的声音,因此无法检测到它“失败”。它必须在每次调用speak
时在内部更改它
我将使用关于设置和参考这篇文章中的电子邮件报告这个错误--如果你也可以这样做,那就好了!
发布于 2018-03-02 12:54:50
此问题已在声化器版本2.0.7 (2017年8月7日)中修复。
在应用程序设置中有一个名为“支持最新的TTS API”的选项,或者是默认情况下启用的类似选项。
Changelog:
重要提示:此更新使用新的语音数据,当前语音将被删除。你得再下载一次声音
将-Upgraded引擎升级到Nuance Vocalizer 3.0,提高了质量和稳定性
-8种新语言:智利语、波吉普里语、孟加拉语、卡纳达语、马拉提语、泰卢固语、泰米尔语和克罗地亚语
-20个新声音
优化-Code以缩短响应时间
安卓-Support TextToSpeech接口
用于安卓7牛油糖的-Support
新表情符号的-Support Unicode8.0和9.0
-Internal改进和错误修复
https://stackoverflow.com/questions/39095960
复制