前言

即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙。原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的。

系列文章

  • 《即时通讯音视频开发(五):认识主流视频编码技术H.264》
  • 《即时通讯音视频开发(六):如何开始音频编解码技术的学习》

基础概念

比特率:
表示经过编码(压缩)后的音频数据每秒钟需要用多少个比特来表示,单位常为kbps。

响度和强度:
声音的主观属性响度表示的是一个声音听来有多响的程度。响度主要随声音的强度而变化,但也受频率的影响。总的说,中频纯音听来比低频和高频纯音响一些。

采样和采样率:
采样是把连续的时间信号,变成离散的数字信号。采样率是指每秒钟采集多少个样本。

常见音频格式

1. WAV格式,是微软公司开发的一种声音文件格式,也叫波形声音文件,是最早的数字音频格式,被Windows平台及其应用程序广泛支持,压缩率低。

2. MIDI是Musical Instrument Digital Interface的缩写,又称作乐器数字接口,是数字音乐/电子合成乐器的统一国际标准。它定义了计算机音乐程序、数字合成器及其它电子设备交换音乐信号的方式,规定了不同厂家的电子乐器与计算机连接的电缆和硬件及设备间数据传输的协议,可以模拟多种乐器的声音。MIDI文件就是MIDI格式的文件,在MIDI文件中存储的是一些指令。把这些指令发送给声卡,由声卡按照指令将声音合成出来。

3. MP3全称是MPEG-1 Audio Layer 3,它在1992年合并至MPEG规范中。MP3能够以高音质、低采样率对数字音频文件进行压缩。应用最普遍。

4. MP3Pro是由瑞典Coding科技公司开发的,其中包含了两大技术:一是来自于Coding科技公司所特有的解码技术,二是由MP3的专利持有者法国汤姆森多媒体公司和德国Fraunhofer集成电路协会共同研究的一项译码技术。MP3Pro可以在基本不改变文件大小的情况下改善原先的MP3音乐音质。它能够在用较低的比特率压缩音频文件的情况下,最大程度地保持压缩前的音质。

5. WMA (Windows Media Audio)是微软在互联网音频、视频领域的力作。WMA格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的,其压缩率一般可以达到1:18。此外,WMA还可以通过DRM(Digital Rights Management)保护版权。

6. RealAudio是由Real Networks公司推出的一种文件格式,最大的特点就是可以实时传输音频信息,尤其是在网速较慢的情况下,仍然可以较为流畅地传送数据,因此RealAudio主要适用于网络上的在线播放。现在的RealAudio文件格式主要有RA(RealAudio)、RM(RealMedia,RealAudio G2)、RMX(RealAudio Secured)等三种,这些文件的共同性在于随着网络带宽的不同而改变声音的质量,在保证大多数人听到流畅声音的前提下,令带宽较宽敞的听众获得较好的音质。

7. Audible拥有四种不同的格式:Audible1、2、3、4。Audible.com网站主要是在互联网上贩卖有声书籍,并对它们所销售商品、文件通过四种Audible.com 专用音频格式中的一种提供保护。每一种格式主要考虑音频源以及所使用的收听的设备。格式1、2和 3采用不同级别的语音压缩,而格式4采用更低的采样率和MP3相同的解码方式,所得到语音吐辞更清楚,而且可以更有效地从网上进行下载。Audible 所采用的是他们自己的桌面播放工具,这就是Audible Manager,使用这种播放器就可以播放存放在PC或者是传输到便携式播放器上的Audible格式文件。

8. AAC实际上是高级音频编码的缩写。AAC是由Fraunhofer IIS-A、杜比和AT&T共同开发的一种音频格式,它是MPEG-2规范的一部分。AAC所采用的运算法则与MP3的运算法则有所不同,AAC通过结合其他的功能 来提高编码效率。AAC的音频算法在压缩能力上远远超过了以前的一些压缩算法(比如MP3等)。它还同时支持多达48个音轨、15个低频音轨、更多种采样率和比特率、多种语言的兼容能力、更高的解码效率。总之,AAC可以在比MP3文件缩小30%的前提下提供更好的音质。

9. Ogg Vorbis 是一种新的音频压缩格式,类似于MP3等现有的音乐格式。但有一点不同 的是,它是完全免费 、开放和没有专利限制的。Vorbis 是这种音频压缩机制的名字,而Ogg则是一个计划的名字,该计划 意图设计 一个完全开放性的多媒体系统。VORBIS也是有损压缩,但通过使用更加先进的声学模型去减少损失,因此,同样位速率(Bit Rate)编码的OGG与MP3相比听起来更好一些。

10. APE是一种无损压缩音频格式,在音质不降低的前提下,大小压缩到传统无损格式 WAV 文件的一半。

