音频相关的基本概念

音频相关的基本概念

1. 声音的本质

声音的本质是波在介质中的传播现象,声波的本质是一种波,是一种物理量。 两者不一样,声音是一种抽象的,是声波的传播现象,声波是物理量。

2. 声音的三要素

响度(loudness): 人主观上感觉声音的大小(俗称音量),由“振幅”(amplitude)和人离声源的距离决定,振幅越大响度越大,人和声源的距离越小,响度越大。

音调(pitch): 声音的高低(高音、低音),由频率决定,频率越高音调越高(频率单位Hz,赫兹),人耳听觉范围20~20000Hz。20Hz以下称为次声波,20000Hz以上称为超声波)。

音色(Timbre)波形决定了声音的音调。由于不同对象材料的特点,声音具有不同的特性,音色本身就是抽象的东西,但波形就是把这种抽象和直观的性能。波形因音调而异,不同的音调可以通过波形来区分。
傅立叶理论 (Jean Baptiste Joseph Fourier,1768-1830。他提出任何周期信号都可以看做是一系列正弦波和余弦波的叠加。 )告诉我们,时域中的任何电信号都可以由一个或多个具有适当频率、幅度和相位的正弦波叠加而成。

3.几个基本概念

  • 比特率(码率):比特率是每秒传输的比特数。单位为比特(bps位/秒)。指音频每秒钟播放的数据量,单位为 bit,例如对于 PCM 流,采样率为 44100Hz,采样大小为16,声道数为 2,那么码率为:44100* 16 * 2 = 1411200 bps。
    关于音频文件大小的计算文件大小 = 采样率 * 录音时间 * 采样位数 / 8 * 通道数(字节)

  • 采样: 采样是把连续的时间信号,变成离散的数字信号。

  • 采样率:简单来说就是每秒获取声音样本的次数。

声音是一种能量波,其具有音频频率和振幅的特征。那么采样的过程,其实就是抽取某点的频率值。如果我们在一秒钟抽取的点越多,获得的信息也就越多; 采样率越高,声音的质量就越好。但是并不是说采样率越高就越好了,因为人耳听觉的范围为 20Hz ~ 20kHz。一般来讲,44100HZ的采样率已经能够满足基本的要求了。

  • 采样数:采样数跟采样率和时间有关系,比如采样率为 44100Hz,采样时间为1s,那么1s 内的采样数就为 44100 个。

  • 采样位数 : 采样位数也叫采样大小或者量化位数。量化深度表示每个采样点用多少比特表示,音频的量化深度一般为 8 、16 、32 位等。例如:量化深度为 8bit 时,每个采样点可以表示 256 个不同的量化值,而量化深度为 16bit 时,每个采样点可以表示 65536 个不同的量化值。
      量化深度的大小影响到声音的质量,显然,位数越多,量化后的波形越接近原始波形,声音的质量越高,而需要的存储空间也越多;位数越少,声音的质量越低,需要的存储空间越少。CD音质采用的是 16 bits.
      
     - 通道数:通道数即声音的通道数目,常见的有单声道、双声道和立体声道。
      单声道的声音只能使用一个扬声器发声,或者也可以处理成两个扬声器输出同一个声道的声音,当通过两个扬声器回放单声道信息的时候,我们可以明显感觉到声音是从两个音箱中间传递到我们耳朵里的,无法判断声源的具体位置。
      双声道就是有两个声音通道,其原理是人们听到声音时可以根据左耳和右耳对声音相位差来判断声源的具体位置。声音在录制过程中被分配到两个独立的声道,从而达到了很好的声音定位效果。
      记录声音时,如果每次生成一个声波数据,称为单声道;每次生成两个声波数据,称为双声道(立体声)。立体声(双声道)存储大小是单声道文件的两倍。

  • 音频帧: 音频跟视频不太一样,视频的每一帧就是一副图像,但是因为音频是流式的,本身是没有一帧的概念的。而且有些时候确实没有办法说一帧怎么怎么样。比如对于 PCM 流来说,采样率为 44100Hz,采样位数为 16,通道数为 2,那么一秒的音频固定大小的:44100162 / 8 字节。但是人们可以规定一帧的概念,比如amr 帧比较简单,它规定每 20ms 的音频是一帧。

  • 奈奎斯特采样定律(Nyquist):又称为采样定律,采样率大于或等于连续信号最高频率分量的2倍时,采样信号可以用来完美重构原始连续信号通常有44.1KHz,48kHz。

  • PCM 流
    PCM 流就是原始收录声音时,数据会保存到一串 buffer 中,这串 buffer,就采用了 PCM 格式存储的。通常把音频采样过程也叫做脉冲编码调制编码,即 PCM(Pulse Code Modulation)编码,采样值也叫 PCM 值。
      在 windows 中,通过 WaveIn 或者 CoreAudio 采集声音,得到的原始数据就是一串PCM格式的buffer。

4.编码的过程

编码过程: 模拟信号-> 采样-> 量化-> 编码->数字信号

4.1 采样

所谓采样就是只在时间轴上对信号进行数字化。

