【发布时间】:2015-08-29 23:14:24
【问题描述】:
我正在尝试做一个应用程序,它可以在谷歌默认的英国男声 (en-gb-x-rjs-phone-hmm) 和女声 (en-gb-x-fis-phone-hmm) 之间切换)。我正在使用两个 Text-To-Speech 对象,在为每个对象初始化引擎后,我使用 setVoice(voice) 为每个对象分配相应的语音。
mTTS1 = new TextToSpeech(this, onInitListener, packname);
mTTS2 = new TextToSpeech(this, onInitListener, packname);
而在 onInit() 方法中,当两者都被初始化时:
mTTS1.setVoice(voice1);
mTTS2.setVoice(voice2);
'voice1' 和 'voice2' 是通过调用 getVoices() 获得的,当我获得语音名称时,我会获得 'en-gb-x-rjs-phone-hmm' 和 'en-gb-x-fis -phone-hmm',所以这让我觉得声音被正确存储了。
当我显示两个按钮让他们说话时,女性声音在两种情况下都会说话。我认为这是默认语音的事实。将女性声音作为默认声音会发生这种情况。当我将男声设为默认时,情况正好相反。
我应该知道我错过了什么......?
谢谢大家,
【问题讨论】:
-
请在您的帖子中包含what you have tried。
-
我有一个相关的问题,但不是您问题的答案。有没有办法找出代码的含义?我得到诸如“en-gb-x-fis”和“en-GB-fis-network”之类的字符串,并希望为每个声音提供一个显示名称。
标签: android text-to-speech google-text-to-speech