11. FLAC即是Free Lossless Audio Codec的缩写,是一套著名的自由音频无损压缩编码,其特点是无损压缩。

(与以上用于存储和回放非实时压缩协议的标准不同,常见的实时音频通讯的编码标准具体请见:《即时通讯音视频开发(八):常见的实时音频通讯编码标准》)

音频编码的基本原理讲解

1概述

语音编码致力于:降低传输所需要的信道带宽,同时保持输入语音的高质量。
语音编码的目标在于:设计低复杂度的编码器以尽可能低的比特率实现高品质数据传输。

2静音阈值曲线

指在安静环境下,人耳在各个频率能听到声音的阈值。

临界频带

由于人耳对不同频率的解析度不同,MPEG1/Audio将22khz内可感知的频率范围,依不同编码层,不同取样频率,划分成23~26个临界频带。下图列出理想临界频带的中心频率与频宽。图中可看到,人耳对低频的解析度较好。

频域上的掩蔽效应

幅值较大的信号会掩蔽频率相近的幅值较小的信号,如下图:

时域上的遮蔽效应

在一个很短的时间内,若出现了2个声音,SPL(sound pressure level)较大的声音会掩蔽SPL较小的声音。时域掩蔽效应分前向掩蔽(pre-masking)和后向掩蔽(post-masking),其中post-masking的时间会比较长,约是pre-masking的10倍。

编码基本手段(1):量化和量化器

基本概念:

  • 量化和量化器:量化是把离散时间上的连续信号,转化成离散时间上的离散信号。
  • 常见的量化器有:均匀量化器,对数量化器,非均匀量化器。
  • 量化过程追求的目标是:最小化量化误差,并尽量减低量化器的复杂度(这2者本身就是一个矛盾)。

常见的量化器的优缺点:

  • (a)均匀量化器:最简单,性能最差,仅适应于电话语音。
  • (b)对数量化器:比均匀量化器复杂,也容易实现,性能比均匀量化器好。
  • (c)非均匀(Non-uniform)量化器:根据信号的分布情况,来设计量化器。信号密集的地方进行细致的量化,稀疏的地方进行粗略量化。

编码基本手段(2):语音编码器

1基本概念

语音编码器分为三种类形:(a)波形编器 、(b)声码器 、(c)混合编码器 。

波形编码器以构造出背景噪单在内的模拟波形为目标。作用于所有输入信号,因此会产生高质量的样值并且耗费较高的比特率。 而声码器 (vocoder)不会再生原始波形。这组编码器 会提取一组参数 ,这组参数被送到接收端,用来导出语音产生模形。声码器语音质量不够好。混合编码器,它融入了波形编码器和声器的长处。

2波形编码器

波形编码器的设计常独立于信号。所以适应于各种信号的编码而不限于语音。

时域编码:

  • a)PCM:pulse code modulation,是最简单的编码方式。仅仅是对信号的离散和量化,常采用对数量化。
  • b)DPCM:differential pulse code modulation,差分脉冲编码,只对样本之间的差异进行编码。前一个或多个样本用来预测当前样本值。用来做预测的样本越多,预测值越精确。真实值和预测值之间的差值叫残差,是编码的对象。

  • c)ADPCM:adaptive differential pulse code modulation,自适应差分脉冲编码。即在DPCM的基础上,根据信号的变化,适当调整量化器和预测器,使预测值更接近真实信号,残差更小,压缩效率更高。

频域编码:
          频域编码是把信号分解成一系列不同频率的元素,并进行独立编码。

  • a)sub-band coding:子带编码是最简单的频域编码技术。是将原始信号由时间域转变为频率域,然后将其分割为若干个子频带,并对其分别进行数字编码的技术。它是利用带通滤波器(BPF)组把原始信号分割为若干(例如m个)子频带(简称子带)。将各子带通过等效于单边带调幅的调制特性,将各子带搬移到零频率附近,分别经过BPF(共m个)之后,再以规定的速率(奈奎斯特速率)对各子带输出信号进行取样,并对取样数值进行通常的数字编码,其设置m路数字编码器。将各路数字编码信号送到多路复用器,最后输出子带编码数据流。对不同的子带可以根据人耳感知模型,采用不同量化方式以及对子带分配不同的比特数。
  • b)transform coding:DCT编码。

3声码器

channel vocoder: 利用人耳对相位的不敏感。
homomorphic vocoder:能有效地处理合成信号。
formant vocoder: 以用语音信号的绝大部分信息都位于共振峰的位置与带宽上。
linear predictive vocoder:最常用的声码器。

4混合编码器

波形编码器试图保留被编码信号的波形,能以中等比特率(32kbps)提供高品质语音,但无法应用在低比特率场合。声码器试图产生在听觉上与被编码信号相似的信号,能以低比特率提供可以理解的语音,但是所形成的语音听起来不自然。

