一种采用机器学习的氦语音识别方法*

2022-09-28 07:08李冬梅郭莉莉张士兵
电讯技术 2022年9期
关键词:声学共振频谱

李冬梅,李 明,郭莉莉,张士兵

(南通大学 信息科学技术学院,江苏 南通226019)

0 引 言

随着海洋经济时代的到来,深海饱和潜水在海洋开发、航海作业、海上救援等领域的应用日益增加,其对我国深海海洋资源开发和海洋国防建设具有重大意义[1]。国际上的深海饱和潜水技术一直处于垄断地位,氦语音识别技术是其主要技术之一,我国急需研究具有自主知识产权的氦语音识别技术。

在深海潜水环境下,由于高压氦氧混合气体的影响,潜水员的语音信号严重扰曲,其语音变成奇怪的“鸭子叫”。同时,背景噪声、工作压力及情绪变化等因素也会影响氦语音的识别。氦语音识别问题成为阻碍深海饱和潜水事业向深海进一步发展的主要挑战之一。

人耳的听觉能力是有限的,在深海潜水环境下,人们不得不使用语音处理技术增加氦语音的可懂度。传统的用于识别氦语音的处理技术在一定程度上提高了氦语音可懂度,但其校正后的语音质量还达不到安全有效的语音通话标准。

近几年,机器学习技术应用广泛,发展迅速[2-3],在语音识别方面也大显身手,有望解决氦语音识别问题。Alex等人[4]将深度学习的思想与卷积神经网络(Convolutional Neural Network,CNN)相结合,提出了深度卷积神经网络(Deep Convolutional Neural Network,DCNN)。DCNN最初应用于图像处理方面,之后许多研究者将其进一步改进和优化并应用于语音信号处理中的特征学习。基于深层模型的良好性能,本文旨在利用DCNN开发一个有效的基于机器学习的氦语音识别方法,采用复杂度相对较低的DCNN网络模型来验证DCNN应用于氦语音识别的可实现性。采用机器学习方法的氦语音识别的性能非常依赖于从氦语音信号中提取的特征和氦语音数据库,但氦语音的识别具有挑战性,目前鲜见公开的氦语音数据库,提取氦语音特征比较困难。

本文主要贡献:自建氦语音孤立词和连续氦语音数据库,为氦语音识别提供数据支持;将DCNN网络结构应用于氦语音识别,解决了传统氦语音识别方法捕捉频谱细节差的问题,增强了学习氦语音特征的能力。

1 氦语音特征分析

氦语音特征主要表现在共振峰频率非线性增加(低频处产生非线性翘曲)、共振峰带宽增加(高频处带宽增加存在极限而低频处带宽增加要比高频处大得多)、共振峰幅度衰减、基音周期变动,可见,共振峰特征(共振峰频率、共振峰带宽和共振峰幅度)和基音周期是影响氦语音可懂度主要因素。目前,广泛使用的声学特征包括共振峰特征和基音周期,这为氦语音的重要特征提取奠定了坚实基础。

声学特征主要包括韵律特征、音质特征和频谱特征。韵律特征主要表达语音的重音和语调模式,其中包括基音周期;音质特征主要指能量集中的区域,包括共振峰频率、幅度和带宽;频谱特征是从语音的短时功率谱计算得到的,例如线性预测系数(Linear Prediction Coefficient,LPC)、线性预测倒谱系数(Linear Prediction Cepstral Coefficient,LPCC)和梅尔倒谱系数(Mel-frequency Cepstral Coefficient,MFCC),本文提取的频谱特征是FBank(Filter Bank)特征。

接下来举例说明氦语音相对于正常语音在声学特征上的重要变化。图1给出了孤立词“振幅调制”的正常语音和氦语音的频谱图。氦语音相对于正常语音前四个共振峰频率的位移比分别为1.81、1.73、1.16、1.32,且是非线性移动的;共振峰带宽有所增加;高频分量在6 000 Hz以上有严重衰减。

(a)正常语音频谱图

图2给出了连续语音“来,大家评评理,看这事怪不怪我”的正常语音和氦语音的语谱图。语谱图中的横杠代表共振峰,竖条代表基音,条纹之间的距离表示基音周期。从图2中可以看出,氦语音共振峰变化趋势同图1所示,氦语音相对于正常语音的基音频率有大约1.5倍频程的增长,即基音周期有明显变化。

(a)正常语音语谱图

2 氦语音识别方法

2.1 氦语音识别模型

