2024年5月10日发(作者:)

网络语音通话运用了哪些技术?

当我们使用像Skype、QQ这样的工具和朋友流畅地进行语音视频聊天时,我

们可曾想过其背后有哪些强大的技术在支撑?本文将对网络语音通话所使用到的技术做

一些简单的介绍,算是管中窥豹吧。

一、概念模型

网络语音通话通常是双向的,就模型层面来说,这个双向是对称的。为了简单起见,我们

讨论一个方向的通道就可以了。一方说话,另一方则听到声音。看似简单而迅捷,但是其

背后的流程却是相当复杂的。我们将其经过的各个主要环节简化成下图所示的概念模型:

这是一个最基础的模型,由五个重要的环节构成:采集、编码、传送、解码、播放。

1. 语音采集

语音采集指的是从麦克风采集音频数据,即声音样本转换成数字信号。其涉及到几个重要

的参数:采样频率、采样位数、声道数。

简单的来说:采样频率,就是在1秒内进行采集动作的次数;采样位数,就是每次采集动

作得到的数据长度。

而一个音频帧的大小就等于:(采样频率×采样位数×声道数×时间)/8。

通常一个采样帧的时长为10ms,即每10ms的数据构成一个音频帧。假设:采样率16k、

采样位数16bit、声道数1,那么一个10ms的音频帧的大小为:(16000*16*1*0.01)/8 = 320

字节。计算式中的0.01为秒,即10ms。

附:可以参考了解语音视频采集组件MCapture相关介绍 及 Demo源码与SDK下载。

2. 编码

假设我们将采集到的音频帧不经过编码,而直接发送,那么我们可以计算其所需要的带宽

要求,仍以上例:320*100 =32KBytes/s,如果换算为bits/s,则为256kb/s。这是个很大的

带宽占用。而通过网络流量监控工具,我们可以发现采用类似QQ等IM软件进行语音通

话时,流量为3-5KB/s,这比原始流量小了一个数量级。而这主要得益于音频编码技术。