BenzLeung / benz-amr-recorder

Play, record, reformat AMR audio
https://benzleung.github.io/benz-amr-recorder/demo.html
MIT License
336 stars 100 forks source link

遇到amr音频时,当xhr.response返回的是audio/amr-wb时decode 解析报错,audio/amr 解析正常 #39

Closed changetheworldOuO closed 3 years ago

changetheworldOuO commented 4 years ago

如题,经过查阅,audio/amr-wb是宽带,audio/amr后者是窄带 AMR NB的语音带宽范围:300-3400Hz,8KHz采样 AMR WB的语音带宽范围: 50-7000Hz,16KHz采样 有没有什么比较好的处理方法呢?

以及,如果我想在源码基础上做一些更改,请问,哪些文件是必要的? 和demo.html 同级的 BenzAMRRecorder.js 我拿出来过,但是报了特别多的语法错误

changetheworldOuO commented 4 years ago

请问 后续有打算支持 amr-wb 吗?

BenzLeung commented 4 years ago

@Change-TheWorld 我还以为在有生之年都不会遇到 amr-wb 的应用场景……[捂脸] 是否方便告诉我你们的应用场景?如果场景确实广泛,我就想想办法支持(但是我有拖延症可能时间比较长)。

如果你要修改源码,直接修改 BenzAMRRecorder.js 也是可以的,但是更好的办法是整个项目拉下来,修改 src 目录的源码,然后在命令行执行 npm run build 生成新的 BenzAMRRecorder.js

changetheworldOuO commented 4 years ago

@Change-TheWorld 我还以为在有生之年都不会遇到 amr-wb 的应用场景……[捂脸] 是否方便告诉我你们的应用场景?如果场景确实广泛,我就想想办法支持(但是我有拖延症可能时间比较长)。

如果你要修改源码,直接修改 BenzAMRRecorder.js 也是可以的,但是更好的办法是整个项目拉下来,修改 src 目录的源码,然后在命令行执行 npm run build 生成新的 BenzAMRRecorder.js

我们的客户端里的音频,都是由客户端的录音功能,而累积起来的音频数据,由amr和aac两种格式,amr里,宽带和窄带的数据比大约是一半一半,因此对于我们这个业务场景, 对 amr-wb 可以说是迫在眉睫的

BenzLeung commented 4 years ago

你们的场景是使用js来开发客户端吗?目前在 github 上,确实有个使用 js 编写的 amr-wb 的解码器:https://github.com/sblandford/amrwb-js 但是暂时没有编码器。用这个解码器实现 amr-wb 的播放应该不成问题。 实际上,我这个项目主要解决微信的录音API所得到的amr音频在其他场景的互通问题,微信的录音文件都是 amr-nb 格式。目前本项目压缩后js文件尺寸是 500KB,如果再集成 amr-wb 估计要800K-1M了,所以暂时不考虑实现。

BenzLeung commented 3 years ago

https://github.com/AcoWaves/benz-amr-recorder 发现你自行实现了耶~ @Change-TheWorld 感谢感谢。那么这边先close啦。建议及时更新我的新代码。