2

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

感谢您的时间,

此致,

詹姆士

4

3 回答 3

2

语音数据(用于生成语音)非常特定于特定的语音,并且数据量很大 - 移动设备方面。所以你不能随意切换男性/女性。以Ivona 语音 为例,您可以下载美国英语(Kendra,女性)或英国英语(Amy,女性)的语音数据,每个数据大小约为 150 MB。

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

至于音高和速度,是的,您可以更改 TTS 音高和速度。虽然我试过了,但听起来不太好,但这可能取决于您使用的语音数据。

API:

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

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

于 2013-08-17T02:04:29.350 回答
1

您可以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 及更高版本。这篇博客文章有更多关于它的信息。

于 2013-08-16T19:58:19.467 回答
-1

我一直在寻找相同的方法,但是在做了一些研究之后,没有办法配置声音。无论是音高、速度还是性别

于 2013-08-16T19:14:46.203 回答