使用Android TextToSpeech时,有没有什么办法可以指定语音的性别,例如tts.setGender(TextToSpeech.MALE)
或tts.speak("<voice gender='male'>Hello </voice>")
?Android TextToSpeech,设置性别?
谢谢您的时间,
最好的问候,
詹姆斯
使用Android TextToSpeech时,有没有什么办法可以指定语音的性别,例如tts.setGender(TextToSpeech.MALE)
或tts.speak("<voice gender='male'>Hello </voice>")
?Android TextToSpeech,设置性别?
谢谢您的时间,
最好的问候,
詹姆斯
我一直在寻找相同的,但做一些研究之后,有没有办法来配置声音。无论音高,速度也没有性别
您可以设置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有更多关于它的信息。
语音数据(用于生成语音)对于特定语音非常具体,数据量非常大 - 移动设备更为明智。所以你不能随意切换男性/女性。以Ivona voices为例,您可以下载美国英语(Kendra,女性)或英国英语(Amy,女性)的语音数据,每个数据大小为〜150 MB。
您可以尝试播放不同的语言(美国与英国),取决于用户的语音数据加载,它可能是男性,可能是女性。
至于音高和速度,是的,你可以改变TTS音高和速度。虽然我尝试过,但听起来不太好,但可能取决于您使用的是哪种语音数据。
这些API:
tts.setPitch(float pitch);
tts.setSpeechRate(float speechRate);
在两种情况下,参数1.0表示 '正常的' 俯仰/速率。
对于英语来说这是一个好主意,但不幸的是我需要使用德语声音,这是女性使用的DefaultEngine。我将尝试下载另一个引擎(带有男性声音),并查看是否可以在声音之间切换。 Das ist eine gute IdeefürEnglisch,aber leider muss ich eine deutsche Stimme benutzen,die weiblich ist mit DefaultEngine。 Ich werde versuchen,ein anderes Engine herunterladen(mitmännlicherStimme),und sehe,ob ich zwischen Stimmen umschalten kann。 – James