混合编码器结合了2者的优点:

  • RELP: 在线性预测的基础上,对残差进行编码。机制为:只传输小部分残差,在接受端重构全部残差(把基带的残差进行拷贝)。
  • MPC: multi-pulse coding,对残差去除相关性,用于弥补声码器将声音简单分为voiced和unvoiced,而没有中间状态的缺陷。
  • CELP: codebook excited linear prediction,用声道预测其和基音预测器的级联,更好逼近原始信号。
  • MBE: multiband excitation,多带激励,目的是避免CELP的大量运算,获得比声码器更高的质量。

网易云信,你身边的即时通讯和音视频技术专家,了解我们,请戳网易云信官网

想要行业洞察和技术干货,请关注网易云信博客

本文转载自52im,作者:JackJiang

即时通讯音视频开发(七):音频基础及编码原理入门相关推荐

  1. 即时通讯音视频开发(十八):详解音频编解码的原理、演进和应用选型

    1.引言 大家好,我是刘华平,从毕业到现在我一直在从事音视频领域相关工作,也有一些自己的创业项目,曾为早期Google Android SDK多媒体架构的构建作出贡献. 就音频而言,无论是算法多样性, ...

  2. 即时通讯音视频开发(0):零基础,史上最通俗视频编码技术入门

    [来源申明]本文引用了微信公众号"鲜枣课堂"的<视频编码零基础入门>文章内容.为了更好的内容呈现,即时通讯网在引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作 ...

  3. 即时通讯音视频开发(六):如何开始音频编解码技术的学习

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的. 系列文 ...

  4. 即时通讯音视频开发(三):视频编解码之编码基础

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的. 系列文 ...

  5. 即时通讯音视频开发(八):常见的实时语音通讯编码标准

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的. 系列文 ...

  6. 即时通讯音视频开发(十):实时语音通讯的回音消除技术详解

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的.有关实时 ...

  7. 即时通讯音视频开发(十四):实时音视频数据传输协议介绍

    概述 随着移动互联网的快速发展以及智能终端性能的逐步提高,智能终端间进行实时音视频通讯成为移动互联网发展的一个重要方向.那么如何保证智能终端之间实时音视频数据通讯成为一个很现实的问题. 实际上,实时音 ...

  8. 即时通讯音视频开发(五):认识主流视频编码技术H.264

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的. 系列文 ...

  9. 即时通讯音视频开发(二):视频编解码之数字视频介绍

    前言 即时通讯应用中的实时音视频技术,几乎是IM开发中的最后一道高墙.原因在于:实时音视频技术 = 音视频处理技术 + 网络传输技术 的横向技术应用集合体,而公共互联网不是为了实时通信设计的. 系列文 ...

最新文章

  1. 程序员新手 0年份等级 指导(一) 开发人员IT架构总览
  2. tensorflow 加载bert_用NodeJS/TensorFlowJS调用BERT实现文本分类
  3. java 文件保存目录结构_java web 实现文件夹上传(保留目录结构)
  4. DWZ与百度编辑器的IE8以下上传图片兼容问题
  5. php与mysql基础教程第二版_PHP 和 MySQL 基础教程(二)
  6. 【2019牛客暑期多校训练营(第三场)- A】Graph Games(思维,对边分块)
  7. 抖音不服诉腾讯管辖权被转至深圳中院 上诉获受理
  8. /dev/shm目录下产生大量的ora_$ORACLE_SID的二进制文件
  9. ffmpeg (二):ffmpeg结合SDL2.0解码视频流
  10. 招聘 | 浙大杨杰课题组-博士后与科研助理-医学AI/NLP
  11. 如何合理地决定线程池大小?
  12. 【计算机的物理实现】电子科技的根源 - PN结
  13. CS 61A Spring 2019 HW02 学习笔记
  14. 内卷的火锅赛道,增长却难破“网红”局
  15. python获取json数据中某个字段_python获取json数据中某个字段
  16. 一文了解大厂的DDD领域驱动设计
  17. Python3开启自带http服务
  18. 自动化失败的6种原因
  19. win7原版映像中添加usb3.0驱动
  20. leaflet-离线地图

热门文章

  1. 7.多媒体☞图像图形拍照
  2. android108 内存分配
  3. python打开excel执行vba代码_python可以添加,运行和删除VBA宏以实现excel而无需中间保存步骤吗?...
  4. 疾病相关数据查找,Our world in data使用指南
  5. c++从零实现神经网络
  6. 转载:二叉树的前中后和层序遍历详细图解(递归和非递归写法)
  7. windows下程序开机自启动(任务计划程序)
  8. 音频处理九:(参数估计)
  9. linux一直用户身份验证失败,linux – chsh:PAM身份验证失败
  10. php 获取汉字,php 获取汉字长度