VoIP之音视频会议中的混音技术

在VoIP音视频会议中,需要将多路参会方音频流混合成一路音频流再发送给各参会方,以达到参会方可以听到每个与会人声音的目的,这种技术叫混音。

一、混音基础原理

在实际生活中,我们所处的生活和工作环境就是一个自然的混音场,各种不同的声音(人声、音乐声、机械声等)相互叠加,最终传入我们的耳朵里。不同声音在空气中的振幅叠加是线性的,因此,在混音算法中,最基础的混音原理就是将各路音频流中表征声音的振幅线性叠加起来。

二、混音算法

如果只是将各路音频线性叠加起来,会出现振幅值溢出问题,在叠加以后容易产生溢出、声音不均衡的现象。因此,会有以下改进方案:

  1. 混合权重

    声波的振幅表示声音的能量水平,在多个音频流中,可能有的很大,有的小一些,差距过大,在混音后,用户一般希望多路声音听起来比较均衡。因此,要先调整部分音频流的音量再混合。

  2. 溢出处理

    多路音频流的采样点线性叠加后可能会造成溢出。如每一个采样点由16位表示,表示范围为-32768~32767,如果叠加后的值出现上溢出(即大于32767)时,则采用最大值32767;如果出现下溢出时(即小于-32768),则采用最小值-32768。

三、混音条件

具有相同音频特征的音频流才能线性叠加,相关条件如下:

  1. 格式相同,一般使用解码后的PCM格式音频来混合

  2. 采样率相同

  3. 帧长相同

  4. 采样位深一样

  5. 声道数相同

四、应用场景

  • 音视频会议中的音频混音

  • 直播唱歌或连麦时,主播声音、伴奏声音等多种声音混合

相关推荐
贾宝玉的玉宝贾2 天前
FreeSWITCH 简单图形化界面40 - 使用mod_curl模块进行http请求
python·http·voip·freeswitch·sip
Mike_Zhang2 个月前
FreeSWITCH日志功能分析及apr模拟
voip·freeswitch
贾宝玉的玉宝贾2 个月前
FreeSWITCH 简单图形化界面39 - Windows安装FreeSWITCH For IPPBX(WSL环境)
windows·voip·freeswitch·ippbx·sip测试
贾宝玉的玉宝贾2 个月前
FreeSWITCH 简单图形化界面38 - 使用uniapp中使用JsSIP进行音视频呼叫
uni-app·音视频·voip·freeswitch·ippbx·jssip
Mike_Zhang3 个月前
使用pjsip封装自定义软电话sdk
voip·pjsip·pjsua
戴草帽的大z3 个月前
Kamailio SIP服务器的配置与运行
kamailio·voip·sip
Mike_Zhang4 个月前
pjsip编译、说明及vs2022使用示例
voip·pjsua
筑梦之路4 个月前
Debian 12 安装freeswitch 1.10.12对接Volte视频通话——筑梦之路
debian·voip
贾宝玉的玉宝贾4 个月前
FreeSWITCH 简单图形化界面30 - 使用MYODBC时可能遇到的错误
android·adb·voip·freeswitch·ippbx·sip测试