知方号

知方号

实时语音传输系统(一)

实时语音传输系统(一)

实时音频传输衍生了很多应用,这篇大概整理一下自己的理解~

1.实时音频传输系统

如下图所示,在一个实时语音传输框架中,语音编解码是整个流程中非常重要的一部分,很大程度上决定了最终用户接收到的语音质量。声卡设备首先对音频信号进行采集并进行数模转换及量化后,变成PCM语音信号。编码器对这些原始信号进行有损的压缩编码,在保证高质量的同时,尽量降低数据量,减少传输的网络带宽压力。

语音编码器的输入就是PCM语音信号(可以理解为原始无损的语音信号),输出就是有损的压缩编码后的语音帧数据,这些数据再打包成RTP包,发送到网络中进行传输。

2.主流音频编解码器

音频编码相对于视频编码,从算法多样性、codec种类、复杂程度等方面都更为复杂。这里首先对现有的一些主流音频编码器按照应用场景、编码原理、制定组织进行分类,争取对现有的一些主流音频编码器有一个大概的了解。

(1)按照应用场景进行分类

音频编解码器根据应用场景,主要分为语音编码器和音乐编码器。

语音编码器主要特点是低时延,对质量要求稍低,通常采样率较低(通常8k或16k);

音乐编码器的主要特点是高质量(采样率高,需使用覆盖到全频带的44.1k及以上),对时延的要求稍低。

(2)按照编码原理进行分类

根据编码器的原理,编解码器主要经历了如下几个发展方向:

以G.7 (G.729/CELP)为例,根据发声模型设计的一套主要集中于语音方面的编解码算法;

以ISO的MP3和AAC为例,根据心理声学模型设计的感知编解码算法;

融合方案:结合上述两种方式,通过一套编码从容应对语音和音乐两个应用场景,两个比较典型的音频编码器是OPUS(再WebRTC中使用)和EVS(已尝试用于4G或者5G中)。

(3)按照制定组织进行分类^1

根据这些语音编码的制定组织,我们也可以把现有的一些语音编码器进行一个分类。

1)ITU-T

ITU-T制定的是有线语音的编码标准,即G系列,主要有G.711, G.722, G.726, G.728, G.729等。采样率窄带是8kHz,宽带是16kHz。码率从64kbps到8kbps不等。

codec采样率(Hz)码率(bps)G.711(A-law, $mu$-law)8k64kG.72216k64kG.7268k16k/24k/32k/40kG.7288k16kG.7298k8k2)3GPP

3GPP制定的是移动语音的codec标准,主要是AMR(Adaptive Multi-Rate,自适应多码率)系列等,能根据网络状况自适应地调整码率。采样率窄带是8kHz,宽带是16kHz。近年来为了应对互联网的竞争(OPUS等编码器的出现),3GPP出台了EVS(Enhanced Voice Service)音频编解码规范。EVS涵盖了语音和音乐,能在两者之间灵活切换,支持多种采样率和码率。具体如下表所示:

codec采样率(Hz)码率(kbps)AMR-NB8k4.75/5.15/5.90/6.70/7.40/7.95/10.20/12.20AMR-WB16k6.60/8.85/12.65/14.25/15.85/18.25/19.85/23.05/23.85EVS8k/16k/32k/48k5.9~1283)MPEG

MPEG主要制定的是音乐的编码规范,主要有MP3、AAC等。MP3是近二十年来音乐的主要格式,AAC是MP3的继承者,下一代最主要的音乐编解码规范。音乐中采样率一般是44.1kHz,也有的用48kHz。

注:MPEG是ISO和IEC与1998年成立的专门针对运动图像和语音压缩制定国际标准的组织4)公司或公司联合体

一些公司或者公司联合体会根据需要制定音频的编解码规范,比如微软的WMA,Skype的SILK,GIPS的ILBC(GIPS在2011被谷歌收购,谷歌基于GIPS的音视频解决方案推出了WebRTC并开源)等。后续由非盈利的Xiph.org基金会、Skype、Mozilla等共同主导开发的OPUS受到了比较大的关注,OPUS是全频段(8kHz~48kHz),支持语音和音乐(语音用SILK,音乐用CELT),已被IETF接纳成为网络上的声音编解码标准(RFC6716)。

3.音频编解码器的评价指标

音频编解码器的两个关键评价指标:质量、延时。编码器的质量越高(压缩后的信息量损失比较少),延时越低则越好。

4.OPUS

OPUS是一个目前比较主流的音频编解码器,它也是WebRTC中的默认语音编码器。OPUS通过对音频数据进行有损压缩来降低数据量,可适用于从低码率窄带语音到非常高质量的立体声音乐。OPUS的主要特点如下:

采样率从8~48kHz比特率从6kbps到510kbps对固定码率(CBR)和可变码率(VBR)都能支持从窄带到宽带(如下图所示)的音频带宽支持音乐和语音支持单声道和立体声支持多通道(最多255通道)低延时:音频帧从2.5毫秒到60毫秒良好的损失鲁棒性和包丢失隐藏性(PLC)浮点和定点执行

人类的发声范围是65Hz-1100Hz,听力感知范围是20Hz-20kHz。将听力感知范围按照频率划分为如下图四种:窄带、宽带、超宽带、全带。

OPUS融合了SILK(源于Skype)和CELT编码方法。

(1)SILK

SILK基于语音信号的线性预测分析(LPC),SILK是一种语音信号的时间域编码方法。在OPUS中,SILK主要负责语音编解码,处理8kHz和16kHz的信号。

(2)CELT

CELT基于MDCT,是一种语音与音频的频域编码方法,适用于全带宽音频,但在低比特率语音上不够高效,与SILK形成互补。

(3)OPUS与其他编码的对比

优点:第一,编码的频率范围更宽,可用于窄带编码、宽带编码和全带编码;第二,相比于其他编码器,编码质量也更高;第三,有官方提供的开源代码,完全免费,如MP3、AAC等音频格式是需要缴纳专利费用的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。