根据奈奎斯特定律(也称为采样定律),按照比声音最高频率的2倍上进行采样。人类听觉的频率(音调)范围为 20Hz–20KHz 。所以至少要大于 40KHz。采样频率一般为44.1kHz,这样可保证声音达到 20kHz 也能被数字化。44.1kHz 就是代表 1 秒会采样 44100次。

4.2 量化

具体每个采样又该如何表示呢???这就涉及到量化。
  量化是指在幅度轴上对信号进行数字化。如果用 16(8/32) 比特位的二进制信号来表示一个采样,那么一个采样所表示的范围即为【-32768,32767】。

4.3 编码

每一个量化都是一个采样,将这么多采样进行存储就叫做编码。所谓编码,就是按照一定的格式记录采样和量化后的数字数据,比如顺序存储或者压缩存储,等等。
  通常所说的音频裸数据格式就是脉冲编码调制(PCM)数据。一段 PCM 数据通常需要量化格式(位深,通常 16bit)、 采样率、声道数几个概念来描述。
  对于声音格式,还有一个概念用来描述它的大小,即比特率,就是1 秒内的比特数目,用来衡量音频数据单位时间内的容量大小。

4.4 数字信号

将编码数据用高低电平表示出来就可以了。

5. 音频处理相关

5.1算法名称及部分功能解释

AEC(Acoustic Echo Cancellation) 回声消除算法
  在视频或者音频通话过程中,本地的声音传输到对端播放之后,声音会被对端的麦克风
采集,混合着对端人声一起传输到本地播放,这样本地播放的声音包含了本地原来采集的声音,造成主观感觉听到了自己的回声。以 WebRTC 为例,其中的回声抑制模块建议移动设备采用运算量较小的 AECM 算法,

AGC(Automatic Gain Control) 增益控制/自动增益控制
手机等设备采集的音频数据往往有时候响度偏高,有时候响度偏低,造成声音忽大忽小,影响听众的主观感受。自动增益控制算法根据预先配置的参数对输入声音进行正向/负向调节,使得输出的声音适宜人耳的主观感受。

VAD(Voice Activity Detection) 端点检测/静音检测/语音端点检测/语音边界检测
静音检测的基本原理:计算音频的功率谱密度,如果功率谱密度小于阈值则认为是静音,否则认为是声音。静音检测广泛应用于音频编码、AGC、AECM 等。

NS (Noise Suppression) 噪声抑制/降噪/主动噪声控制/噪声消除/主动降噪

手机等设备采集的原始声音往往包含了背景噪声,影响听众的主观体验,降低音频压缩效率。以 Google 著名的开源框架 WebRTC为例,我们对其中的噪声抑制算法进行严谨的测试,发现该算法可以对白噪声和有色噪声进行良好的抑制。满足视频或者语音通话的要求。其他常见的噪声抑制算法如开源项目 Speex 包含的噪声抑制算法,也有较好的效果,该算法适用范围较WebRTC 的噪声抑制算法更加广泛,可以在任意采样率下使用。
CNG舒适噪音产生(Comfortable Noise Generation)
 舒适噪声产生的基本原理:根据噪声的功率谱密度,人为构造噪声。广泛适用于音频编解码器。在编码端计算静音时的白噪声功率谱密度,将静音时段和功率谱密度信息编码。在解码端,根据时间信息和功率谱密度信息,重建随机白噪声。

ANC(Active Noise Control) 噪声抑制/降噪/主动噪声控制/噪声消除/主动降噪
ANS(Automatic Noise Suppression) 噪声抑制/降噪/主动噪声控制/噪声消除/主动降噪
NC (Noise Cancellation) 噪声抑制/降噪/主动噪声控制/噪声消除/主动降噪
AFC(Acoustic Feedback Cancellation) 啸叫抑制/自适应声反馈消除/声反馈消除
EQ 音频均衡
Dereverberation 混响去除
Beam Forming 波束形成
Speech Recognition 语音识别
ASR(Automatic Speech Recognition) 语音识别
KWS(Keyword Spotting) 语音唤醒
Speech Enhancement 语音增强
Audio encode 音频编码
Microphone Array 麦克风阵列
Voiceprint recognition 声纹识别
Sound source localization 声源定位

5.2 部分服务

压缩器(compressor):减小高信号的输出
自动增益(AGC):对高信号进行降低,对低信号进行升高
反馈消除(AFC):使某一频率点的输入信号迅速衰弱达到阻止此频率信号通过的效果,避免啸叫产生
回声消除(AEC):进行回声消除
闪避器:保证同一时刻只有输入信号效果好
延时器(Delayer):延缓信号输出时间
音箱管理器(main mixer):可以对输出信号进行一些微调
限幅器(limiter):控制输出信号的最大值

6.音频采集的来源是什么,如何计算?

首先音频的来源一般为麦克风(MediaRecorder.AudioSource.MIC)

采样率(单位:赫兹)
  每秒钟音频采样点个数(8000/44100Hz),模拟信号数字化的过程,用0101来表示的数字信号
  
