我几乎到处都试图找到一种方法来保存我的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);
所以我转发了同样的问题。非常感谢任何帮助。
谢谢你, 芒卡
答案 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输入,然后使用任何录制软件捕获该输出。