一种基于机器学习的口语发音检错与纠正系统的制作方法

文档序号:17252292发布日期:2019-03-30 09:08阅读:326来源:国知局
一种基于机器学习的口语发音检错与纠正系统的制作方法

本发明涉及在线口语学习技术领域,特别是涉及一种基于机器学习的口语发音检错与纠正系统。



背景技术:

在语言学习的过程中,由于师资以及环境的限制,上课口语训练时间不足,课后口语练习得不到反馈,以及大部分口语老师的发音不标准等因素造成了学习者学习外语时的一个难关,有许多人愿意为了纠正发音,支付高昂的学费,请外教纠正自己的发音。随着移动在线语言学习的兴起,催生了自动发音检错系统。

在发音检错方法上,目前常用的方法大致可以分为两类:第一类是通过语音学知识的方法寻找一些区别性的特征,比如以日语为母语的英语学习者可能会用“lice”来代替“rice”的发音,学习者可能无法调整其发音动作来纠正这个错误,因为音素/r/在日语中不存在。针对这些典型的错误类型,通常可以提取一些特定的有区分性的声学特征如共振峰来用作发音错误的检测与诊断。第二类是基于说话者对给定文本的发音与基于说话者母语声学模型的标准发音之间的相似性来识别发音错误,如selinaparveen等人在论文(bangiapronunciationerrordetectionsyatem)用到了这种方法。其相似性指标基于自动语音识别(asr)的置信度分数。总的来说,第一种方法可以检测出导致错误的发音器官的动作,例如通过共振峰判断舌位高低前后的偏差,但主要限于单词朗读中元音错误的发现。而且算法容错性较低,共振峰提取的正确与否很关键,但在噪声环境中,很容易导致共振峰提取错误。第二种方法无法判断发音器官错误位置,主要针对发音过程中存在音素的替换(误读)、漏读和插入等错误,因此无法给与针对性的发音纠正和提高方案。

在应用方面,目前只存在少量有针对发音问题的产品,且但大多数功能都比较单一,只是简单播放音视频学习资料,学生跟读,系统播放录音。只有为数不多的软件,具备口语发音问题的检测反馈,但存在的第一个缺陷是反馈功能不足以解决学习者的根源问题,如声希科技的口语训练功能,此功能在学习者跟读发音后只能指出学习者的发音不够好,但学习者并不能理解自己的发音错误在哪里,及应该如何改进发音,使学习者无法得到最为宝贵的反馈纠正信息。往往并不能提高学习者的口语能力。第二个缺陷是对于检测的错误类型,往往集中在发音音素的漏读、误读和插入等这些典型的错误中错误,缺乏对发音动作错误原因的判断和纠正方案的反馈。



技术实现要素:

本发明所要解决的技术问题是提供一种基于机器学习的口语发音检错与纠正系统,能够在线评价口语发音成绩、检查发音错误并提出纠正意见。

本发明解决其技术问题所采用的技术方案是:提供一种基于机器学习的口语发音检错与纠正系统,包括:口语发音样本采集模块,用于从整句或整段口语发音中采集正确发音音素和不同类型的错误发音音素;发音检错模型建立模块,用于对所采集的发音音素提取声学特征并进行类型标注作为发音检错模型训练样本集,通过机器学习算法训练生成发音检错模型;在线检错纠正模块,采用生成的发音检错模型对学习者朗读的整句或整段口语发音进行评分和音素检错及发音纠正。

所述口语发音样本采集模块将声音发出的情况分为发音段、静音段和不发音段,具体为:将语音信号s(n)的预测误差能量定义为:其中,n为帧长,第一反射系数定义为:根据如下规则进行分段:如果第一反射系数大于0.2,并且预测误差能量大于系统门限值θ的2倍,将当前语音帧定义为发音段;如果第一反射系数大于0.3,并且预测误差能量大于系统门限值θ,且当前语音帧的前一帧为发音帧,则当前语音帧定义为发音段;如果不满足上述两条规则,则为当前语音帧定义为不发音段。

