Android TextToSpeech addSpeech()不起作用

时间:2013-06-15 11:58:48

标签: android text-to-speech

我有一台带有Android 2.3的HD Desire手机。

TTS工作正常,它会说出我给出的每一个文字。但是,当我使用下面的任何一行为某些文本设置我自己的声音时,它只是忽略它并合成文本,就像没有写入行一样!

tts.addSpeech("salam", "/sdcard/salam.wav");
tts.addSpeech("shalam", "com.company.appname", R.raw.shalam);
...
tts.speak("salam", TextToSpeech.QUEUE_FLUSH, null);  //<--This isn't playing my voice file.
tts.speak("shalam", TextToSpeech.QUEUE_FLUSH, null);  //<--Neither is this

我确信这两个文件都存在。 这是为什么?声音文件有什么限制吗?例如,他们的频率,或单声道或立体声?

我已经检查了docs并且没有看到任何相关内容。

1 个答案:

答案 0 :(得分:2)

好吧,我发现了我的问题,非常愚蠢的情况浪费了几个小时!我希望如果有人犯了我的错误会有所帮助。

我们应该推迟这种文本映射到TTS成功初始化的点,例如在onInit函数中:

@Override
public void onInit(int status) {
    if(status == TextToSpeech.SUCCESS)
    {
        tts.setLanguage(Locale.US);
        mapVoices();
    }
    else
        ...
}

private void mapVoices()
{
    tts.addSpeech("salam", "/sdcard/salam.wav");
    tts.addSpeech("shalam", "com.company.appname", R.raw.shalam);
    //...
}