Java tts使用语音tts引擎设置语音

Java tts使用语音tts引擎设置语音,java,android,text-to-speech,Java,Android,Text To Speech,我试图实现一个tts应用程序使用发声器的声音。我已经下载了很多声音,它们在GetVoices调用中正确列出 for(Voice v : engine.getVoices()){ } 但是,当我调用engine.setVoice(v)时,如果为一种语言下载了多个语音,则设置不正确。e、 g 代替在应用程序中使用选择的语音(菲奥娜),而是使用凯特,如果我在发声器应用程序中交换最喜欢的语音,它将使用菲奥娜而不是凯特。这是相同的,如果你下载了所有的声音,它将始终为在应用程序中选择的声音的本地选择

我试图实现一个tts应用程序使用发声器的声音。我已经下载了很多声音,它们在GetVoices调用中正确列出

 for(Voice v : engine.getVoices()){
 }
但是,当我调用
engine.setVoice(v)
时,如果为一种语言下载了多个语音,则设置不正确。e、 g

代替在应用程序中使用选择的语音(菲奥娜),而是使用凯特,如果我在发声器应用程序中交换最喜欢的语音,它将使用菲奥娜而不是凯特。这是相同的,如果你下载了所有的声音,它将始终为在应用程序中选择的声音的本地选择最喜欢的一个


如何修复此问题?

我对此进行了测试,可以确认这是一个bug

正如您所说,它将成功地在不同语言环境的语音之间切换,但当尝试在同一语言环境中调用
setVoice())
时,它将默认为应用程序中选择的“收藏夹”

同样令人沮丧的是,当调用
getVoice()
时,它会返回您试图设置的语音,因此无法检测到它“失败”。它必须在每次呼叫时将其内部更改为
speak


我将使用“关于设置”中的电子邮件报告错误,并参考这篇文章-如果你也能这样做,那就好了

该问题已在Vocalizer 2.0.7版(2017年8月7日)上修复

在应用程序设置中有一个名为“支持最新TTS API”的选项,或默认启用的类似选项

更改日志:

重要提示:此更新使用新语音数据,当前语音将被删除。你必须再次下载这些声音

-将引擎升级为Nuance Vocalizer Embedded 3.0,提高了质量和稳定性

-8种新语言:智利语、博伊普里语、孟加拉语、卡纳达语、马拉地语、泰卢固语、泰米尔语和克罗地亚语

-20个新声音

-优化代码以提高响应时间

-支持Android TextToSpeech API

-支持Android 7牛轧糖

-支持新的emojis Unicode 8.0和9.0


-内部改进和错误修复

setVoice()的结果是什么?我发现没有一个TTS提供商能够正确处理新的语音API,除了Google…0,它是成功的一个,-1是Android文本到语音设置中的错误,语音是否列为单独的引擎?不,它们都在“es.codefactory.vocalizertts”引擎中