所述口语发音样本采集模块采用强制对齐的方式实现得到发音因素,具体为:将文本文件经过标点符号处理;将音频文件转换为单声道,做经过端点检测处理;将文本文件进行字到音的转换,根据已经训练好的声学模型,将文本文件扩展成由隐含马尔科夫模型状态序列所组成的搜索空间;对音频文件中的语音信号进行特征提取,按照从前往后逐帧的顺序将语音特征与对应的隐含马尔科夫模型状态序列所组成的搜索空间对齐;对每一帧数据使用动态规整维特比对齐,得到:q(t,s)=maxs′{p(xt,s|s′)*qv(t-1,s')},其中,q(t,s)是时刻t落在搜索空间中某个特定的隐含马尔科夫模型状态s上的最佳得分,p(xt,s|s')是已知前一帧状态为s'情况下后一帧状态转移隐藏序列xt的概率,xt是隐含马尔科夫状态转移序列,s'是s的前一帧所处状态;在t时刻,当有路径到达活跃状态swe时,其中,swe是期望估计其最优结束时间τ的当前句子的词尾状态节点,统计此时所有活跃状态si的上的路径假设数目其中,δ()是指示函数,将所有的路径假设按照其得分排序统计;统计swe上所有的路径;记路径假设qk(t,swe)在所有n(t)个路径中排名为rk(t,swe),则swe上的路径假设在n(t)个路径中排名中的样本期望定义状态活跃程度为a(t,swe)取最大值的时刻即是对齐最大似然时间t,根据对齐最大似然时间t,输出句子的语音和文本对齐时间信息;根据语音和文本对齐时间信息读取文本表格的音素分离层次,读取音素分离层次的某个音素的开始时间和结束时间,进行音素切割,得到发音音素。

所述发音检错模型建立模块在特征提取时,先把数据分为训练数据及和测试数据集,再将获取的发音音素提取每一个音素发音的mfcc特征和共振峰特征,对原始语音信号经过处理得到每个语音帧的时域信号;将时域信号后补零以形成长为n的序列,然后经过离散傅里叶变换得到线性频谱;线性频谱通过mel频率滤波器组得到mel频谱,得到的mel频谱取对数能量得到对数频谱s(m),将对数频谱s(m)经过离散余弦变换得到倒频谱域,即可得到mel频率倒谱系数c(n)。

所述发音检错模型建立模块在进行训练时,划分为7个类别,分别为-1、1、a、b、c、d和e,其中,-1表示错误类型,1表示正确类型,a、b、c、d、e分别表示错误分类中的舌位偏前、偏后、舌位过高、过低和音素拉长和缩短类;在抽取训练集的时候,依次将某个类别的样本归为一类,其他剩余的样本归为另一类,这样得到7个分类器;在支持向量机作为训练分类器算法时,对语音音素声学特征向量数据按照训练集和测试集4:1进行划分,训练集作为支持向量机的输入向量数目,支持向量机核函数选用径向基核函数。

所述发音检错模型建立模块在建模时采用深度信念网络无监督训练提取特征,最上一层采用支持向量机,根据发音音素声学特征数据集中训练集的个数和维度确定较优的深度信念网络模型;通过调整参数建模和对比各自优化的输出结果的方式确定隐藏层个数,固定第一层隐藏层节点数后,通过试验法逐步确定最优隐藏层层数和节点数,进而通过对其他参数的调节获得最优模型。

有益效果

由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明通过机器学习算法建立发音检错纠正模型对整句或整段中音素发音错误的快速检测和诊断弥补了当今市场对在线辅助口语学习领域在实时评分和检错反馈纠正方面的空缺。能够在学习者所朗读的整个句子中快速的、有效的判断出哪些地方存在什么样的错误类型并予以辅助纠正。

附图说明

图1是本发明中离线机器学习分类检错模型训练框架图;

图2是在线发音检错与交互式纠正工作流程图;

图3是强制对齐分离音素算法流程图。

具体实施方式

下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

本发明的实施方式涉及一种基于机器学习的口语发音检错与纠正系统,包括:口语发音样本采集模块,用于从整句或整段口语发音中采集正确发音音素和不同类型的错误发音音素;发音检错模型建立模块,用于对所采集的发音音素提取声学特征并进行类型标注作为发音检错模型训练样本集,通过机器学习算法训练生成发音检错模型;在线检错纠正模块,采用生成的发音检错模型对学习者朗读的整句或整段口语发音进行评分和音素检错及发音纠正。

本发明首先在整句或整段发音中获取非典型的发音错误样本数据,利用机器学习分类识别算法训练出错误检测分类模型,识别出学习者发音的具体错误属于音素发音的舌位高低前后的偏差或者发音声调长短偏差所导致的发音错误哪一类。更进一步地针对识别出的发音错误类型,给予正确的交互式反馈纠正,主要包括学习者发音时的口型舌位和发音的声调长短的调整方案。

图1是本发明中离线机器学习分类检错模型训练框架图。图2是在线发音检错与交互式纠正工作流程图。参照图1和图2实现本发明的步骤如下:

一、离线模型训练部分:

步骤一、获取整句的标准语音数据。按照国家和地区、性别、年龄获取615

位以英语为母语的发音人的朗读语音为标准发音数据。

步骤二、获取整句的非标准语音数据。按照不同母语的英语学习者获取不同类别的错误发音数据,错误类别分为以下6种:舌位偏前、偏后、舌位过高、过低和音素拉长和缩短类。每个类别的样本数都为200个。

步骤三、强制对齐与音素分离。

1、一段语音信号的发音根据声音的发出情况分为静音段(s,silent),不发音段(u,unvoiced)、发音段(v,voiced)。语音信号s(n)的预测误差能量定义为:

其中,n为帧长,第一反射系数定义为:v/u/s分段规则如下:

(1)如果第一反射系数大于0.2,并且预测误差能量大于门限值θ的2倍,将当前语音帧定义为v段;

(2)如果第一反射系数大于0.3,并且预测误差能量大于门限值θ,并且当前帧的前一帧为发音帧,将当前语音帧定义为v段;

(3)如果不满足前面两条规则,则语音帧定义为u段。

2、强制对齐,如图3所示

(1)文本文件经过特殊标点符号处理,英文分词处理最后保存为utf-8格式。

(2)音频文件转换为单声道、采样率16000hz格式,做经过端点检测处理,端点检测目的就是从包含语音信号中准确的检测出语音的起始点和结束点。

(3)将文本进行字到音的转换,根据已经训练好的声学模型,将文本扩展成由隐含马尔科夫模型(hmm)状态序列所组成的搜索空间。

(4)对音频文件中的语音信号进行特征提取,按照从前往后逐帧顺序的,将语音特征与对应的隐含马尔科夫模型状态序列所组成的搜索空间对齐;对每一帧数据使用动态规整维特比对齐,得到:

q(t,s)=maxs′{p(xt,s|s')*qv(t-1,s')}

其中,q(t,s)是时刻t落在搜索空间中某个特定的隐含马尔科夫模型状态s上的最佳得分,p(xt,s|s')是已知前一帧状态为s'情况下后一帧状态转移隐藏序列xt的概率,xt是隐含马尔科夫状态转移序列,s'是s的前一帧所处状态;swe是期望估计其最优结束时间τ的当前句子的词尾状态节点。

在t时刻,当有路径到达活跃状态swe时,统计此时所有活跃状态si的上的路径假设数目其中,δ()是指示函数,将所有的路径假设按照其得分排序统计;统计swe上所有的路径;记路径假设qk(t,swe)在所有n(t)个路径中排名为rk(t,swe),则swe上的路径假设在n(t)个路径中排名中的样本期望定义状态活跃程度为a(t,swe)取最大值的时刻即是对齐最大似然时间t,根据对齐最大似然时间t,输出句子的语音和文本对齐时间信息。

在强制对齐过程中,将整句发音对齐到单词级别和音素级别,以便于后续步骤中从音素级别提取不同发音的声学特征,在强制对齐后,根据输出的语音和文本对齐时间信息读取文本表格(textgrid)的音素分离的层次,读取音素层次的某个音素的开始时间和结束时间,进行音素切割。得到发音音素。

步骤四、数据归一化处理。数据归一化处理是将音素发音的声学特征数据限定在某个范围内,其目的是为了降低音素发音声学特征数据的离散程度减小数据的差异性,让数据的波动性更小,并不影响数据的原始分布,本实施方式中采用最值归一化方法。

步骤五、特征提取,先把数据分为训练数据及和测试数据集,再将步骤四中获取的发音音素提取每一个音素发音的mfcc特征和共振峰特征,原始语音信号s(n)经过预加重、分帧、加窗、端点检测等处理,得到每个语音帧的时域信号x(n)。

将时域信号x(n)后补若干0以形成长为n(在本实施方式中n=512)的序列,然后经过离散傅里叶变换dft或者(fft)得到线性频谱x(k);

上述线性频谱通过mel频率滤波器组得到mel频谱。为了使结果对噪声和谱估计误差有更好的鲁棒性,将上述经过mel滤波器组得到的mel频谱取对数能量得到s(m);

将上述对数频谱s(m)经过离散余弦变换(dct)变换得到倒频谱域,即可得到mel频率倒谱系数(mfcc参数)c(n)。

由于语音信号是时域连续的,分帧提取的特征信息只反应了本帧语音的特性,为了使特征更能体现时域的连续性,可以在特征维度增加前后帧信息的维度,采用一阶微分系数和13个加速系数,加上四维共振峰参数,一共43个系数。组成43维特征向量。

步骤六、发音检错模型的训练。由于涉及多分类问题,支持向量机和决策树算法都是二值分类器。可以采用通过组合多个二分类器来实现多分类器的构造。组合方式多样,有一对一法(one-versus-one)和一对多法(one-versus-rest)。本实施方式采用一对多法,简称ovr。其思想为:训练时依次将某个类别的样本归为一类,其他剩余的样本归为另一类,这样k个类别的样本就构造出了k个分类器。分类时将未知样本分类为具有最大分类函数值的那类。具体步骤为下:

本实施方式有7个类别需要划分(也就是7个label),分别是-1、1、a、b、c、d、e。-1表示错误类型,1表示正确类型,a、b、c、d、e分别表示错误分类中的舌位偏前、偏后、舌位过高、过低和音素拉长和缩短类。

在抽取训练集的时候,分别抽取

(1)1所对应的向量作为正集,其他所对应的向量作为负集;

(2)-1所对应的向量作为正集,其他所对应的向量作为负集;

(3)a所对应的向量作为正集,其他所对应的向量作为负集;

(4)b所对应的向量作为正集,其他所对应的向量作为负集;

(5)c所对应的向量作为正集,其他所对应的向量作为负集;

(6)d所对应的向量作为正集,其他所对应的向量作为负集;

(7)e所对应的向量作为正集,其他所对应的向量作为负集。

在支持向量机作为训练分类器算法时,对语音音素声学特征向量数据按照训练集和测试集4:1进行划分,训练集作为支持向量机的输入向量数目,支持向量机核函数选用径向基(rbf)核函数。

支持向量机惩罚因子c的范围设为[0,100],核函数参数g的范围设为[0,1000]。

使用这7个训练集分别进行训练,然后得到7个训练结果文件。

在测试的时候,把对应的测试向量分别利用这四个训练集结果进行测试,最后每个测试都有一个结果f1(x),f2(x),f3(x),f4(x),f5(x),f6(x),f7(x)。于是最终的分类结果便是这些值中最大的一个作为分类结果。

在实际朗读错误中,往往错误类型的分布并不平衡,例如在某一地区,大部分学习者的发音错误可能集中在某一或两类上,这种错误类型比较普遍,而有的错误类型比较罕见,因此在错误类型训练中样本中导致不平衡问题,为进一步探索最优的建模方法,本文采用迁移学习的思想,使用在深度信念网络(dbn)无监督训练提取特征,最上一层采用支持向量机(svm),即dbn+svm进行分类模型建立。

根据发音音素声学特征数据集中训练集的个数和维度确定较优的dbn模型。确定隐藏层个数、调优阶段学习率和迭代次数。确定参数训练玻尔兹曼机。我们将每类200组音素数据分为训练集(160组)和测试集(40组)使用训练集进行训练建模,使用测试集对建立的发音音素检错分类模型进行测试。使用100、200、300、400、500、600、700和800等八个隐藏层神经元节点数在单隐藏层情况下对特征进行建模。通过调整参数建模和对比各自优化的输出结果发现,取隐藏层节点数[400]时,可以得到最优结果。固定第一层隐藏层节点数后,通过试验法逐步确定最优隐藏层层数和节点数,进而通过对其他参数的调节获得最优模型。最终建立的音素发音检错分类模型中,隐藏层个数为5,rbm的迭代为50,dbn网络迭代次数为1000次,batch_size为64,权重学习率为0.000001。多次重复测试实验取均值为最后结果。

错误检测可产生四种类型的结果:1)正确接受(ca),即被判断为正确的正确发音次数;2)正确拒绝(cr),被判断为不正确的错误发音次数;3)错误接受(fa),即被判断为正确的错误发音次数;以及4)错误拒绝(fr),即被判断为不正确的正确发音的数量。使用这四个结果,计算正确接受率(car),正确拒绝率(crr)。本实施方式采用car和crr作为识别准确度的衡量参数,car用于正确发音,crr用于错误发音。

