使用Android TextToSpeech时,有什么方法可以指定语音的性别,例如tts.setGender(TextToSpeech.MALE)
或tts.speak("<voice gender='male'>Hello </voice>")
?
感谢您的时间,
致以最诚挚的问候,
詹姆斯
答案 0 :(得分:2)
您可以为女性设置tts.setLanguage
至Locale.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)
我一直在寻找相同的东西,但经过一些研究,没有办法配置语音。无论是音调,速度还是性别