系列文章目录
智能语音处理系列:(一)语音信号基础
文章目录
0. 前言
本系列文章针对智能语音处理领域中常见的基本概念和算法做一些基于个人理解的阐述和科普,主要包含语音识别和语音合成两部分,旨在为对智能语音处理感兴趣或者想要入门智能语音处理领域的朋友提供一个参考。
1. 语音信号基本概念
通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息的形式。本章主要介绍语音相关的一些基础知识。
1.1 语音基本声学特性
音频的基本属性包括音色、音调、音强和音长。这四个属性共同决定了我们如何感知和识别不同的声音。
- 音色(Timbre):指声音的特质或质量,是一种声音区别另一种声音的基本特性;
- 音调(Pitch):指声音的高低,是由声波的频率决定的。频率越高,音调就越高;频率越低,音调就越低;
- 音强(Loudness):指声音的响度,即声音的强弱。音强由声波的振幅(波的高度)决定,振幅越大,声音越响;
- 音长(Duration):指声音持续的时间长短。
1.2 音节(Syllable)
音节是语言中的基本发音单位,通常由一个或多个音素(音的最小单位)组成。一个音节往往由一个元音单独组成,或由一个元音和一个或多个辅音组合而成。
元音构成一个音节的主干,无论从长度还是能量看,元音在音节中都占主要部分,辅音则只出现在音节的前端或后端或前后两端,时长和能量相对都很小。
1.2.1 元音(Vowel)
元音是指发音时气流从声带经过口腔和咽腔几乎不受阻碍的音素。它们是音节的核心,通常决定了音节的长度和质感。元音可以根据口腔的开放度和舌头的位置分为前元音、中元音和后元音。
决定元音音色的主要因素是舌头的形状及其在口腔中的位置和嘴唇的形状等,元音的一个重要特性是共振峰(Formant),声道可以看成是一个根具有非均匀截面的声管,在发音时起共鸣器的作用,当元音激励进入声道时会引起共振特性,产生一组共振频率,称为共振峰频率或共振峰。
1.2.2 辅音(Consonant)
辅音是指发音时气流在声带、口腔或鼻腔受到不同程度阻碍的音素。它们通常出现在音节的开头或结尾位置,围绕元音形成音节。发辅音时由声带是否振动引起浊音和清音的区别,振动的是浊音,不振动的是清音。
辅音没有明确的共振峰结构,分为以下几类:
- 爆破音:如[p]、[t]、[k]、[b]、[d]、[g]。
- 摩擦音:如[f]、[s]、[sh]、[x]、[h]。
- 塞擦音:如[z]、[zh]。
- 鼻音:如[m]、[n]。
- 边音:舌尖形成阻碍不让气流通过,但舌尖两边有空隙能让气流通过的音,如[l]。
- 颤音:如[ra]、[r]。
- 通音:又为半元音或半辅音:通音一般是浊音,性质接近元音,如[w]、[y]。
1.3 韵律(Prosody)
韵律是音调、音强、音长和音色四个音频属性的综合表现,指语言中的声调、重音、节奏、速度等声音特征,它们在语音传递中的作用不仅仅是传达词汇和语法意义,同时也能影响情感和语气的表达。
- 声调:中文是一种有声调的语言,每个字都有其固定的声调。普通话中有四个主要声调:阴平、阳平、上声、去声。
- 节奏:中文的节奏往往通过句子的分组,以及音节的快慢来体现。
- 重音:中文的重音不如英语等西方语言那么明显,但在特定的语境中,重音还是存在的,用以强调某些词汇的意义。
- 语调:语调是指整句话的声调变化。即使在同一个句子中,声调的不同也能够传达出不同的情感。
- 语速:语速的快慢也会影响韵律。
2. 语音信号的特点
语音信号的特性主要是指它的声学特性、时域波形、频谱特性以及语音信号的统计特性等。这些特性对应着各种语音信号特性分析图,如时域图、频谱图和语谱图等。
2.1 时域图
- 概念:时域图(Time-Domain Plot)显示随时间变化的信号振幅。横轴代表时间,纵轴代表信号振幅。
- 特点:时域图最直观地反映了音频信号在时间上的变化情况,能够显示出信号的动态变化、波形形状等。
- 用途:用于观察原始音频信号的结构、过渡、包络和瞬态特性。
2.2 频谱图
- 概念:频谱图(Spectrum Plot)通常用于表示在某一时刻的频率成分及其幅度。横轴是频率,纵轴是信号的幅度或功率。
- 特点:与频域图略有不同的是,频谱图有时更强调一次性的频率分布,而频域图可能通过多次采样或平均化来显示信号的频率特性。
- 用途:用于观察信号的频率分布和强弱对比,可以用于频谱分析、调制信号检测等。
2.3 语谱图
- 概念:语谱图(Spectrogram)是一种将时间、频率和幅度(或者功率)整合在一起的图像。横轴代表时间,纵轴代表频率,不同颜色或灰度代表信号在该时间和频率点上的强度。
- 特点:语谱图可以直观地展示信号在频域随时间的变化情况,是时频分析的常用工具。
- 用途:广泛用于语音信号处理、音乐分析、地震波分析等领域,可以显示声音的频率结构如何随时间变化。
3. 语音信号处理
在语音识别和语音合成中,常见的几种语音信号处理包含语音重采样、语音降噪增强、语音特征提取、语音对应文本的标准化处理和识别结果的后处理等。
3.1 采样和量化
语音信号的采样和量化是将连续的模拟语音信号转换为离散的数字形式的两个关键步骤。这个过程对于数字信号处理、语音存储和传输等非常重要。
3.1.1 采样(Sampling)
- 采样:是将连续的语音信号在时间轴上离散化的过程。具体来说,它是在一定时间间隔内测量并记录语音信号的幅度。
- 采样定理:为了避免信息丢失,根据香农-奈奎斯特采样定理,采样频率必须至少是信号最高频率的两倍。语音信号的频率范围通常在20Hz到20kHz之间,但人类语音的主要信息集中在300Hz到3400Hz范围内。因此,电话语音一般使用8kHz的采样率,因为8kHz是3400Hz频率的两倍以上。对于高保真音频,通常使用44.1kHz或48kHz的采样率。
- 采样过程:采样器在每个采样点读取语音信号的瞬时幅度,并将这些幅度值作为离散的样本输出。
3.1.2 量化(Quantization)
- 量化:是将信号的幅度从连续的取值范围映射到离散的取值范围的过程。在语音信号数字化过程中,量化会将每个采样点的幅度值转换为最接近的离散值。
- 量化级数:量化级数的数量直接影响量化的精度。常见的量化级数有8位(256个级别)、16位(65536个级别)等。位数越高,量化误差(也是量化噪声)越小,音质越高。
- 量化误差:由于量化将连续的幅度值逼近到离散值,产生的误差称为量化误差。量化误差会影响信号的质量,特别是在低量化位数情况下,更容易产生可感知的噪声。
3.1.3 编码(Encoding)
虽然编码不是语音数字化的核心步骤,但它是实际处理中不可或缺的环节。编码就是将量化后的离散幅度值转换成二进制数,以便在计算机系统中存储和传输。例如,按照脉冲编码调制(PCM)的方法,一个16位采样的语音信号的每个采样点会用一个16位二进制数表示。常用的编码方式有G.711、G.726等。
3.2 降噪增强
- 降噪: 从语音信号中有效去除背景噪声,使得语音信号更加清晰。
- 增强: 改善语音信号的质量,具体包括增强语音的可懂度、自然度、或音质等。
- 降噪增强方法:目前主流的一些降噪增强算法还是基于神经网络的方法,CMGAN、BSRNN、DeepFilterNet3、MFNet、MossFormer2等。
3.3 特征提取
目前使用最常见的是梅尔频率倒谱系数 (MFCC)和神经网络生成的嵌入特征(Embedding,语音表征向量)。
3.3.1 梅尔频率倒谱系数 (MFCC)
针对掩蔽效应,从低频到高频这一段频带内按临界带宽的大小由密到疏安排一组带通滤波器,对输入信号进行滤波。将每个带通滤波器输出的信号能量作为信号的基本特征,对此特征经过进一步处理后就可以作为语音的输入特征。由于这种特征不依赖于信号的性质,对输入信号不做任何的假设和限制,又利用了听觉模型的研究成果,所以这种特征具有更好的鲁棒性。
MFCC特征提取的步骤:
- 预加重(Pre-emphasis):对原始语音信号进行高频成分增强,通过一个预加重滤波器使得信号增强高频部分。
- 分帧(Framing):将连续的语音信号分成一个个小的窗口,每个窗口称为一帧。典型的帧长是20-40毫秒,帧移(相邻帧之间的间隔)是10-20毫秒。这一步可以帮助保证信号的短时平稳性。
- 加窗(Windowing):对每一帧应用一个加窗函数以减少由帧之间间隙引起的频谱泄漏。
- 快速傅里叶变换(FFT):对每一帧加窗后的信号进行快速傅里叶变换,转换到频域以得到频谱图。
- 功率谱(Power Spectrum):计算每帧的功率谱,功率谱表示的是信号在不同频率上的强度。
- Mel滤波器组(Mel Filterbank):通过模拟人耳听觉感知,将频域转换到Mel尺度上。Mel尺度是一种对数尺度,可以更好地模拟人耳对频率的感知。Mel滤波器组通常由三角形滤波器组成,覆盖到频谱的整个范围,并且间隔随频率增加而变宽。
- 对数能量(Logarithm of Energy):对通过Mel滤波器组滤波后的功率谱进行对数变换。这一步模拟了人耳的听觉系统对能量变化的感知。
- 离散余弦变换(DCT):对上一步的对数Mel频谱图进行离散余弦变换,把信号从频域转到倒谱域。DCT的目的是去除相关性,得到一组更简洁的特征。MFCC通常取DCT变换结果的前几个系数(例如前13个系数),这些系数构成最终的MFCC特征。
需要说明的是,FB特征(Filter Bank Features)也是一种使用较多的特征,其滤波器组特征直接来自Mel滤波器组的输出,语音信号经过分帧、加窗和FFT之后,信号通过一组Mel尺度上的滤波器,得到滤波后的功率谱或能量谱。这些滤波器组特征一般描述的是语音信号在不同频段上的能量分布。
FB特征可以看做MFCC特征前几步的结果,两种特征注重点不一样:
- MFCC特征能够提供更详细、精细的语音特征,适用于高精度的语音处理任务,但计算复杂度较高。
- FB特征直接反映了语音信号在各个频段上的能量分布,计算较为简单,适合快速处理和实时应用。
3.3.2 嵌入特征(Embedding)
当前端到端语音识别系统中,深度学习模型(如CNN、RNN、LSTM、Transformer等)通常通过多层神经网络结构自动将语音信号编码成一组表征向量,再进行下游语音识别模型训练,这种端到端的方案具有以下几种特点:
- 特征提取能力强:多层神经网络可以捕捉到语音信号的复杂特征。这些网络能够学习到比传统手工特征更丰富和更具辨识度的特征。
- 鲁棒性更强:深度神经网络能够对噪声、失真等不利条件有更好的耐受性。编码后的表征向量能够更好地过滤掉噪声信息,同时保留有用的语音特征,从而提高系统的鲁棒性。
- 通用性:编码器–解码器结构中的编码器可以通过迁移学习用于其它相关的语音任务,例如说话人识别、情感识别等。训练好的编码器可以在不同任务中共享,提高模型的通用性。
- 上下文信息:RNN和Transformers等模型擅长捕捉序列数据中的时间依赖关系。这意味着生成的表征向量不仅包含帧级别的特征,还涵盖了较长时间范围内的上下文信息,有助于更准确地语音识别。
- 自动学习最佳特征:传统的手工特征提取依赖于专家的知识和技能,而深度学习方法则能够自动从数据中学习到最优的特征。这减少了对领域知识的依赖,并且有可能挖掘到以前未被注意到的特征模式。
- 端到端训练:省去了中间特征提取步骤,这样不仅简化了流程,还能够通过联合优化损失函数来提高模型整体的性能。
- 适应性:表征向量可以对不同的输入情境适应得更好,比如不同的人、不同的环境、不同的语音质量等等。深度神经网络能够灵活地对各种变化进行建模。
3.4 标准化与后处理
不管是语音识别还是语音合成,训练数据都需要音频和对应的文本,不仅需要对音频进行处理,同时还需要对文本进行标准化处理。文本的标准化处理主要包含对标点符号、数字、日期、单位、时间、集外词等的处理。
标准化:针对训练文本数据,标点符号处理,哪些符号需要保留,哪些符号不要等,数字、日期、单位、时间等都是转换为发音单词;
后处理:主要是针对识别结果,添加标点符号,增加或者删除语气词,数字、日期、单位等单词转换为数字形式,当然还可以有更多的功能设计。