Android TextToSpeech,设置性别?

时间:2013-08-16 19:08:25

标签: android text-to-speech

使用Android TextToSpeech时,有什么方法可以指定语音的性别,例如tts.setGender(TextToSpeech.MALE)tts.speak("<voice gender='male'>Hello </voice>")

感谢您的时间,

致以最诚挚的问候,

詹姆斯

3 个答案:

答案 0 :(得分:2)

您可以为女性设置tts.setLanguageLocale.UK,为男性设置Locale.US

if(myTTS.isLanguageAvailable(Locale.ENGLISH)==TextToSpeech.LANG_AVAILABLE)
myTTS.setLanguage(Locale.UK);

if(myTTS.isLanguageAvailable(Locale.ENGLISH)==TextToSpeech.LANG_AVAILABLE)
myTTS.setLanguage(Locale.US);

唯一需要注意的是,这只适用于较新的Android版本,我认为4.0及更高版本。此博客post提供了有关该博客的更多信息。

答案 1 :(得分:2)

语音数据(用于生成语音)非常特定于特定语音,数据大小非常大 - 移动设备明智。所以你不能随意切换男/女。以Ivona voices为例,您可以下载美国英语(肯德拉,女性)或英国英语(艾米,女性)的语音数据,每个数据大小约为150 MB。

您可以尝试播放不同的语言(美国与英国),具体取决于用户加载的语音数据,可能是男性,也可能是女性。

关于音高和速度,是的,你可以改变TTS的音高和速度。虽然我尝试过但听起来不太好,但可能取决于您使用的是哪种语音数据。

API:

tts.setPitch(float pitch);
tts.setSpeechRate(float speechRate);

在这两种情况下,参数1.0表示“正常”音调/速率。

答案 2 :(得分:0)

我一直在寻找相同的东西,但经过一些研究,没有办法配置语音。无论是音调,速度还是性别