表2两种不同算法分类器和深度学习(dbn+svm)的测试集识别car和crr比较

由表2结果可以看出,在语音音素发音错误检测效果上,基于支持向量机的分类和基于决策树的分类在识别准确率上相差不大,两者对错误类型的识别率均稳定在80%左右。识别效果较好。基于现实原因,部分发音错误比较普遍,错误样本多,分类效果更好,而部分发音错误类型较为罕见,训练样本量不足可能是导致分类准确率偏低的主要原因,通过表2可以看到采用(dbn+svm)可以在前两者的识别准确率基础上平均提高2个百分点。因此基于深度信念网络加支持向量机的分类算法训练的模型是最优的。

步骤七、结果评价与纠错,根据所述机器学习算法得到的检错分类模型给出的分类结果,指出测试样本属于哪一类错误;由模型预测出发音错误所属分类。将学习者发音错误地点和错误种类反馈给学习者并为其提出纠正方案。

二、在线发音检错与交互式纠正部分

步骤一、获取发音数据

图2是发音检错与交互式纠正系统工作流程图,学习者登录系统后,选择要学习的发音句子,根据显示文本,朗读整句,系统获取学习者发音。

步骤二、数据处理与发音检错

将步骤一中获取的学习者发音数据进行预处理,包括强制对齐分离音素和特征提取,处理步骤与离线模型训练部分相同。将处理后的数据送入训练好的发音检错模型,由模型输出学习者发音结果。

步骤三、交互式纠正,根据系统给出的发音判断,告诉学习者发音所存在的问题,并针对判断出的不同错误发音给予发音动作的纠正,提示学习者再次朗读。持续纠正发音。直到音素标准。

不难发现,本发明基于机器学习算法,利用不同发音音素有着不同的声学特征这一特点,对不同学习者所朗读外语语音段信号数据的采集和处理,获得其在频域下的39+4维声学特征向量,作为训练模型的输入,借助于有监督的学习网络或无监督的学习网络,对提取的声学特征向量进行学习训练生成声学检错模型。使用测试集对声学检错模型的错误分类效果进行验证,经实验验证分类准确率较高,满足正常学习者发音错误类型分析。并针对测试集验证结果给予发音评价和纠正方案。本发明不仅仅指出学习者发音的对与错,在此基础之上更进一步的识别出学习者发音是错在哪里,并将如何改进的方法反馈给学习者,这样才能够切实的提高学习者的发音能力。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1