1. 引言
语言交流是人类社交和表达的基本手段之一,而我国聋哑症的发病率约为2‰,每年总数可达5700万,听损伤的发病人数约为17万,并伴有言语障碍 [1] 。导致言语障碍的原因包括疾病、事故、嗓音滥用、医疗手术、老龄化、环境污染等,嗓音丧失的风险不断增加 [2] 。为语音识别技术开发新的方向和思路迫在眉睫,语言障碍人士日常生活最基本的交流需求亟待解决。
目前,市面上已有的产品如手语识别设备、唇语识别技术等解决方式,较难普及且经济成本较高、实际使用中限制较大 [3] [4] 。邱浩海和韦创军开发的“声活”APP可以通过云服务平台“云来”让聋哑人发出“声音”,将聋哑人的手语信息转化为语音信息 [4] 。美国两位大学生研发了一款名叫“SignAloud”的手语翻译手套,利用手语识别技术翻译手语并转化成语音 [5] 。此外,孙科等人开发的基于前置摄像头的唇读输入“Lip-Interact”技术可以捕捉用户的嘴部动作并识别命令 [6] 。
然而,使用基于视觉的方法时,获取与手、唇有关的信息比较困难,需要进行复杂的图像处理,而且对象的形状识别会受到背景条件和照明敏感度的影响,且用户总是需要摄像头,日常使用更加不便 [7] 。
因此,本课题设计了一款基于喉部振动的语音自动识别系统,结合高效的深度学习算法,达到转换出正常语音的目的,避免了受镜头和环境的影响,也帮助患者重新用清晰可懂的语音进行交流,满足了患者对于日常生活最基本的沟通需求,重新推动其未来的人际关系和社交发展。
此外,本系统设计具有以下主要创新点:
1) 从无法正常发声交流、声带受损的患者角度出发,借助现有的语音识别神经网络模型,以期为患者生成相应的、可懂度高的清晰语音。
2) 具有可迁移至移动设备开发app的潜力,并且便于开发成可穿戴式的辅助设备。
3) 收集到的喉部软骨信号比较纯净,信噪比高,不易受环境噪声影响。
2. 研究方法
2.1. 语音自动识别系统基本结构
喉部软骨振动信号是指在人的喉部产生的一种声音信号,当气流从肺部冲击喉部区域,随着声带振动,产生声音,与喉部其他结构如喉软骨等共振,形成喉部软骨振动信号 [8] 。
自动语音识别系统(Automatic Speech Recognition, ASR),被认为是将语音信号的声学微观结构连续地转化为其隐含的语音宏观结构 [9] 。
本系统结合现有的语音自动识别系统流程思路,对患者喉部软骨振动信号进行训练学习,达到转换出正常语音的目的,如图1为ASR系统应用于喉部软骨振动信号识别的结构流程图。

Figure 1. Structural flowchart of the automatic recognition system of throat vibration signals
图1. 喉振信号自动识别系统的结构流程图
2.2. 神经网络算法
经过半个多世纪的努力,自动语音识别系统在减少单词错误率(Word Error Rate, WER)方面得到了显著改善,增加了应用的适用性 [10] 。其中,循环神经网络RNN模型和长短期记忆网络LSTM等都是经实验发现效果比较好的模型。因此,本文针对将喉振信号转换为正常语音信号的目的,选择三种算法并进行对比研究,其中预处理方法、算法的选用以及模型的解码处理如下表1所示。

Table 1. Selection of three deep learning algorithmic solutions
表1. 三种深度学习算法方案的选用
2.3. 系统整体流程
本系统采用智能数字听诊器Mintti Smartho-D2进行喉部软骨振动数字信号的采集,并通过数字界面输出到计算机、手机或平板电脑等设备上进行分析和诊断。Mintti Smartho-D2是一种高度符合人体工程学的专用辅助设备,采集微弱人体信号可达到100倍放大 [11] 。
通过设计可训练学习患者喉振表述模式的深度学习算法程序,完成对喉振信号识别的样本训练、实时显示与语音播报。系统整体流程如图2所示。

Figure 2. The flow chart of the overall system scheme
图2. 系统整体方案流程图
3. 算法及理论基础
3.1. 预处理
在语音自动识别系统的开发中,预处理被认为是第一步,用于区分浊音或清音信号并创建特征向量。预处理对输入信号
进行调整或修改,使其更适合特征提取分析 [12] 。
对前期采集的喉部振动信号进行预处理工作如图3所示,包括:对信号去噪、端点检测、预加重、分帧以及加窗等 [13] 。