氦语音识别模型主要包括预处理、特征提取、声学模型、语言模型,如图3所示。其中,预处理包括预加重、分帧加窗、端点检测,提取的特征包括共振峰特征、基音周期和FBank特征。

图3 基于卷积神经网络的氦语音识别模型结构示意图

声学模型是在连接时序分类(Connectionist Temporal Classification,CTC)前使用DCNN实现端到端建模,将语音特征输入到声学模型中进行处理,实现语音到拼音的建模。首先要确定DCNN的层数,确保得到网络结构性能最佳。在确定DCNN层数的测试过程中发现,随着DCNN层数的增加,模型的复杂度显著增加,需要平衡层数和模型复杂度。经过多轮试验,最终确定DCNN层数为29层,主要包括二维卷积层、批量标准化层、最大池化层和dropout层。具体为10个二维卷积层级联,每个卷积层之后加入一个批量标准化层,每两个卷积层后加入一个最大池化层,最后加入两个dropout层。在DCNN训练过程中,总参数为1 708 802个,可训练参数个数为1 706 882。

CTC[5]能解决输入和输出的映射问题,对于给定输入序列,得到所有可能的输出分布,最后得到输出概率。假设x为输入帧序列中的某一帧,t为时间,l为输入与输出之间的某条映射路径,则输出概率为路径上每一帧的转移概率相乘,表达式为

(1)

CTC属于判别模型,其损失函数可得到最大概率的输出文本,将输入帧x映射到文本y*上:

CTC(x)=-lgp(y*|x) 。

(2)

语言模型,Transformer[6]采用编码器和解码器结构,主要模块是多头注意力机制和前馈神经网络,用于实现拼音到汉字的转换。

DCNN在时频域上具有平移不变性,使得模型抗噪声性能有所提升,同时DCNN可实现并行化运算,为语音识别加速;CTC专注于序列分类;Transformer可对文本位置进行学习,同时实现并行化训练。

2.2 氦语音特征提取

2.2.1 氦语音共振峰提取

对于高压氦氧环境下的氦语音共振峰的基础研究需要建立电传输模拟模型,将人类声道近似为一阶有损声管。

实验结果表明,环境压力和呼吸气体成分的变化对源频谱的总形状没有影响[7]。语音谱是源频谱和传输谱的乘积。如果源频谱的形状没有任何变化,那么在高频范围内的氦语音的语音谱幅度变得非常低,主要原因是传输谱随着声速的变化而扩展,语音频谱下降了大约6 dB/oct。因此,高频强调对于氦语音解扰器是不可缺少的。在提取共振峰参数之前,氦语音信号首先通过预加重抵消高频幅度跌落,使各共振峰幅度接近。公式(3)表示预加重:

s′(n)=s(n)-μs(n-1)。

(3)

式中:μ为预加重系数,本文取μ=0.94。

接下来提取氦语音共振峰特征,预加重后的氦语音信号需要通过预测误差滤波器,该滤波器表示为

(4)

(5)

得到

(6)

预测误差滤波器的阶数p需预先设定。复共轭对的数量最多为p/2,这使得非共振峰极点的带宽远大于共振峰的带宽,有利于剔除非共振峰极点。

2.2.2 氦语音基音周期提取

为了提高基音周期提取准确率,在提取基音周期之前要进行端点检测。本文采用对数频率距离检测端点。首先对语音信号进行快速傅里叶变换(Fast Fourier Transform,FFT):

(7)

对Xi(k)取对数:

(8)

两个信号x1(n)和x2(n)之间的对数频谱距离为

(9)

式中:N2=N/2+1,为正频率部分。预先计算出噪声的频谱,用待测信号与平均噪声进行距离运算,从而判断是否存在噪声。

接下来采用线性预测法提取基音周期。线性预测误差表示为

(10)

式中:ai代表预测系数。线性预测误差可以去除共振峰的影响,通过倒谱运算能把声道响应降到最小,进而提取基音周期。

2.2.3 氦语音接收FBank特征提取

接下来讨论提取的频谱特征。人耳在接收声音信号时呈现非线性状态,Mel刻度可以模拟人耳接收声音的规律。现有大多数语音识别技术都使用MFCC作为提取的特征,但MFCC特征是通过对对数能量进行余弦变换来计算的,离散余弦变换(Discrete Cosine Transform,DCT)改变了谱系数的原始局部性。因此,我们去除DCT计算,应用Mel滤波器组提取的FBank(Filter Bank)特征[8]作为最后一项氦语音特征。

