我使用的是node.js 6.11.2。我不是在浏览器中运行。我正在尝试使用aws-sdk polly speechSynthesis服务。该服务返回一个Uint8array作为音频数据。让我们称其为audioData。我希望将这个文件audioData转换为mp3格式的正确格式的音频文件,这样我就可以在本地缓存它。然后我希望在覆盆子Pi上播放该文件。如何将Uint8Array转换为格式正确的mp3文件?我尝试了audioData.toString(),但无法播放该文件。
发布于 2017-08-10 03:32:31
我对演讲合成不是很了解,但是你可以把数组数据写到标准输出,再通过管道写到ffmpeg。
从stdout:
node script.js|ffmpeg -f s8 -i pipe:0 file.mp3
或者,您可以首先将数组写入文件:
ffmpeg -f s8 -i audioData file.mp3
请注意,默认采样率为44100 to,如果来自语音合成的音频不同,请使用ar选项更改预期采样率:
ffmpeg -f s8 -ar [samplerate] -i [input] file.mp4在https://trac.ffmpeg.org/wiki/audio%20types中可以找到不同的音频类型,请使用适当的音频类型替换上述命令中的s8。
https://stackoverflow.com/questions/45598933
复制相似问题