2

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

4

1 回答 1

0

我对语音合成了解不多,但是您可以将数组数据写入标准输出并通过管道传输到ffmpeg

从标准输出:

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

或者您可以先将数组写入文件:

ffmpeg -f s8 -i audioData file.mp3

请注意,默认采样率为 44100Hz,如果来自语音合成的音频不同,请使用 ar 选项更改预期采样率:

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

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

于 2017-08-09T19:32:30.623 回答