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

我几乎无处不在试图find一种方法来保存我的android tts输出在audio文件中。 我看了这些post:

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

但无法find/理解答案。 我正在使用像这样的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); 

所以我重新发布同样的问题。 任何帮助深表感谢。

谢谢,Mounika

Solutions Collecting From Web of "如何将我的android tts输出保存在wav文件中?"

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

 adb pull <path-to-file> 

它可能不是在真实设备上不起作用。 问题可能在于您正在使用debugging模式下将USB电缆插入计算机来testing真实设备。 这可能会禁用将文件保存到手机。

Environment.getExternalStorageDirectory()

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

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

我也一直在尝试使用原始的Pico TTS引擎和第三方的TTS引擎,尝试写入SD卡或内部存储器(在一个根目录的设备上):

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

但是,如您所述,该方法返回TextToSpeech.SUCCESS而不实际创build文件。

如果您必须将您的TTS输出录制到WAV文件,请将耳机输出连接到PC上声卡的辅助input,然后使用任何录制软件来捕捉。