Mel滤波器组是一系列三角形滤波器,即在中心频率点响应值为1,两边衰减到0。Mel滤波器组表示为

(11)

在能量谱上应用Mel滤波器组得到FBank特征,公式为

(12)

2.3 氦语音识别方法的主要步骤

根据氦语音识别模型和氦语音特征提取,得到氦语音识别方法的步骤如下:

Step1 建立氦语音数据库——分别建立氦语音孤立词和连续氦语音数据库。

Step2 数据预处理并提取语音特征——提取特征包括:共振峰特征、基音周期、FBank特征。

Step3 训练声学模型——将提取的语音特征输入到DCNN实现特征降维,将降维的特征输入到CTC得到概率最大的拼音的输出,训练结束的同时得到声学模型的loss收敛曲线。

Step4 训练语言模型——将声学模型输出的拼音输入到应用多头注意力机制的Transformer语言模型得到汉字输出。

Step5 验证氦语音识别模型——将验证集数据输入到氦语音识别模型得到模型的字错率(Word Error Rate,WER)。

Step6 测试氦语音识别模型——将测试集数据输入到氦语音识别模型得到模型的WER。

3 识别结果与分析

3.1 数据库与参数设置

考虑到目前未见公开的氦语音数据库,本文采用自制氦语音数据库。数据库由志愿者屏气吸入纯度为99.999%的氦气后使用手机录制而成。数据库是来自复杂场景下的真实语音,其中包含大量未知噪声。数据格式为WAV,采样率为16 kHz,单声道。氦语音孤立词数据库,总计2 106条音频,总时长69 min,其中包含10个专业词汇,由2名男性1名女性共3位志愿者录制。连续氦语音数据库文本是从“学习强国”、《故事会》《标准普通话考试题库》等网站上搜集得到,总计11 890条音频,总时长约25 h,由14名男性12名女性共26位志愿者录制。训练集、测试集和验证集的数据量比值为7∶1∶1。

语音数据帧长设置为32 ms,帧移为16 ms,快速傅里叶变换的点数设置为512。学习率与迭代次数根据多次调节择优确定,声学模型性能最佳时对应的学习率为0.000 8,语言模型性能最佳时对应的学习率为0.000 3。

接下来介绍提取不同特征参数的氦语音识别模型的具体流程。

由于各条语音的时长是不固定的,上述提到的共振峰特征、基音周期和FBank特征具有不同的维度,这种不固定的维度无法直接用于氦语音识别。因此,我们采用平均池策略将提取的特征转换为具有固定维度的特征表示,这一过程称为特征池化[9]。

FB:首先将200维FBank特征输入到DCNN中实现FBank特征降维,接着将降维的FBank特征、语音信号长度、语音信号标签及标签长度输入到CTC,通过CTC得到概率最大的有效映射路径,由DCNN和CTC组成的声学模型的输出为拼音。最后将拼音输入到Transformer语言模型,语言模型的输出为汉字。

氦语音孤立词识别模型和连续氦语音识别模型的具体参数设置见表1。

表1 模型参数设置

FM:除将FBank特征输入声学模型外,仅增加共振峰特征参数200维。氦语音孤立词识别模型和连续氦语音识别模型的参数设置同FB。

FFP:除将FBank特征输入声学模型外,增加共振峰特征参数200维及基音周期参数200维。氦语音孤立词识别模型和连续氦语音识别模型的参数设置同FB。

3.2 识别性能分析

针对3.1节提出的提取不同特征参数的氦语音识别模型(FB、FM、FFP),采用识别模型的输出汉字的WER来衡量不同模型的识别性能。计算WER首先要将识别出的字与标签中的字进行比较,之后统计出需要进行修改(插入、删除和替换)的汉字总数,最后将需要修改的汉字总数除以总字数得到模型识别结果的WER,即

(13)

表2和表3分别给出了氦语音孤立词识别模型和连续氦语音识别模型的WER。从整体上看,FB识别模型在三种氦语音识别模型中的WER最高,FFP识别模型的WER最低,FM识别模型的WER介于中间。

表2 氦语音孤立词识别模型的WER

表3 连续氦语音识别模型的WER

可见,结合韵律特征、音质特征和频谱特征共三种特征有更好的性能,比单独使用频谱特征或结合音质特征和频谱特征共两种特征表现出更多优势。

3.3 收敛性分析