声道

  • AudioFormat.CHANNEL_IN_MONO 单声道,一个声道进行采样
  • AudioFormat.CHANNEL_IN_STEREO 双声道,两个声道进行采样

频采样精度
 指定样式的数据的格式和每次采用的大小,数据返回的格式PCM格式,每次采用的位宽为16bit,一般都采用这个 AudioFormat.ENCODING_PCM_16BIT(官方文档表示,该采样精度保证所有设备都支持)

每秒钟采样的大小
采样率 * 采样大小 * 声道数
每秒钟采样的大小=16bit( 位宽) * 2( 双通道) * 44100(每次采样的次数 hz) =1411200b=1411.2kbps

7.音频使用场景及应用

在现实生活中,音频(audio)主要用在两大场景中:语音(voice)和音乐(music)。语音主要用于沟通通信,如打电话,现在由于语音识别的发展,人机语音交互也是语音的一个应用,目前正在风口上,好多大厂都推出了 智能音箱。音乐主要用于欣赏,如音乐播放。
音频开发的主要应用:

7.1音频播放器

录音机
语音电话
音视频监控应用
音视频直播应用
音频编辑/ 处理软件(ktv 音效、变声, 铃声转换)
蓝牙耳机/音箱

7.2 音频开发的具体内容:

音频采集/播放;
音频算法处理(去噪、VAD 检测、回声消除、音效处理、功放/增强、混音/分离,等等);
音频的编解码和格式转换;
音频传输协议的开发(SIP,A2DP、AVRCP,等等)。

8.混音技术介绍

混音:顾名思义,就是把两路或者多路音频流混合在一起,形成一路音频流。
混流:则是指音视频流的混合,也就是视频画面和声音的对齐,也称混流。

并非任何两路音频流都可以直接混合。

8.1 两路音视频流,必须符合以下条件

  • 格式相同,要解压成 PCM 格式。
  • 采样率相同,要转换成相同的采样率。主流采样率包括:16k Hz、32k Hz、44.1k Hz 和 48kHz。
  • 帧长相同,帧长由编码格式决定,PCM 没有帧长的概念,开发者自行决定帧长。为了和主流音频编码格式的帧长保持一致,推荐采用 20ms 为帧长。
  • 位深( (Bit-Depth) )式 或采样格式 (Sample Format) 相同,承载每个采样点数据的 bit 数目
    要相同。
  • 声道数相同,必须同样是单声道或者双声道 (立体声)。这样,把格式、采样率、帧长、
    位深和声道数对齐了以后,两个音频流就可以混合了。

8.2 回声消除、噪音抑制和静音检测等处理

在混音之前,还需要做回声消除、噪音抑制和静音检测等处理。回声消除和噪音抑制属于语音前处理范畴的工作。在**编码之前,采集、语音前处理、混音之前的处理、混音和混音之后的处理应该按顺序进行。**静音抑制(VAD,Voice Activity Detect)可做可不做。对于终端混音,是要把采集到的主播声音和从音频文件中读到的伴奏声音混合。如果主播停顿一段时间不发出声音,通过 VAD 检测到了,那么这段时间不混音,直接采用伴奏音乐的数据就好了。然而,为了简单起见,也可以不做 VAD。主播不发声音的期间,继续做混音也可以(主播的声音为零振幅)。

9. 音频重采样

重采样即是将音频进行重新采样得到新的采样率的音频。

重采样的原因???
音频系统中可能存在多个音轨,而每个音轨的原始采样率可能是不一致的。比如在播放音乐的过程中,来了一个提示音,就需要把音乐和提示音都混合到 codec 输出,音乐的原始采样率和提示音的原始采样率可能是不一致的。问题来了,如果 codec 的采样率设置为音乐的原始采样率的话,那么提示音就会失真。因此最简单见效的解决方法是:codec 的采样率固定一个值(44.1KHz/48KHz),所有音轨都重采样到这个采样率,然后才送到 音轨都重采样到这个采样率,然后才送到 codec,保证所有音轨听起来都不失真 ,保证所有音轨听起来都不失真。

10.频谱

频谱是一组正弦波,经适当组合后,形成被考察的时域信号。 显示了一个复合信号的波形。假定我们希望看到的是正弦波,但显然图示信号并不是纯粹的正弦形,而仅靠观察又很难确定其中的原因。

11. 嵌入式DSP处理器(Embedded Digital Signal Processor,EDSP)

是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波、频谱分析等)的嵌入式处理器。由于对DSP硬件结构和指令进行了特殊设计,使其能够高速完成各种数字信号处理算法。

11.1 特点

嵌入式数字信号处理器的长处在于能够进行向量运算、指针线性寻址等运算量较大的数据处理。
嵌入式数字信号处理器是专门用于信号处理的嵌入式处理器,在系统结构和指令算法方面经过特殊设计。因而具有很高的编译效率和指令执行速度。DSP芯片内部采用程序和数据分开的哈佛结构。具有专门的硬件乘法器,广泛采用流水线操作。提供特殊的DSP指令,可以快速实现各种数字信号处理算法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值