文章信息
- 唐咸荣, 高瑞贞
- TANG Xianrong, GAO Ruizhen
- 联合CTC和Transformer的轮式移动机器人语音控制研究
- Research on voice control of wheeled mobile robot combined with CTC and Transformer
- 中国测试, 2024, 50(6): 117-123
- CHINA MEASUREMENT & TEST, 2024, 50(6): 117-123
- http://dx.doi.org/10.11857/j.issn.1674-5124.2022040038
-
文章历史
- 收稿日期: 2022-04-07
- 收到修改稿日期: 2022-06-17
随着科学技术的进步和发展,让机器“听懂”人类语言已经不再是纸上谈兵。自动语音识别技术[1]也因此得到了广泛的研究且愈发成熟。目前,在智能家居、车载语音、机器人控制以及语音客服等领域语音识别都得到了广泛的应用[2]。在此研究背景下,本文提出了基于深度学习算法的轮式移动机器人语音控制系统,旨在解放用户的双手以达到改善人机交互条件的目的。
语音识别经历了一个漫长的发展过程,早期传统的语音识别系统包含声学模型、发音词典和语言模型三个模块[3]。在训练过程中声学模型将处理后的特征序列映射到所对应的文本序列,然后利用语言模型对其进行打分,预测出概率最大的文本。纵观上述步骤,要搭建出一整套完整的语音识别系统,在深度学习算法普及之前是一项相当复杂且艰巨的挑战。
受深度学习在图像识别和机器翻译领域广泛应用的启发,Hinton等[4]首次将深度神经网络与隐马尔可夫模型相结合,提出了深度神经网络-隐马尔可夫模型,并在连续语音识别任务上取得了良好的效果。此后,为了简化系统,研究人员将传统模型中的多个模块融合到单个系统里共同训练,提出了端到端语音识别系统[5]概念。端到端系统只需要把输入语音序列和所对应的文本序列丢进模型即可自动进行训练,不再需要进行强制对齐的操作,有效地解决了由输入与输出序列长度不等所带来的问题。主流的端到端语音识别模型包括连接时序分类[6]和基于注意力机制的编码器-解码器[7]两种方法。端到端模型较为灵活、易于搭建,且识别准确率也超过了传统的方法,是目前语音识别任务中主流的建模方法。
但是上述两种端到端模型也有各自的缺陷。一方面,CTC具有条件独立性,忽略了上下文的联系,因此极其依赖强大的语言模型;另一方面,基于注意力的模型对噪声较为敏感,受噪声的影响,模型将不能发挥其对齐机制,识别效果远不如预期。鉴于两种方法单独训练都存在各自的不足,研究人员提出了将CTC和注意力模型结合的CTC-Attention模型[8]。混合模型完美结合了CTC的对齐机制和注意力机制的特征抽取能力,注意力模型在CTC的辅助训练下具有较高的识别准确率和较高的鲁棒性。一开始,CTC被用在了RNN上,但是RNN内部顺序性建模的思想使模型不能获得并行化训练的能力,且在处理长序列输入时会遗忘部分历史信息。为此,Dong等[9]提出了基于Transformer的端到端语音识别模型,模型的并行化能力得到了大幅度的提升。
综上结合之前研究者的研究基础,本文提出了采用CTC辅助Transformer训练的端到端语音识别模型。Transformer能够提取输入语音序列更多的特征,且保证了模型的并行化能力;利用CTC辅助Transformer训练,既给予了模型对齐能力,又提高了模型的泛化能力。提出的模型在开源语音集AISHELL-1进行测试,在训练好的模型基础上,在轮式移动机器人上搭建实验平台。
1 相关理论 1.1 多头自注意力注意力机制[10]是指人们关注某个特定领域,以此得到更多细节的信息。Transformer模型选择添加了缩放因子的点乘注意力,以达到稳定梯度的效果。缩放点乘自注意力机制(scaled dot-product attention)结构如图1所示。
自注意力计算公式如下式所示:
$ {\rm Attention}(\boldsymbol Q,\boldsymbol K,\boldsymbol V) = {\rm soft}\max \left(\frac{{\boldsymbol Q{\boldsymbol K^{\rm T}}}}{{\sqrt {{d_k}} }}\right)\boldsymbol V $ | (1) |
式中:
为了能像卷积神经网络一样通过多个卷积核提取到不同维度的特征,Google机器翻译团队利用多头注意力(multi-head attention)[11]机制来充当“卷积核”的作用。多头注意力将查询向量、键向量和值向量经过不同的线性函数映射
其计算过程为:首先计算出每个自注意力头的缩放点积注意力,如式(2)所示。再将每个头计算得到的输出拼接,做一次线性变换得到最终多头自注意力的结果,如式(3)所示。
$ {\rm head}{_i} = {\rm Attention}({\boldsymbol {QW}}_i^Q,{\boldsymbol {KW}}_i^K,{\boldsymbol {VW}}_i^V) $ | (2) |
$ {\rm MultiHead}({\boldsymbol Q},{\boldsymbol K},{\boldsymbol V}) = {\rm Concat}({{\rm head}_1},{{\rm head}_2},\cdots ,{{\rm head}_h}){{\boldsymbol W}^o}$ | (3) |
其中:
CTC模型是由Graves等[12]提出的一种能够学习特征序列与对应文本标签序列之间对齐关系的时序分类算法。CTC在建模时直接将特征序列线性映射到标签序列,建立多对一的映射关系。由于语音信号中含有停顿、无声的情况,因此,输入的特征序列长度是远大于文本标签长度的。为了解决输入与输出长度不一致的问题。CTC引入了空白标签“
在计算过程中,设
$ P(\pi |X) = \prod\limits_{t = 1}^T {y_{{\pi _t}}^t} $ | (4) |
在输出最终结果时,CTC要去除空白标签和整合相同标签,例如两个不同的预测序列“a
$ {P_{\rm CTC}}(Y|x) = \sum\limits_{\pi \in \phi (Y)} {P(\pi |X)} $ | (5) |
其中:
上述解码方法在计算过程中,随着特征序列长度的增加,计算量会以指数量级增长。前后算向法(forward backward algorithm)可以有效缓解这一问题。设正常输出的长度为
$ \alpha (t,u) = \sum\limits_{\pi \in F(t,u)} {\prod\limits_{i = 1}^t {y_{{\pi _i}}^i} } $ | (6) |
其中,
同理,后向概率
$ \beta (t,u) = \sum\limits_{\pi \in B(t,u)} {\prod\limits_{i = 1}^{T - t} {y_{{\pi _i}}^{t + i}} } $ | (7) |
其中,
最后,CTC模型预测的所有可能序列的后验概率计算如式(8)所示。
$ {P_{\rm CTC}}(Y|X) = \sum\limits_{u = 1}^{2l + 1} {\alpha (t,u)} \beta (t,u) $ | (8) |
CTC模型的训练损失函数为输出标签序列概率的负对数最大似然,解码过程中使用了集束搜索策略。如式(9)所示。
$ {L_{\rm CTC}}(S) = - \sum\limits_{(X,Y) \in S} {\ln } {P_{\rm CTC}}(Y|X) $ | (9) |
其中,S为标注训练集。
2 CTC-Transformer模型由于CTC比较依赖强大的语言模型,而Transformer在语言建模上又有着强大的能力,因此本文设计了使用CTC辅助Transformer训练的模型。整体模型由三部分组成,包括前置处理模块、编码器-解码器模块、混合CTC-Transformer loss计算模块。
2.1 前置处理模块前置处理模块包含
经过前置处理模块处理得到的序列都要与各自的位置编码进行相加处理才能进入Transformer的编码器和解码器。其计算公式如式(10)所示。
$ \left\{ {\begin{array}{*{20}{l}} {{p_{k,2i}} = \sin \left(\dfrac{k}{{{{10\;000}^{\frac{{2i}}{d}}}}}\right)} \\ {{p_{k,2i + 1}} = \cos \left(\dfrac{k}{{{{10\;000}^{\frac{{2i}}{d}}}}}\right)} \end{array}} \right. $ | (10) |
式中:
编码器-解码器结构如图4所示。它由N个相同的模块堆叠组成,每个模块包含两个主要子层:多头注意力层和前馈神经网络层。
在训练过程中,解码器的输入是与语音序列相对应的文本序列,在解码过程中为了不让解码器看到当前时刻之后的正确答案而使最终的模型欠拟合,采用的是自回归[13]的方式进行解码,即在解码时从左向右依次进行解码。为此,解码器在第一层注意力计算时采用的是遮蔽多头自注意力(masked multi-head attention)。遮蔽的作用主要是避免在第
在解码器的第二层注意力计算中,
此外,将计算完每个子层得到的输出进行拼接、残差连接和层归一化操作来防止梯度消失,加快模型的收敛。
2.3 损失函数本文在Transformer模型的基础上,使用时序连接分类算法来辅助训练,因此,在计算损失函数时,要分别考虑CTC和Transformer两者各自的损失值,最后将得到的两个损失值进行加权和计算。如式(11)所示。
$ {T_{\rm loss}} = \lambda {\rm CTC_{loss} }+ (1 - \lambda ){\rm at{t_{loss}}} $ | (11) |
其中:
综合以上对CTC-Transformer模型中各子模块的设计和介绍,本文设计的CTC-Transformer模型总结构如图5所示。
其训练过程为:首先,前置模块将输入的语音特征及其对应的文本标签分别转化成编码器和解码器的输入特征向量;到了编码器-解码器部分,编码器将声学特征向量
本文选择希尔贝壳中文普通话开源数据库AISHELL-1[14]作为实验数据集进行模型可行性分析。该数据集征集了来自中国不同口音、不同地区的400人参与录音,总时长178 h,质量较高且涵盖范围较广,具有代表性。
3.2 实验环境服务器处理器为 Intel(R) Core(TM) i7-10700K CPU@3.80 GHz 3.79 GHz,内存16 G。GPU显卡型号为NVIDIA GeForce RTX 3080。操作系统为Ubuntu18.04,深度学习框架为Pytorch1.8-gpu。
3.3 实验参数本文模型使用如下参数配置:1)语音处理模块由2个2D卷积模块组成,每个卷积模块包含一个2D卷积层和一个
$ {l_{\rm rate}} = k \times d_{\rm model}^{ - 0.5} \times \min ({n^{ - 0.5}}, n \times {\rm warmup}\_{n^{ - 1.5}}) $ | (12) |
式中:
本文中,
如图6所示,模型在全局训练过程中的loss在50轮后逐步平缓,在前50轮,损失值下降较快。为了进一步看出模型的训练效果,选出50~250
此外,本实验采用字错率(character error rate, CER)来评价模型的识别准确度,计算公式如式(13)所示。
$ {\rm CER }= (S + D + I)/N $ | (13) |
其中:假设参考例句为
从表格数据可以看出,在测试集上,本文提出的联合CTC和Transformer训练的模型较Transformer单独训练的字错率相对下降了5.1%,达到了5.57%的错误率。
随着训练轮数的递进,CTC-Transformer和基线模型Transformer字错率变化曲线如图8所示。可以看出在CTC的辅助训练下,字错率有了明显下降。
4 轮式移动机器人语音控制平台搭建
本文提出的基于深度学习的轮式移动机器人语音控制系统主要包括语音识别端和机器人运动控制端两部分,如图9所示。
其中,语音信号采集部分选取支持声源定位的科大讯飞6麦克风阵列环形语音板作为语音采集器;综合考虑了功耗、算力和成本后,采用树莓派4B作为核心控制器,通过其内部自带的WiFi模块与服务器通信;选取STM32单片机作为轮式移动机器人底层控制器,树莓派4B与STM32之间通过USB串口通信。
实验过程中,当采集到用户所发出的语音指令后,语音模块会将语音信号传输给树莓派,树莓派会将语音信息通过所训练好的深度学习模型,将语音指令转化为文本控制指令,然后通过串口下发给STM32,STM32控制舵机与闭环电机实现对轮式移动机器人的控制。接着,STM32会将里程计信息反馈给树莓派,最终用户在服务器上可以看到轮式移动机器人的运动状态及运动轨迹。搭建的实验平台样机如图10所示。
5 结束语
本文就目前轮式移动机器人需要手动控制的局限性,搭建了一种基于深度学习的轮式移动机器人语音控制系统。其中,语音识别算法采用了基于Transformer模型,并加入连接时序分类来辅助模型训练的方法。经过实验论证,模型在测试集上具有较低的字错率和较高的鲁棒性。并且,通过硬件设备,完成了轮式移动机器人的语音控制平台的搭建。但是Transformer对输入信息的位置较为不敏感,并且在面对噪声作业环境下,泛化能力较弱,后续将着重改进算法,提高模型对位置信息捕捉和降噪的能力。此外,为了更安全的对机器人进行控制,针对不同说话者对轮式移动机器人语音输入的干扰,还展开将声纹识别加入语音识别算法的工作。
[1] |
HUANG X, BAKER J, REDDY R. A historical perspective of speech recognition[J].
Communications of the ACM, 2014, 57(1): 94-103.
DOI:10.1145/2500887 |
[2] |
过馨露. 基于TensorFlow框架的语音控制移动机器人实训项目设计[J].
信息与电脑, 2020, 32(22): 123-124.
GUO X L. Design of speech control mobile robot training project based on Tensorflow framework[J].
China Computer & Communication, 2020, 32(22): 123-124.
|
[3] |
SONG M, ZHANG Q, PAN J, et al. Improving HMM/DNN in asr of under-resourced languages using probabilistic sampling[C]//2015 IEEE China Summit and International Conference on Signal and Information Processing (ChinaSIP). IEEE, 2015: 20-24.
|
[4] |
HINTON G, DENG L, YU D, et al. Deep neural networks for acoustic modeling in speech recognition: The shared views of four research groups[J].
IEEE Signal processing magazine, 2012, 29(6): 82-97.
DOI:10.1109/MSP.2012.2205597 |
[5] |
WU X, JIN Y F, WANG J J, et al. MKD: Mixup-based knowledge distillation for mandarin end-to-end speech recognition[J]. Algorithms, 2022, 15(5): 160.
|
[6] |
Algorithms; Data from Suleyman Demirel University Advance Knowledge in Algorithms (Comparison of Optimization Algorithms of Connectionist Temporal Classifier For Speech Recognition System)[J]. Journal of Engineering, 2020.
|
[7] |
CHOROWSKI J K, BAHDANAU D, SERDYUK D, et al. Attention-based models for speech recognition[J]. Advances in Neural Information Processing Systems, 2015, 28: 1-19.
|
[8] |
NIE M X, LEI Z C. Hybrid CTC/attention architecture with self[J]. Journal of Physics: Conference Series, 2020, 1549(5): 052034.
|
[9] |
DONG L, XU S, XU B. Speech-transformer: A no-recurrence sequence-to-sequence model for speech recognition[C]//2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). IEEE, 2018: 5884-5888.
|
[10] |
莫仁鹏, 司小胜, 李天梅, 等. 基于多粗粒度与注意力网络的轴承剩余寿命预测[J].
中国测试, 2021, 47(10): 1-6.
MO R P, SI X S, LI T M, et al. Remaining life prediction for bearing based on multiple coarse-grained and attention network[J].
China Measurement & Test, 2021, 47(10): 1-6.
|
[11] |
KARITA S, SOPLIN N E Y, WATANABE S, et al. Improving transformer-based end-to-end speech recognition with connectionist temporal classification and language model integration[C]//Interspeech 2019, 2019.
|
[12] |
GRAVES A. Generating sequences with recurrent neural networks[J]. Computer Science, 2013(v1): 1-43.
|
[13] |
蒿晓阳, 张鹏远. 使用变分自编码器的自回归多说话人中文语音合成[J].
声学学报, 2022, 47(3): 405-416.
HAO X Y, ZHANG P Y. Autoregressive multi-speaker model in Chinese speech synthesis based on variational autoencoder[J].
Acta Acustica, 2022, 47(3): 405-416.
|
[14] |
BU H, DU J, NA X, et al. Aishell-1: An open-source mandarin speech corpus and a speech recognition baseline[C]//2017 20th Conference of the Oriental Chapter of the International Coordinating Committee on Speech Databases and Speech I/O Systems and Assessment (O-COCOSDA). IEEE, 2017: 1-5.
|