中国测试  2024, Vol. 50 Issue (6): 117-123

文章信息

唐咸荣, 高瑞贞
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
联合CTC和Transformer的轮式移动机器人语音控制研究
唐咸荣 , 高瑞贞     
河北工程大学机械与装备工程学院,河北 邯郸 056038
摘要:针对人机交互过程中手动控制轮式移动机器人步骤繁琐且双手受到限制的问题,提出并实现基于深度学习算法的轮式移动机器人语音控制系统。系统选取树莓派4B开发板作为主控制器,科大讯飞6阵列语音模块作为语音采集器,STM32单片机作为底层轮式移动机器人的控制器。语音识别算法部分设计基于Transformer的端到端语音识别模型,并加入连续时序分类算法来辅助模型的训练,模型的收敛速度和鲁棒性都得到相应的提升。模型在AISHELL-1语音数据集上测试的字错率为5.57%,相对于Transformer单独训练,字错率相对下降5.1%。经过平台搭建和实验,实现轮式移动机器人根据用户语音指令完成相对应动作的目的,有利于提高工作效率和解放用户的双手。
关键词轮式移动机器人    语音控制    Transformer    连接时序分类    
Research on voice control of wheeled mobile robot combined with CTC and Transformer
TANG Xianrong , GAO Ruizhen     
School of Mechanical and Equipment Engineering, Hebei University of Engineering, Handan 056038, China
Abstract: Aiming at the problem that the manual control of wheeled mobile robot in the process of human-computer interaction is cumbersome and hands are limited, a voice control system of wheeled mobile robot based on deep learning algorithm is proposed and implemented. The system chooses Raspberry PI 4B development board as the main controller, iFLYTEK voice module with 6 array as the voice collector and STM32 MCU as the controller of the bottom wheeled mobile robot. The speech recognition part designs an end-to-end speech recognition model based on Transformer,and connectionist temporal classification algorithm is added to assist the training of the model. The convergence rate of the model is accelerated and the robustness of the model is improved. The word error rate of the model tested on the speech dataset AISHELL-1 is 5.57%, separately decreased by 5.1% compared to Transformer training alone. Through the platform construction and experiments, the wheeled mobile robot can complete corresponding actions according to the user's voice command, which is beneficial to improve work efficiency and liberate the user's hands.
Key words: wheeled mobile robot     voice control     Transformer     connectionist temporal classification    
0 引 言

随着科学技术的进步和发展,让机器“听懂”人类语言已经不再是纸上谈兵。自动语音识别技术[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所示。

图 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)

式中:$\boldsymbol Q \in {\mathbf{R}^{{t_q} \times {d_q}}}$$K \in {\mathbf{R}^{{t_k} \times {d_k}}}$$V \in {\mathbf{R}^{{t_v} \times {d_v}}}$,其中$ t $为输入数量;

$ d $——输入的相应元素尺寸;

$ {1 \mathord{\left/ {\vphantom {1 {\sqrt {{d_k}} }}} \right. } {\sqrt {{d_k}} }} $——缩放因子。

为了能像卷积神经网络一样通过多个卷积核提取到不同维度的特征,Google机器翻译团队利用多头注意力(multi-head attention)[11]机制来充当“卷积核”的作用。多头注意力将查询向量、键向量和值向量经过不同的线性函数映射$ h $次,并在每次映射后做一次缩放点积注意力计算,最后将多组提取到的不同特征进行拼接处理。多头注意力结构见图2

图 2 多头注意力结构

其计算过程为:首先计算出每个自注意力头的缩放点积注意力,如式(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)

其中:$ h $表示注意力头数目;可训练参数矩阵${{\boldsymbol W}^o} \in {\mathbf{R}^{{d_m} \times {d_m}}}$${{\boldsymbol W}^{Q,K,V}} \in {\mathbf{R}^{{d_m} \times {d_k}}}$$ {d_k} = {{{d_m}} \mathord{\left/ {\vphantom {{{d_m}} h}} \right. } h} $

1.2 连接时序分类

CTC模型是由Graves等[12]提出的一种能够学习特征序列与对应文本标签序列之间对齐关系的时序分类算法。CTC在建模时直接将特征序列线性映射到标签序列,建立多对一的映射关系。由于语音信号中含有停顿、无声的情况,因此,输入的特征序列长度是远大于文本标签长度的。为了解决输入与输出长度不一致的问题。CTC引入了空白标签“$ \varepsilon $”的概念。CTC会通过在预测序列中补充空白标签来达到输入和输出序列等长的效果。

在计算过程中,设$X = \{ {x_1},{x_2},\cdots, {x_r}\}$表示长度为$ r $的特征序列;特征序列所对应的预测序列表示为$ \pi = ({\pi _1},{\pi _2},\cdots ,{\pi _T}) $,其代表了预测序列所有可能的输出路径;文本标签序列表示为$Y = \{ {y_1},{y_2},\cdots, {y_l}\}$,长度为$ l $。则CTC在某一条输出路径$ {\pi _t} $下的条件概率如式(4)所示。

