2

我在我的 Android 应用程序中使用 Text to Speech - TTS.. 我已经粘贴了下面的代码.. TTS 工作正常,但是它说的语音/文本不是很清楚.. 它说得很快,所以这不是完全可以理解的。我尝试设置 Locale.US,并使用了 setPitch 或 setSpeechRate,但它并没有真正令人信服。我觉得我的手机(Samsung S2)有问题。所以尝试从 Google Play 商店安装 Google Translate 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 应用程序中那样清晰。

4

1 回答 1

3

你的代码看起来不错。所有 tts 库在整个系统中共享。三星自带 tts 库。其余手机使用 Pico TTS。很棒的是,您的应用程序独立于库,您可以根据需要下载任意数量的 TTS 库,这样当您请求 TTS 意图时,将提示用户选择他们想要的 TTS 合成器你的应用程序。

对我来说,Pico TTS 工作正常。语速/语速是正常的,我只是把语调(音高)调高一点,让这种感觉变得不那么机械化。

tts.setPitch(1.1f);

尝试使用 Pico TTS 并回复。

于 2013-04-01T21:07:21.297 回答