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

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

  • 如何在Android上的音频文件中保存TTS输出?
  • 如何让TTS将文件写入我的应用程序目录?

但无法find/理解答案。 我正在使用synthesizeToFile()

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

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

谢谢你,Mounika

重要的方法是synthesizeToFile 。 它会将音频写入您指定的设备上的文件。 然后,您可以使用MediaPlayer播放该文件,或者使用adb命令行工具使用命令将其从设备上移到开发系统上

 adb pull  

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

Environment.getExternalStorageDirectory()

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

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

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

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

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

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