Figure 3. Flow chart of throat vibration signal pre-processing
图3. 喉振信号预处理流程图
1) 去除噪声:
环境噪声在数据预处理中起着重要的影响,对喉振信号进行去噪可以提高信号质量,增强自动识别系统的鲁棒性 [14] 。
2) 端点检测:
数字喉振信号由喉部软骨振动信号、无声段和各种背景噪声组成,端点检测旨在确定有效信号的开始和结束点。不仅可以减少系统处理时间从而实现系统的实时处理,还可以消除无声段的噪声干扰从而提高后续过程的识别性能 [15] 。
3) 预加重滤波器:
预加重旨在提高信噪比,增强信号的清晰度和可辨识度,补偿采样过程中的高频的必要衰减,进而使得参数分析以及频谱分析等过程更加方便 [13] 。
预加重滤波器是一个一阶差分滤波器,其输出信号
和输入信号
之间的关系可以用方程表示:
(1)
其中a为预加重系数。本系统设计的预加重系数取值为0.97。
4) 分帧加窗(倒谱提升窗口):
输入的喉部软骨振动信号每一帧都被处理并可视化为一个单一的特征向量,且都有一个锥形窗口用于消除喉振信号中的不连续因素。在为每帧数据计算出特征参数后,为这个系数分别乘以不同的权系数。实际上就是一个短的窗口,本设计选择汉明窗:
(2)
(3)
3.2. 卷积神经网络CNN
卷积神经网络(Convolutional Neural Network, CNN)是一种经典的深度学习算法,输入数据在被送入深度神经网络之前,要经过卷积层、非线性层、池化层和全连接层。在二维特征值被扁平化后,通过对特征图逐行取值转换成一维数列,构建出整个模型的输出结果,具体步骤如下:
1) 输入喉部软骨振动信号
,其中t表示时间。使用短时傅里叶变换(Short-Time Fourier Transform, STFT)将信号
分解为不同的频率分量:
(4)
2) CNN包含多个卷积层和池化层,其中每个层都有一组可学习的卷积核或滤波器,进行卷积操作并应用非线性激活函数ReLU并进行最大池化:
(5)
(6)
(7)
其中,
是激活函数,
是卷积核的权重,
是输入信号的一个元素,k和l是卷积核的大小,s是池化核的大小。
3) 全连接层将输出映射到一个预定义的输出维度并使用softmax函数作为激活函数:
(8)
3.3. 递归神经网络RNN
递归神经网络(Recurrent Neural Network, RNN),是一种能够处理序列数据的神经网络,通过在每个时间步将当前输入和前一时间步的状态作为输入,来计算当前时间步的输出和状态,这种状态的循环传递使得RNN可以将之前的信息存储在状态中,并随着输入的处理而更新状态 [16] 。
在图4中,在每个时间步,都要先将当前的输入
和上一个时间步的隐藏状态
作为RNN的输入,然后计算当前的隐藏状态
。随后,使用
生成相应的输出
。
3.4. 长短时记忆神经网络LSTM
长短时记忆网络(Long Short-Term Memory, LSTM)是一个强大的递归神经系统,通过引入特殊的“记忆单元”来记住长期的上下文信息,并通过“门控”机制来控制信息的流动,从而有效地解决了传统循环神经网络(RNN)在长序列数据处理中的梯度消失问题 [17] 。
LSTM和RNN都是循环神经网络的类型,在本文系统应用中,LSTM是RNN的一种改进,更适合处理长时间序列数据。二者的对比分析如下表2所示:

