pcm音频混音

本文介绍了PCM音频混音的几种算法,包括平均调整权重法、自适应混音加权、自动对齐算法和箝位算法,并通过FFmpeg的amix filter进行测试。测试结果显示,自适应混音算法在保持声音完整性方面表现较好,而其他算法各有优缺点。作者还分享了测试代码,以供进一步研究。
摘要由CSDN通过智能技术生成

原因:由于涉及到pcm的音频混音,故创建一个Demo进行混音测试,主要使用方法为归一化(自适应混音加权),平均调整权重法,自动对齐算法,及有人说的newlc中的一段算法,以上算法有可能名称叫法不同。

 

平均调整权重法(平均法):不同的会话成员具有相同的权重,该方法虽然不会引入噪声,但是随着会话成员的增多,各路语音的衰减将愈加严重.

自适应混音加权:使用可变的衰减因子对语音进行衰减,该衰减因子代表了语音的权重,该衰减因子随着数据的变化而变化,当数据溢出时,则相应的使衰减因子变小,使后续的数据在衰减后处于临界值以内,没有溢出时,让衰减因子慢慢增大,使数据变化相对平滑。(随着会话成员增多也会出现溢出问题)

自动对齐算法:考虑参与混音的多路音视频信号自身特点,以它们自身的比例作为权重,从而决定它们在合成后的输出中所占比重。(测试发现高频信号损失严重)

箝位算法:时域叠加,进行溢出检测,然后进行饱和运算.(一般通用使用,但是容易溢出).

混音原理简单说一下:声音是由于物体的振动对周围的空气产生压力而传播的一种压力波,转成电信号后经过抽样,量化,仍然是连续平滑的波形信号,量化后的波形信号的频率与声音的频率对应,振幅与声音的音量对应,量化的语音信号的叠加等价于空气中声波的叠加,所以当采样率一致时,混音可以实现为将各对应信号的采样数据线性叠加。而问题的关键就是如何处理叠加后溢出问题。

 

测试验证如下:

首先使用FFmpeg生成pcm文件和FFpaly进行播放命令行如下:

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值