论文笔记:语音情感识别(一)语音知识概览
语音信号(声音是什么)
声音是由物体振动产生的声波,是通过介质(空气或固体、液体)传播并能被人或动物听觉器官所感知的波动现象,最初发出振动的物体叫声源。声音(语音消息)的基本模拟形式是一种称为语音信号的声学波。语音信号可以通过麦克风转化成电信号,转换成语音波形图,如下图为消息"should we chase"的波形图。横坐标表示时间,纵坐标表示振幅。文本"should we chase"按照发音可以表示成音素的形式[SH UH D - W IY - CH EY S],声波图中的每一段表示一个音素,在ARBAbet音素集中包含近64 = 2^6个符号。
声音作为波的一种,频率(声源在一秒内振动的次数)和振幅是描述波的重要属性,频率的大小与我们通常所说的音高对应,而振幅影响声音的大小。声音可以被分解为不同频率不同强度正弦波的叠加,正弦波是频率成分最为单一的一种信号,任何复杂信号都可以看成由许许多多频率不同、大小不等的正弦波复合而成。这种变换(或分解)的过程,称为傅立叶变换,通过这种分解我们可以把时域图转为频域图。
正弦信号表达式为\(y = A \sin(\omega x + \varphi)\)。其中A表示振幅。
\(\omega/2\pi\)表示频率。
对于(空气中的)声振动而言,振幅是声压与静止压强之差的最大值。其中声压是声波在空气中传播时形成压缩和稀疏交替变化的压力增值。麦克风录制声音的原理就是将空气中的压力变动波转化成电信号的变动。
而我们平常说的声音强度(响亮程度)就是由振幅决定的,声音强度的单位是分贝(dB),计算公式如下,用实测声压和参考声压之比的常用对数(常用对数lg以10为底,自然对数ln以e为底)的20倍来表示。下式中分母是参考值的声压,通常为20微帕,人类能听到的最小声压。
分贝表示功率量之比时,等于功率强度之比的常用对数的10倍。
分贝表示场量之比时,等于场强幅值之比的常用对数的20倍。
### 语音链(声音是怎么发出的) 从语音信号的产生到感知的过程称为语音链,如下图所示。 下面是语音信号产生的四个步骤。
1. 文本:消息以某种形式出现在说话者的大脑中,消息携带的信息可认为有着不同的表示形式,例如最初可能以英语文本的形式表示。假设书面语有32个符号,也就是2^5,用5个bit表示一个符号。正常的平均说话速率为15个符号每秒。上图例子中有15个字母“should we chase”,持续了0.6秒,信息流的速率为15x5/0.6 = 125 bps。
2. 音素:为了"说出"这条消息,说话者隐式地将文本转换成对应口语形式的声音序列的符号表示,即文本符号转成音素符号,音素符号用来描述口语形式消息的基本声音及声音发生的方式(即语速和语调)。ARBAbet音素集中包含近64 = 2^6个符号,用6个bit表示一个音素,上图例子中有8个音素,持续了0.6秒,信息流的速率为8x6/0.6 = 80 bps,考虑描述信号韵律特征的额外信息(比如段长,音高,响度),文本信息编码成语音信号后,总信息速率需要再加上100bps。
3. 发音:神经肌肉系统以一种与产生口语形式消息及其语调相一致的方式,移动舌头,唇,牙齿,颌,软腭,使这些声道发声器官按规定的方式移动,进而发出期望的声音。
4. 刺激共振:声道系统产生物理生源和恰当的时变声道形状,产生上图所示的声学波形。
前两个阶段的信息表示是离散的,用一些简单假设就可以估计信息流的速率。
但是后两个阶段信息是连续的,以关节运动的形式发出,想要度量这些连续信息,需要进行恰当的采样和量化获得等效的数字信号,才能估计出数据的速率。事实上,因为连续的模拟信号容易收到噪声的影响,抗噪能力弱,通常会转为离散的数字信号。
在第三阶段,进行采样和量化后得到的数据率约为2000bps。
在最后一个阶段,数字语音波形的数据率可以从64kbps变化到700kbps。该数据是通过测量“表示语音信号时为达到想要的感知保真度”所需要的采样率和量化计算得到的。
比如,“电话质量”的语音处理需要保证宽带为0~4kHz,这意味着采样率为8000个样本每秒(根据香农采样定理,为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2倍),每个样本可以量化成8比特,从而得到数据率64000bps。这种表示方式很容易听懂,但对于大多数倾听者来说,语音听起来与说话者发出的原始语音会有不同。
另一方面,语音波形可以表示成“CD质量”,采用44100个样本每秒的采样率,每个样本16比特,总数据率为705600bps,此时复原的声学波听起来和原始信号几乎没有区别。
现在在音乐app上下载歌曲的时一般有四种音乐品质选择,标准(128kbps),较高(192kbps),极高(320kbps),无损品质。
将消息从文本表示转换成采样的语音波形时,数据率会增大10000倍。这些额外信息的一部分能够代表说话者的一些特征比如情绪状态,说话习惯等,但主要是由简单采样和对模拟信号进行精细量化的低效性导致的。因此,处于语音信号固有的低信息速率考虑,很多数字语音处理的重点是用更低的数据率对语音进行数字表示(通常希望数据率越低越好,同时保证重现语音信号的感知质量满足需要的水平)。
### 语音信号的ADC,即Analog-Digital Converter,“模-数”变换(声音是怎么保存的) **0. 预滤波(反混叠滤波)**:语音信号在采样之前要进行预滤波处理。目的有两个,一是抑制输入信号各频率分量中频率超过fs/2的所有分量(fs为采样频率),以防止混叠干扰;二是抑制50Hz的电源工频干扰。
1. 采样:原始的语音信号是连续的模拟信号,需要对语音进行采样,转化为时间轴上离散的数据。
采样后,模拟信号被等间隔地取样,这时信号在时间上就不再连续了,但在幅度上还是连续的。经过采样处理之后,模拟信号变成了离散时间信号。
采样频率是指一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。
在当今的主流采集卡上,采样频率一般共分为22.05KHz、44.1KHz、48KHz三个等级,22.05KHz只能达到FM广播的声音品质,44.1KHz则是理论上的CD音质界限(人耳一般可以感觉到20-20K Hz的声音,根据香农采样定理,采样频率应该不小于最高频率的两倍,所以40KHz是能够将人耳听见的声音进行很好的还原的一个数值,于是CD公司把采样率定为44.1KHz),48KHz则更加精确一些。
对于高于48KHz的采样频率人耳已无法辨别出来了,所以在电脑上没有多少使用价值。
2. 量化:进行分级量化,将信号采样的幅度划分成几个区段,把落在某区段的采样到的样品值归成一类,并给出相应的量化值。根据量化间隔是否均匀划分,又分为均匀量化和非均匀量化。
均匀量化的特点为“大信号的信噪比大,小信号的信噪比小”。缺点为“为了保证信噪比要求,编码位数必须足够大,但是这样导致了信道利用率低,如果减少编码位数又不能满足信噪比的要求”(根据信噪比公式,编码位数越大,信噪比越大,通信质量越好)。
通常对语音信号采用非均匀量化,基本方法是对大信号使用大的量化间隔,对小信号使用小的量化间隔。由于小信号时量化间隔变小,其相应的量化噪声功率也减小(根据量化噪声功率公式),从而使小信号时的量化信噪比增大,改善了小信号时的信噪比。
量化后,信号不仅在时间上不再连续,在幅度上也不连续了。经过量化处理之后,离散时间信号变成了数字信号。
3. 编码:在量化之后信号已经变成了数字信号,需要将数字信号编码成二进制。“CD质量”的语音采用44100个样本每秒的采样率,每个样本16比特,这个16比特就是编码的位数。
采样,量化,编码的过程称为A/D转换,如下图所示。反过程为D/A转换,因为A/D之前进行了预滤波,D/A转换后面还需要加一个平滑滤波器。A/D转换,D/A转换,滤波这些功能都可以用一块芯片来完成,在市面上能买到各种这样的芯片。
### 语音信号的预处理(声音要做什么预处理) 语音信号的预处理一般包括预加重,分帧,加窗,端点检测。
1. 预加重:求语音信号频谱(频谱是指时域信号在频域下的表示方式,关于频域和时域的理解如下图所示,图源见参考资料[4]),频率越高相应的成分越小,高频部分的频谱比低频部分的难求,为此要在预处理中进行预加重(Pre-emphasis)处理。预加重的目的是提高高频部分,使信号的频谱变得平坦,以便于频谱分析或者声道参数分析。预加重可在语音信号数字化时在反混叠滤波器之前进行,但一般是在语音信号数字化之后。
2. 短时分析:语音信号从整体来看是随时间变化的,是一个非平稳过程,不能用处理平稳信号的数字信号处理技术对其进行分析处理。但是,由于不同的语音是由人的口腔肌肉运动构成声道某种形状而产生的响应,这种运动对于语音频率来说是非常缓慢的,所以从另一方面看,虽然语音信号具有时变特性,但是在一个短时间范围内(一般认为在10-30ms)其特性基本保持相对稳定,即语音具有短时平稳性。所以任何语音信号的分析和处理必须建立在“短时”的基础上,即进行“短时分析”。
3. 分帧:为了进行短时分析,将语音信号分为一段一段,其中每一段称为一帧,一般取10-30ms,为了使帧与帧之间平滑过渡,保持连续性,使用交叠分段的方法,可以想成一个指针p从头开始,截取一段头为p,长度为帧长的片段,然后指针p移动,移动的步长就称为帧移,每移动一次都截取一段,这样就得到很多帧。
4. 加窗:加窗就是用一定的窗函数\(w(n)\)来乘\(s(n)\),从而形成加窗语音信号\(s_w(n) = s(n) * w(n)\),常用的窗函数是矩形窗和汉明窗,用矩形窗其实就是不加窗,窗函数中有个N,指的是窗口长度(样本点个数),对应一帧,通常在8kHz取样频率下,N折中选择为80-160(即10-20ms持续时间)。
5. 端点检测:从一段语音信号中准确地找出语音信号的起始点和结束点,它的目的是为了使有效的语音信号和无用的噪声信号得以分离。对于一些公共的语音数据集可以不做这步操作,因为这些语音的内容就是有效的语音信号(可以认为研究人员已经对数据做过端点检测)。
### 语音信号的特征(声音的特征) 特征的选取是语音处理的关键问题,特征的好坏直接影响到语音处理(比如语音识别)的精度。然而在语音领域中,没有一个所谓的标准特征集,不同的语音系统选取的特征组合不尽相同。
语音的特征一般是由信号处理专家定义的,比较流行的特征是MFCC(梅尔频率倒谱系数)。
最近看的一些论文大都用CNN从声谱图中抽取特征。声谱图就是对原始的语音信号(raw waveform)分帧加窗,对每一帧做FFT后获得的图。声谱图的横坐标是时间,纵坐标是频率,坐标点值为振幅(或功率),振幅值的大小是通过颜色来表示。
在论文笔记:语音情感识别(四)语音特征之声谱图,log梅尔谱,MFCC,deltas中我有介绍声谱图(又分为线性的和梅尔的)和MFCC的计算过程。
其它比较流行的特征如共振峰频率,基因周期,过零率和能量等等。
2013 InterSpeech其中一个挑战赛中用的特征集ComParE features set,有6373维的特征。
有另一个比较精简的特征集GeMAPS(Geneva Minimalistic Acoustic Parameter Set)包含62个特征。加上扩展的有88个特征,称为eGeMAPS(extended GeMAPS)。
最近看的论文中常常会出现有两个词,LLDs(low level descriptors)和HSFs(high level statistics functions),其中LLDs指的是人工设计的一些低水平特征,LLDs可以作为帧特征,而HSFs指的是在LLDs的基础上做一些统计而得到的特征,比如均值,最大值等等,HSFs可以作为utterance(一段语音,比帧高一级的语音单位,通常指一句话,一个语音样本)特征。
在论文笔记:语音情感识别(五)语音特征集之eGeMAPS,ComParE,09IS,BoAW中我有介绍LLDs,HSFs,eGeMAPS和ComparE特征集。
语音情感数据库介绍
计算机对从传感器采集来的信号进行分析和处理,得出对方正处在的情感状态,这种行为叫作情感识别。
目前对于情感识别有两种方式,一种是检测生理信号如呼吸,心律和体温等,另一种是检测情感行为如面部表情识别,语音情感识别和姿态识别。
语音情感数据集是研究语音情感识别的重要基础,按照情感描述类型可将数据集分为离散情感数据库和维度情感数据库,前者以离散的语言标签(如高兴,悲伤等)作为情感标注,后者以连续的实数坐标值表示情感。
下面介绍一些离散语音情感数据集。
1. Belfast英语情感数据库:40位录音者(20男20女,18-69岁),对五个段落(每个段落7-8个句子)进行演讲录制,演讲者按照五种情感倾向进行演讲:生气(anger),悲伤(sadness),高兴(happiniess),害怕(fear),中性(neutral)。
2. 柏林Emo-DB情感数据库:德国柏林工业大学录制,10位演员(5男5女),对10个德语语音进行表演,包含了七种情感:生气(anger),悲伤(sadness),高兴(happiniess),害怕(fear),中性(neutral),厌恶(disgust),无聊(boredom)。共包含800句语料(10 位演员 x10 句话 x7 种情感+100 条某些语句的二次版本),后经过筛选得到500多条,采样率为 48kHz (后压缩至 16kHz),16bit 量化。语料文本的选取遵从语义中性、无情感倾向的原则,且为日常口语化风格,无过多的书面语修饰。语音的录制在专业录音室中完成,要求演员在表演某个特定情感片段前通过回忆自身真实经历或体验进行情绪的酝酿,来增强情绪的真实感。
3. FAU AIBO儿童德语情感数据库:2009年在Interspeech会议上举办Emotion Challenge评比中指定的语音情感数据库。通过儿童与索尼公司的AIBO机器狗进行自然交互,从而进行情感数据的采集。说话人由51名儿童组成,年龄段为10-13岁,其中30个为女性。语料库包含9.2小时的语音,48401个单词。采样频率为48kHz(后压缩至 16kHz),16比特量化。该数据库中情感数据的自然度高,数据量足够大,是较为流行的一个语音情感数据库。
4. CASIA汉语情感数据库:中科院自动化所录制,两男两女录制500句不同的文本,通过演讲者不同的感情演讲得出,最后的语音又人工筛选,得到了大约9600条语句。分为六类情感。
5. ACCorpus系列汉语情感数据库:清华大学和中科院心理研究所合作录制,相对于CASIA录制工作者更多,代表性更强。包含如下 5 个相关子库:ACCorpus_MM 多模态、多通道的情感数据库;ACCorpus_SR 情感语音识别数据库;ACCorpus_SA 汉语普通话情感分析数据库;ACCorpus_FV 人脸表情视频数据库;ACCorpus_FI 人脸表情图像数据库。以 ACCorpus_SR 为例,该子库是由 50 位录音人(25 男25女)对 5类情感(中性、高兴、生气、恐惧和悲伤)各自表演得到,16kHz 采样,16bit 量化。
6. IEMOCAP: 南加利福尼亚大学录制的,10个演员,1男1女演绎一个session,共5个session。录制了将近12小时的数据,有视频,语音,人脸的变动捕捉和文本。包括即兴自发的和照着稿子念的。每个utterance至少三个人评估。包括9种情感(anger,happiness,excitement,sadness,frustration,fear,surprise,other和neural)的离散标签,以及三个维度的维度标签(valence, activation and dominance)。
7. 其它:除此之外,还有一些日语,丹麦语等情感数据库。
语音情感识别算法
1. 常用的机器学习分类器:模式识别领域的诸多算法(传统)都曾用于语音情感识别的研究,比如GMM(高斯混合模型),SVM,KNN,HMM(隐马尔可夫模型)。用LLDs(low level descriptors)和HSFs(high level statistics functions)这些手工设计特征喂进去训练。
2. 声谱图+CRNN:最近很多人用声谱图加上CNN,LSTM这些深度学习模型来做。还有手工特征加声谱图一起作为特征丢进深度学习模型。也有人用DBN但是相对少很多。具体的一些模型我在另一篇笔记论文笔记:语音情感识别(二)声谱图+CRNN中有介绍。
3. 手工特征+CRNN:也有人用手工特征加CRNN做。具体的一些模型我在另一篇笔记论文笔记:语音情感识别(三)手工特征+CRNN中有介绍。
参考资料
[1] 数字语音处理理论与应用(Theory and Applications of Digital Speech Processing的中译书籍)
[2] Theory and Applications of Digital Speech Processing(电子书)
[3] 语音信号处理(赵力著,第三版)
[4] 知乎:傅里叶分析之掐死教程