如何在wav文件中保存我的android tts输出?

时间:2012-03-15 03:29:57

标签: android text-to-speech

我几乎到处都试图找到一种方法来保存我的android tts输出音频文件。我查看了这些帖子:

但无法找到/理解答案。我正在使用这样的synthesizeToFile()

HashMap<String, String> myHashRender = new HashMap<String, String>();
myHashRender.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, result);
String fileName = "/Android/data/com.android.voicelanglearning.vll/ttsfile1.wav";
tts.synthesizeToFile(result, myHashRender, fileName);

所以我转发了同样的问题。非常感谢任何帮助。

谢谢你, 芒卡

3 个答案:

答案 0 :(得分:4)

重要的方法是synthesizeToFile。它会将音频写入您指定的设备上的文件。然后,您可以使用MediaPlayer播放该文件,或者使用命令

使用adb命令行工具将其从设备上移到开发系统上
adb pull <path-to-file>

答案 1 :(得分:0)

它可能不适用于真实设备。问题可能是您正在测试一个真实的设备,USB线缆在调试模式下插入计算机。这可能会禁用将文件保存到手机。

<强> Environment.getExternalStorageDirectory()

返回主外部存储目录。如果用户已在其计算机上安装此目录,已从设备中删除或发生其他一些问题,则该目录当前可能无法访问。您可以使用getExternalStorageState()确定其当前状态。

答案 2 :(得分:-2)

TextToSpeech.synthesizeToFile()在实际设备中不起作用。它只适用于AVD。

我一直在尝试使用原始的Pico TTS引擎和第三方TTS引擎,尝试写入sdcard或内部存储器(在root设备上):

context.getDir("soundfiles", Context.MODE_WORLD_WRITEABLE);

但是,正如您所指出的,该方法返回TextToSpeech.SUCCESS而不实际创建文件。

如果您必须将TTS输出录制到WAV文件,请将耳机输出连接到PC中声卡的aux输入,然后使用任何录制软件捕获该输出。