2017-08-09 87 views
1

我正在运行node.js 6.11.2。我没有在浏览器中运行。我正在尝试使用aws-sdk polly语音合成服务。该服务返回一个Uint8array作为音频数据。让我们称之为audioData。我希望将此文件audioData转换为格式正确的MP3格式的音频文件,以便我可以在本地缓存它。然后我想在树莓派上播放这个文件。如何将Uint8Array转换为格式正确的mp3文件?我尝试audioData.toString()但该文件无法播放。如何将Uint8Array转换为要保存的mp3格式文件

回答

0

我对语音合成知之甚少,但您可以将数组数据写入标准输出并输入到ffmpeg

从标准输出:

node script.js|ffmpeg -f s8 -i pipe:0 file.mp3

或者你可以在阵列第一写入文件:

ffmpeg -f s8 -i audioData file.mp3

注意,默认采样率是44100Hz,如果从speechsynthesis音频是不同的使用ar选项来更改预期的采样率:

ffmpeg -f s8 -ar [samplerate] -i [input] file.mp4 

不同的音频类型可以在https://trac.ffmpeg.org/wiki/audio%20types 找到在上面的命令中用适当的音频类型替换s8。

相关问题