我正在做一个涉及歌曲匹配的项目,所以我正在集成rapidApi的shazam端点。但问题是,歌曲匹配端点需要音频片段为原始音频格式的音频的base64字符串。我知道API能工作。我下载了一个第三方应用程序来完成从mp3到.raw的转换,并在使用它进行请求之前将其转换为base64。
现在,我需要以编程的方式集成这个流。如何将mp3或任何音频源真正转换为.raw文件?我做了很多搜索,但我找不到任何解决办法。
发布于 2022-10-03 13:38:48
我带着@ffmpeg/ffmpeg组件包去了。ffmpeg的javascript端口。
const convertToRaw = async (filePath)=>{
const ffmpeg = createFFmpeg({ log: true })
await ffmpeg.load();
const file = await fetchFile(filePath)
ffmpeg.FS('writeFile', 'input.mp3', file)
await ffmpeg.run('-i', 'input.mp3', '-f', 's16le', '-acodec', 'pcm_s16le', '-ac', '1', 'output.raw')
const data = ffmpeg.FS('readFile', 'output.raw')
const base64 = Buffer.from(data.buffer).toString('base64')
return base64
}发布于 2022-10-04 07:11:02
我认为网络音频的decodeAudioData是你正在寻找的。
你想要PCM数据对吧?
https://stackoverflow.com/questions/73935878
复制相似问题