我正在尝试做一个应用程序,它可以在谷歌默认的英国男声(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-嗯'分别,所以这让我觉得声音被正确存储了。
当我显示两个按钮让他们说话时,两种情况下都是女声说话。我认为这是默认语音的事实。将女性声音作为默认声音会发生这种情况。当我将男性声音设置为默认声音时,情况正好相反。
我应该知道我错过了什么......?
谢谢你们,