如何将 Uint8Array 转换为要保存的 mp3 格式文件



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

我对语音合成了解不多,但您可以将数组数据写入标准输出并管道写入 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 替换为适当的音频类型。

最新更新