Table 2. Comparative analysis of LSTM and RNN algorithms
表2. LSTM与RNN算法对比分析
在模式识别领域,LSTM模型已经得到广泛应用,本文基本思想是将喉振信号作为时间序列输入,经过多个LSTM层的处理,输出对应的文本结果。为了更好地训练LSTM模型,通常会使用交叉熵损失函数,其计算公式如下:
(9)
其中,N为训练数据集的大小,
为第i个样本的时序长度,
为第i个样本在第t时刻的真实字符标签,
为LSTM模型的参数。
3.5. 解码算法
连接时序分类(Connectionist Temporal Classification, CTC)是常用于序列学习的技术,用以识别序列中的目标标签,即本系统喉部软骨振动信号识别中的词语。通过训练深度神经网络来学习喉振特征与目标标签之间的关系,并将学到的特征映射到目标标签 [18] 。
对两种解码算法进行对比分析,分别为贪婪策略解码(CTC_Greedy Search)、集束搜索解码(CTC_Beam Search)。
贪婪策略解码(CTC_Greedy Search)在计算CTC损失时以最大概率解码出输出序列。在每一时刻选择当前最有可能的输出,将其作为输出序列的一部分。输出结果来自概率最高的路径,得到识别出的文本。
集束搜索解码(CTC_Beam Search)是对前馈神经网络(FNN)和循环神经网络(RNN)的输出进行语音识别的常用方法。与贪婪策略相比,它考虑多种路径可能导致的误识别,在搜索空间中生成多种路径,搜索到最终时刻,找到识别句子概率最大的路径 [19] 。因此,集束搜索通常比贪心策略更准确。
4. 实验结果与分析
4.1. 数据集准备
由于训练数据应为喉部软骨振动信号,目前还没有公开的数据集可供使用,本系统设计使用数字听诊器采集得到的来自40位健康人的喉部软骨振动信号构建数据集进行实验,具体信息见表3,作为训练数据集进行后续处理和特征提取。

Table 3. Statistics on the source information of the training dataset
表3. 训练数据集来源信息统计
4.2. 模型训练配置
4.2.1. 实验配置
本系统实验平台和软硬件情况如表4所示。
4.2.2. 模型训练参数
在神经网络算法中,有两类参数:参数和超参数。参数是训练神经网络最终要学习的目标,如权重。超参数是控制模型结构、功能、效率等的调节途径,本实验中使用的三种神经网络算法方案在实际训练中需要根据情况不断调节参数,因此,本系统采用的主要参数含义与值见表5~7。

Table 6. CRNN model configurations
表6. CRNN模型参数

Table 7. CNN-LSTM model configurations
表7. CNN-LSTM模型参数
4.3. 系统测试结果与分析
4.3.1. 评估指标
本系统使用字错误率(Character Error Rate, CER)和训练损失(Loss Function, LOSS)并辅以准确率作为评估指标,其中CER表示识别结果与参考文本之间不匹配的字数占总字数的比例,LOSS表示训练过程中神经网络输出与目标输出之间差异的度量,主要用作是否正常收敛的参考。
当涉及到字符错误率(CER)时,通常使用的公式如下:
(10)
其中,S表示替换错误的字符数,D表示删除错误的字符数,I表示插入错误的字符数,N表示参考字符总数。
4.3.2. 测试结果与分析
在系统测试时,选择待识别的、实时采集的喉振信号文件,最终输出识别结果,如图5所示。测试人表述原话为:“作为一个普通中学的普通教师,我的旅游机会是少而又少的。”

Figure 5. Schematic identification results
图5. 识别结果示意
最终总结三种方案准确率如表8所示。

Table 8. Performance of the model on the training set
表8. 模型在训练集上的表现
训练过程中记录各种关键指标和错误信息,并保存在日志文件中,包括训练损失、准确率、学习率、验证损失、验证准确率等信息,进而便于监测并进行模型调试和优化。三种模型方案在测试集上的具体表现如图6~8所示。
最终得到模型各指标结果总结如表9所示,在实际训练过程中,CRNN模型在综合效率表现上更佳。
CNN-LSTM模型在训练中时间成本较大,计算复杂,效率过低,未能在实验中体现出应有的准确率。分析原因为LSTM层仍然存在计算复杂度高、参数数量多、难以并行化等缺点。CNN模型效率高、计算较快、结构简单,但是识别效果不尽如人意。原因为CNN模型只能提取局部特征,忽略了喉部振动信号的时序性和上下文相关性。
因此,通过综合对比分析,方案二的CRNN模型既能有较低的时间成本,又能有较好的识别效果。

Table 9. Performance of the model on the testing set
表9. 模型在测试集上的表现
5. 结论
本文实现了基于喉部振动的语音自动识别系统的设计和测试,并提出了评判系统的指标,根据实验结果得出了相对最佳方案。其中,CRNN模型实现了字错率在安静环境下低于0.07的效果,说明其在喉振信号识别任务上具有较优的性能,能基本识别出语音,有一定语义错误。
在本文实验中,针对该系统做了训练和测试的部分,需要在PC端完成,日后研究可改善其实用性,迁移至可移动端。同时,声带受损患者等实验对象的喉部软骨振动信号的采集并由此构建公开的大型数据集是非常有必要的工作。
参考文献
NOTES
*通讯作者。