$ P(\pi |X) = \prod\limits_{t = 1}^T {y_{{\pi _t}}^t} $ (4)

在输出最终结果时,CTC要去除空白标签和整合相同标签,例如两个不同的预测序列“a$ \varepsilon $a$ \varepsilon $bc”和“aa$ \varepsilon $b$ \varepsilon $c”,最后解码结果都为“abc”。因此最终的输出概率要将相同解码结果的不同路径下的概率进行加和计算,如式(5)所示。

$ {P_{\rm CTC}}(Y|x) = \sum\limits_{\pi \in \phi (Y)} {P(\pi |X)} $ (5)

其中:$ \phi (Y) $为所有可能的解码路径集合。

上述解码方法在计算过程中,随着特征序列长度的增加,计算量会以指数量级增长。前后算向法(forward backward algorithm)可以有效缓解这一问题。设正常输出的长度为$ l $,因为我们增加了空白标签“$ \varepsilon $”,所以解码时,路径节点变成了$ 2l + 1 $,则前向解码概率$ \alpha (t,u) $计算如式(6)所示。

$ \alpha (t,u) = \sum\limits_{\pi \in F(t,u)} {\prod\limits_{i = 1}^t {y_{{\pi _i}}^i} } $ (6)

其中,$ u \in \left[ {1,2l + 1} \right] $$ F(t,u) $表示$ t $时刻经过节点为$ u $的所有可能的路径集合。

同理,后向概率$ \beta (t,u) $计算如式(7)所示。

$ \beta (t,u) = \sum\limits_{\pi \in B(t,u)} {\prod\limits_{i = 1}^{T - t} {y_{{\pi _i}}^{t + i}} } $ (7)

其中,$ B(t,u) $$ t $时刻经过节点$ u $的后续所有路径集合。

最后,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 前置处理模块

前置处理模块包含$ K $个声学前置模块和文本前置模块,如图3所示。它主要做两个任务:一是将输入的语音特征处理成编码器能识别的声学特征向量;二是将语音信号对应的真实文本标签转化成文本嵌入序列。

图 3 前置处理模块

经过前置处理模块处理得到的序列都要与各自的位置编码进行相加处理才能进入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)

式中:$ k $——当前标签在输入序列中的位置;

$ i $——向量中每个值的索引;

$ d $——位置向量的维度。

2.2 编码器-解码器

编码器-解码器结构如图4所示。它由N个相同的模块堆叠组成,每个模块包含两个主要子层:多头注意力层和前馈神经网络层。

图 4 编码器-解码器结构

在训练过程中,解码器的输入是与语音序列相对应的文本序列,在解码过程中为了不让解码器看到当前时刻之后的正确答案而使最终的模型欠拟合,采用的是自回归[13]的方式进行解码,即在解码时从左向右依次进行解码。为此,解码器在第一层注意力计算时采用的是遮蔽多头自注意力(masked multi-head attention)。遮蔽的作用主要是避免在第$ t $时刻看到之后的输入,即对于第$ t $时刻的$ {q_t} $,在做计算时,应该只能看到${k_1},{k_2},\cdots ,{k_{t - 1}}$,而不应该看到$ {k_t} $和其之后的东西。但是在做注意力计算时,$ {q_t} $会无法避免地自动看到全局信息,跟所有$\boldsymbol K$矩阵里面的元素一一做运算。添加遮蔽的具体做法是将$ t $时刻及$ t $时刻之后要计算的值换为一个非常大的负数($- {\rm e^{10}}$),这样在进入${\rm soft}\max$指数计算时,值就会变成0。最终只有$ t $时刻前面的值在计算时起效果,而$ t $时刻之后的权重全部变成0。

在解码器的第二层注意力计算中,$\rm key$$\rm value$来自编码器的输出,$\rm query$来自上一层注意力的输出。

此外,将计算完每个子层得到的输出进行拼接、残差连接和层归一化操作来防止梯度消失,加快模型的收敛。

2.3 损失函数

本文在Transformer模型的基础上,使用时序连接分类算法来辅助训练,因此,在计算损失函数时,要分别考虑CTC和Transformer两者各自的损失值,最后将得到的两个损失值进行加权和计算。如式(11)所示。

$ {T_{\rm loss}} = \lambda {\rm CTC_{loss} }+ (1 - \lambda ){\rm at{t_{loss}}} $ (11)

其中:$ \lambda \in [0,1] $,是衡量CTC损失和attention损失的重要程度的指标。

综合以上对CTC-Transformer模型中各子模块的设计和介绍,本文设计的CTC-Transformer模型总结构如图5所示。

图 5 模型总体结构

