-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
录制出的音频中间存在空白间隔和轻微爆破声 #263
Comments
录音可以用 实时转码上传-实时帧回调版 ,采用takeoffEncodeChunk实时mp3音频编码回调,这个实现的mp3帧数据之间没有间隙。如果是用的rec.mock实时转码,每次都是新的mp3文件,就会导致中间有间隙。 BufferStreamPlayer播放mp3这个是会有点问题,效果最好的是传pcm进去,因为每次input mp3都会单独去解码成pcm,导致前后不连贯,可以自行解码mp3成pcm,再input pcm播放效果就会好很多。每次解码时解码3段数据,提取出中间的:第一段是上次解码了的,中间这段是当前要解码的,第三段是最新收到的,这样解码出来的pcm就连贯了 |
现在是在push之前就提取出pcm测试数组,并最后打包为wav在AU检查。 let audioCtx;
} |
问题已经解决,保存前一次的数据参与解码,音频连贯性大大改善 附上代码 function concatenateArrayBuffers(newArrayBuffer) {
}; function receiveAudioChunk(newArrayBuffer) {
} |
如放大图,在每个MP3帧之间有个约5ms的空白,但是并不是音频播放完毕。
![Image](https://private-user-images.githubusercontent.com/121280968/408933257-df2c33f2-54e0-42e1-a683-c24274a59471.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyMjg3OTAsIm5iZiI6MTczOTIyODQ5MCwicGF0aCI6Ii8xMjEyODA5NjgvNDA4OTMzMjU3LWRmMmMzM2YyLTU0ZTAtNDJlMS1hNjgzLWMyNDI3NGE1OTQ3MS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMFQyMzAxMzBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zOGFiOTkwZWE0MWMwNjZkYWYyMTBjMTlhY2RkOTI1ZmQxMWZkMjdlNzY2NTk4OTc0ZDkwN2E0Yzc0MmM2M2VmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.ekhHNvq_C6DwW5iRd0Q2ufnQs9-SygosZYttBM8Kda0)
录制用的mp3,发送是每15个帧调用一次websocket.send,播放使用的buffer_stream.player。
[这里的空白音频导致音频质量和连贯性下降,而且有的帧最后有轻微的爆破声,有无解决方案。
附上音频文件,AU可看
audio (10).zip
The text was updated successfully, but these errors were encountered: