我在我的Android应用程序中使用了文本到语音 - TTS ..我已经粘贴了下面的代码.. TTS工作正常,但它说的语音/文字不是很清楚..它真的说话快,所以它是不完全可以理解的..我尝试设置Locale.US,并使用setPitch或setSpeechRate,但它并不真正令人信服。我觉得手机有问题(三星S2)..所以尝试从谷歌Play商店安装谷歌翻译TTS应用程序..在那个应用程序中,声音非常清晰。
我的应用程序将由儿童使用..所以要确保声音非常清晰。 过去几天我一直在试图解决这个问题..如果你能给我一些关于我做错的地方或者如何改进的话会很好吗?
@Override
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int result = tts.setLanguage(Locale.getDefault());
//tts.setSpeechRate((float) 0.8);
//tts.setPitch(1.0f);
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "This Language is not supported");
} else {
speakOut(0);
}
} else {
Intent installIntent = new Intent();
installIntent.setAction(
TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
private void speakOut(int position) {
tts.speak("Some text goes here", TextToSpeech.QUEUE_FLUSH, null);
}
注意:我在setPitch和setSpeechRate中尝试将值设置为0.5f,0.8f等,但仍然没有GoogleTranslate App中的所有语音都清晰。
答案 0 :(得分:2)
您的代码看起来很好。 所有tts库都在整个系统中共享。三星自带了tts库。其余手机使用Pico TTS。最棒的是,您的应用程序独立于库,您可以根据需要下载任意数量的TTS库,这样当您请求TTS意图时,用户将会提示弹出窗口选择他们想要的TTS合成器中的哪一个你的应用。
对我来说,Pico TTS工作正常。速度/语速是正常的,我只是把音调(音调)稍微提高了一点点去机器人的感觉。
tts.setPitch(1.1f);
尝试使用Pico TTS并回复。