TTS-转换为WAV文件

时间:2017-04-30 10:13:50

标签: android text-to-speech

我已经成功编写并执行了文本到语音的代码。 代码能够说出用edittext编写的文本。 但现在我不知道如何将其转换为.wav文件并将其保存到目录中。 因为我正在为api 15+编写这段代码,所以请给我一些建议。

我的代码:

@Override
    public void onInit(int status) {
        if (status == TextToSpeech.SUCCESS) {

            int result = tts.setLanguage(Locale.US);

            if (result == TextToSpeech.LANG_MISSING_DATA
                    || result == TextToSpeech.LANG_NOT_SUPPORTED) {
                Log.e("TTS", "This Language is not supported");
            } else {
              //  btnSpeak.setEnabled(true);
                speakOut();
            }

        } else {
            Log.e("TTS", "Initilization Failed!");
        }
    }

    private void speakOut() {

        String text = txtText.getText().toString();

        tts.speak(text, TextToSpeech.QUEUE_FLUSH, null);
    }
请某人帮助我......

1 个答案:

答案 0 :(得分:1)

您可以使用方法synthetizeToFile()。 您必须使用File创建FileProvider以避免api 24以上的受限文件。您还必须传递请求ID。

String utteranceId = "MyUtteranceId"
File file = /* file obtained with FileProvider */
int result = tts.synthesizeToFile(text, null, file, utteranceId);
if (result == TextToSpeech.SUCCESS) {
    // It was successfull.
} else {
    // Error occurred
}

此方法返回表示结果的int(错误或成功)。 我建议你在后台线程上移动合成,然后在UI线程上调度结果。

另请参阅以下的文件渲染和播放部分: https://android-developers.googleblog.com/2009/09/introduction-to-text-to-speech-in.html