其训练过程为:首先,前置模块将输入的语音特征及其对应的文本标签分别转化成编码器和解码器的输入特征向量;到了编码器-解码器部分,编码器将声学特征向量$ {\boldsymbol X} = \left\{ {{x_1},{x_2},\cdots ,{x_T}} \right\} $映射到隐藏层向量$ {\boldsymbol h} = \left\{ {{h_1},{h_2},\cdots ,{h_N}} \right\} $,向量$\boldsymbol h$一方面作为CTC解码端的输入,另一方面作为解码器第二层自注意力计算过程中的值向量$ \boldsymbol V $和键向量$ \boldsymbol K $。然后,分别计算CTC的loss值和交叉熵损失函数(cross entropy, CE)loss值;最后由式(11)计算得到最终的总损失值,进而得到生成目标转录序列$ \hat Y = \left\{ {{y_1},{y_2},\cdots ,{y_l}} \right\} $的概率分布。

3 实验与分析 3.1 实验数据

本文选择希尔贝壳中文普通话开源数据库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卷积层和一个${\rm {Re} Lu}$激活层。两个卷积模块的卷积核的数量都是256个,卷积核${\rm size} = (3,3)$,步长${\rm stride} = 2$。2)编码层由6个Transformer块组成,多头注意力层层输出维度为256,注意力头数$ H $为4,前馈层的输出维度为1024,使用${\rm glue}$激活函数;解码层参数与编码器参数相同。3)损失函数计算时,CTC的权重$ \lambda $为0.3。此外,模型的训练${\rm batchsize}$=16,使用超参数为$ {\beta _1} = 0.9 $$ {\beta _2} = 0.98 $$ \varepsilon = {10^{ - 9}} $的Adam优化器,初始学习率为1。并在训练过程中根据式(12)动态调节学习率。

$ {l_{\rm rate}} = k \times d_{\rm model}^{ - 0.5} \times \min ({n^{ - 0.5}}, n \times {\rm warmup}\_{n^{ - 1.5}}) $ (12)

式中:$ n $——训练步数;

$ k $——缩放因子;

${\rm warmup}{_\_}n$——热身步数;

${d_{\rm model}}$——注意力矩阵的维度。

本文中,$ k $取值10,${d_{\rm model}}$=256,${ \rm warmup}{_\_}n$=12000,训练$\rm epoch$=300;在每个子层中采用$\rm dropout$=0.1的比率来防止过拟合。采用集束步伐$\rm beamsize$=10的解码策略进行解码。

3.4 结果分析

图6所示,模型在全局训练过程中的loss在50轮后逐步平缓,在前50轮,损失值下降较快。为了进一步看出模型的训练效果,选出50~250 $\rm epoch$之间的损失曲线,如图7所示。可以看出,模型在前50轮内loss值下降的很快,在50轮后逐渐下降的较为平缓,经过250轮的训练后,$\rm loss$值最终可以降到0.08%。

图 6 全局损失函数曲线

图 7 训练50~250 epoch的损失函数曲线

此外,本实验采用字错率(character error rate, CER)来评价模型的识别准确度,计算公式如式(13)所示。

$ {\rm CER }= (S + D + I)/N $ (13)

其中:假设参考例句为$\rm {Re} f$,预测样本为$\rm Hyp$,则$ S $表示将$\rm Hyp$转化为$\rm {Re} f$时替换单词的数量;$ D $表示将$\rm Hyp$转化为$\rm {Re} f$时删除单词的数量;$ I $表示将$\rm Hyp$转化为$\rm {Re} f$时额外插入单词的数量;$ N $表示整句总字数。经过实验,对比基准模型Transformer得到如表1的结果。

表 1 不同模型在AISHELL-1上的字错率
%
模型名称验证集测试集
Transformer5.485.87
Ours5.025.57

从表格数据可以看出,在测试集上,本文提出的联合CTC和Transformer训练的模型较Transformer单独训练的字错率相对下降了5.1%,达到了5.57%的错误率。

随着训练轮数的递进,CTC-Transformer和基线模型Transformer字错率变化曲线如图8所示。可以看出在CTC的辅助训练下,字错率有了明显下降。

图 8 验证集字错率

4 轮式移动机器人语音控制平台搭建

本文提出的基于深度学习的轮式移动机器人语音控制系统主要包括语音识别端和机器人运动控制端两部分,如图9所示。

图 9 语音识别控制机器人系统

其中,语音信号采集部分选取支持声源定位的科大讯飞6麦克风阵列环形语音板作为语音采集器;综合考虑了功耗、算力和成本后,采用树莓派4B作为核心控制器,通过其内部自带的WiFi模块与服务器通信;选取STM32单片机作为轮式移动机器人底层控制器,树莓派4B与STM32之间通过USB串口通信。

实验过程中,当采集到用户所发出的语音指令后,语音模块会将语音信号传输给树莓派,树莓派会将语音信息通过所训练好的深度学习模型,将语音指令转化为文本控制指令,然后通过串口下发给STM32,STM32控制舵机与闭环电机实现对轮式移动机器人的控制。接着,STM32会将里程计信息反馈给树莓派,最终用户在服务器上可以看到轮式移动机器人的运动状态及运动轨迹。搭建的实验平台样机如图10所示。

图 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.