除了分析氦语音识别模型的WER以外,还需分析三种氦语音识别模型中声学模型的loss值的收敛性。语言模型在将拼音转换为文字的过程中稳定性较强,随着训练轮数的增加loss值变化不明显,并且与提取的特征和声学模型的结构关系不大,所以本文未对语言模型的loss值收敛性进行分析。声学模型的loss值越低,氦语音识别模型的性能越好。使用Tensorboard记录模型在训练集数据上训练时的loss值的变化趋势,并绘制出loss值的收敛性曲线。根据上述的参数设置,三种氦语音识别模型的声学模型的loss收敛性曲线如图4(a)~(f)所示,从中可得到以下结论:

图4 氦语音识别模型中声学模型的loss值收敛曲线

(1) 从整体上看,随着迭代次数的增加,三种氦语音识别模型的声学模型的loss值均呈下降趋势,即模型的识别性能逐渐上升。FB识别模型的最终loss值最高,FFP识别模型的loss值最低,FM识别模型的loss值介于中间。

(2) 三种氦语音识别模型的声学模型均能够在有限的迭代次数内达到收敛状态,孤立词识别模型相比连续语音识别模型的loss值收敛更快且loss值更低。其中FB孤立词识别模型在第32次迭代时,loss值为0.42,FM和FFP孤立词识别模型在32次迭代后loss值分别为0.05和0.01。连续语音识别模型的训练轮数较多,选取loss值达到收敛状态的最后轮数进行显示。其中FB连续语音识别模型在300轮迭代后的loss值为47.52,FM和FFP连续语音识别模型在迭代300轮后loss值分别降为36.17和28.04。

3.4 讨论

为进一步提高氦语音孤立词识别模型的性能,受文献[10-11]的启发,利用模型融合的方法综合不同模型之间的优势,提高整体模型的识别性能。本节仅做孤立词模型融合。为了提高FB和FM孤立词识别模型的性能,将其分别与FFP孤立词识别模型进行融合,融合模型如下:

FB+FFP:将训练32轮的FB孤立词识别模型与5轮FFP孤立词识别模型融合。

FM+FFP:将训练32轮的FM孤立词识别模型与5轮FFP孤立词识别模型融合。

融合后的氦语音孤立词识别模型的WER见表4,loss值的收敛性曲线见图4(g)~(h)。

表4 氦语音孤立词融合模型的WER

FB+FFP孤立词融合模型相比于FB孤立词识别模型对氦语音孤立词测试集的WER下降了1.31%,最终的WER降为8.13%,FM+FFP孤立词融合模型相比于FM孤立词识别模型对氦语音孤立词测试集的WER下降了0.59%,最终的WER降为2.57%。两个融合模型对氦语音孤立词验证集的WER均为0。孤立词识别模型的loss值已经降到极限,融合后的识别模型的loss值均有小幅度改变。可见,融合模型的氦语音识别性能有所提升。

4 结束语

本文提出了一种采用机器学习的氦语音识别方法,分别对氦语音孤立词和连续氦语音进行识别,氦语音孤立词识别模型的最低WER为1.53%,声学模型最低的loss值为0.01;连续氦语音识别模型的最低WER为36.89%,声学模型最低的loss值为28.04。为进一步提升氦语音孤立词识别模型的识别性能,将氦语音孤立词模型进行融合,孤立词融合模型对测试集的WER最多下降了1.31%。本文提取的语音特征有效涵盖了氦语音的共振峰特征、基音周期特征和FBank特征,同时将DCNN网络结构用于构建声学模型,解决了传统氦语音识别方法捕捉频谱细节差的问题,增强了学习氦语音特征的能力。但由于仅使用DCNN实现端到端建模,识别性能有待于进一步提升。接下来,除完善氦语音数据库外,还可以将如长短时记忆或门控循环单元与DCNN结合,增强识别模型的长时记忆能力;同时改进CTC的输入与输出之间的映射方式,以使模型适应更多识别场景;或者在Transformer中实现2D-attention结构,对时频域两个维度的位置相关性进行建模。

猜你喜欢
声学共振频谱
电机在60Hz运行过程中的故障频谱分析
基于振动声学方法的高压开关机械缺陷诊断技术
钟磬共振 大写开怀——张宜的人物画
是电声学的奇迹,也是耀眼的艺术品 Vivid Audio举办新品发布会
共振的威力
选硬人打硬仗——紫阳县党建与脱贫同频共振
FCC启动 首次高频段5G频谱拍卖
凝心聚力 互促共进 实现机关党建与文明单位创建合拍共振
动态频谱共享简述
2014年中考声学预测题