首页> 中国专利> 一种自动检测语言学习者朗读错误的方法

一种自动检测语言学习者朗读错误的方法

摘要

本发明涉及一种用于自动检测语言学习者朗读错误的方法,包括:根据朗读语料训练多发音模型;根据参考答案、发音字典、多发音模型构建精简搜索空间;根据参考答案及语言学知识构建朗读语言模型;对输入语音预处理分帧,提取语音特征;采用Viterbi算法在精简搜索空间中搜索一条声学模型得分、语言模型得分及发音得分的累积分数最高的一条发音路径作为识别发音序列;将识别的发音序列与参考答案的发音序列通过动态规划匹配算法对齐,进而得到朗读的多读、漏读、错读结果。本发明中采用隐马尔可夫模型作为声学模型,不需要模板语音,可大大提高使用的便利性,其性能和运行速度也较好。

著录项

  • 公开/公告号CN101650886A

    专利类型发明专利

  • 公开/公告日2010-02-17

    原文格式PDF

  • 申请/专利号CN200810224792.5

  • 发明设计人 颜永红;董滨;刘常亮;

    申请日2008-12-26

  • 分类号G09B19/06(20060101);G09B7/00(20060101);G10L15/14(20060101);G10L15/18(20060101);

  • 代理机构11318 北京法思腾知识产权代理有限公司;

  • 代理人杨小蓉

  • 地址 100190 北京市海淀区北四环西路21号中国科学院声学研究所

  • 入库时间 2023-12-17 23:31:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-05-18

    授权

    授权

  • 2010-04-21

    实质审查的生效 IPC(主分类):G09B19/06 申请日:20081226

    实质审查的生效

  • 2010-02-17

    公开

    公开

说明书

技术领域

本发明属于计算机辅助语言教学领域,具体的说,本发明涉及一种自动检测语言学习者朗读语音中的朗读错误的方法。

背景技术

在计算机辅助语言教学中,能够自动检测用户朗读语音中的错误并及时给予反馈是至关重要的一个部分。在语言朗读学习中,对词或字的多读、漏读、错读是学习者最容易出现的朗读错误。以往的检测方法通常是将用户语音与标准语音进行模板匹配,进而检测出朗读错误的位置。标准语音通常是事先录制好的老师的语音。这种方法最大的缺点是需要标准语音作为模板,学习材料不能随意更换,在实际应用中,非常的不方便。

基于隐含马尔可夫模型的自动语音识别技术的发展给计算机辅助语言教学提供了一种新的发展道路。自动语音识别技术通过对大量的语音数据进行统计分析,构建出符合语音特征的声学模型;识别过程中,语音识别解码单元根据声学模型在一个有限的搜索空间中找到一条与实际语音最为匹配的一条路径,即语音的识别结果。一般意义上的语音识别技术解决的是将语音转化成文字的问题,其最终的输出结果是一个文字序列。在这里,语音的内容是完全未知的,因此它一般采用很大的词表和通用的语言模型来包含尽可能多的候选项。对于朗读错误检测的任务,其要解决的是检测用户语音与参考答案是否匹配的问题,其最终的输出结果是一个朗读错误的位置和类型信息。这时,用户朗读的内容是已知的,因此,通常的语音识别方法在这里并不适合。基于此,本发明提供了一种自动检测语言学习者朗读错误的方法。

发明内容

本发明的目的在于提供一种自动检测语言学习者朗读错误的方法。该方法以基于隐马尔可夫模型的自动语音识别技术为基础,提出了一种用于自动检测语言学习者朗读语音中的多读、漏读和错读的新方法。该方法不需要老师的标准语音作为模板,大大提高实际应用的便利性。

为实现上述发明目的,本发明提供的检测朗读错误的方法包含如下几个步骤:

1)前端处理:对输入语音进行预处理,提取MFCC特征。

2)构建精简搜索空间:根据参考答案(即用户所要朗读的内容)、发音字典、多发音模型和声学模型构建精简的搜索空间,。

3)构建朗读语言模型:根据参考答案构建用户的朗读语言模型,该语言模型描述了用户在朗读该参考语句的时候可能朗读的上下文内容及其概率信息。

4)搜索:在搜索空间中,根据声学模型、朗读语言模型和多发音模型搜索得到与输入的特征矢量流最匹配的一条路径,作为用户的实际朗读结果内容,即识别结果序列。在搜索过程中,每个词W的似然概率由以下公式计算:

P(W|O)=P(O|V)·P(V|W)·P(W)

其中,O是当前输入的特征矢量,P(W)是当前词W的语言模型概率,P(V|W)是当前词W的某个发音V的概率,P(O|V)是特征矢量O在发音V上的声学模型概率。

5)对齐:将参考答案与识别结果进行对齐,得到用户多读、漏读、错读的检测结果。

上述技术方案中,所述步骤2)进一步包括如下步骤:

a)将用户所要朗读的内容作为参考答案,并对参考答案进行分词;

b)对每个词,根据其发音字典和多发音模型,找到其所有可能的发音,构建成词网络,并加入一个filler发音;

c)根据发音字典,将上述词网络中的每个词展开成音素序列,构成一个音素网络;

d)将每个音素再转换成对应的隐马尔可夫模型,每个马尔可夫模型由若干个状态构成;

e)经过前向和后向的合并,最终形成精简的状态网络。

其中,上述步骤b)中的多发音模型描述每个词可能的发音以及相应的概率P(V|W),是通过收集大量的朗读语料,由专家对这些数据进行实际发音的标注,将标注与参考答案通过动态规划算法对齐,通过如下公式计算每个字的每个发音的概率:

P(V|W)=N(W,V)N(W)

其中,N(W)是语料中出现的词W的数目,N(W,V)是其发音被标注为V的W的数目。

上述技术方案中,所述步骤3)所提到的语言模型是一个二元因子的语言模型,其描述了当前的词W1跳转到词W2的概率,W1和W2都是参考答案中的词或者filler。这个语言模型规定,当前词跳转到下一个正确的词的概率为P,跳转到参考答案中的其他的词或者filler的概率为(P-1)/N,N为参考答案中的总的词数。

上述技术方案中,所述步骤4)所采用到的搜索算法为Viterbi搜索算法。

上述技术方案中,所述步骤5)所提到对齐方法采用动态规划对齐的方法。

本发明的自动检测语言学习者朗读错误的方法的有益效果在于,其与现有的采用老师的标准语音与学习者的朗读语音进行模板匹配来检测朗读错误的方法相比,其采用隐马尔可夫模型作为声学模型,不再需要模板语音,因此,学习材料可随意更换,不再需要对每一句学习材料录制标准模板语音。而且,基于统计的隐马尔可夫声学模型采用大规模的语音语料训练而成,最大程度上消除了对单个模板语音的依赖,其鲁棒性要远远高于模板匹配的方法,可大大提高朗读检测的客观性和准确性。

附图说明

图1是本发明的自动检测语言学习者朗读错误方法的流程图。

图2是本发明的方法中所使用多发音模型的一个示例。

图3是本发明的方法中词网络的示意图。

图4是本发明的方法中一个词节点转化成状态节点序列的示意图。

图5是本发明的方法中所使用的精简搜索空间(状态网络)的示意图。

图6是本发明的方法中所使用的朗读语言模型的示意图。

具体实施方式

下面结合附图及具体实施例对本发明做进一步描述:

实施例

图1是本发明的检测朗读错误的方法的流程图。如图1所示,本发明提供的检测朗读错误的方法包括如下步骤:

1)前端处理:对输入语音进行预处理,进行特征提取;

在一个实施例中,将输入数据进行16K采样率数字化(此处也可采用其他的采样率,比如,8K,32K等等),并进行预加重、分帧、加窗处理,对每一帧提取MFCC(mel-frequency cepstral coefficient)特征矢量及两阶差分矢量。

2)构建精简搜索空间:将用户所要朗读的内容作为参考答案,并根据参考答案、发音字典、多发音模型和声学模型构建精简的搜索空间;例如,具体包括如下步骤:

a)将用户所要朗读的内容作为参考答案,并对参考答案进行分词。

b)对每个词,根据其发音字典和多发音模型,找到其所有可能的发音,构建成如图3所示的词网络,并加入一个filler发音。

c)根据发音字典,将图3的词网络中的每个词展开成音素序列,构成一个音素网络。

d)将每个音素再转换成对应的隐马尔可夫模型(HMM),每个马尔可夫模型由若干个状态构成。这里,将词转化成状态的过程如图4所示。

e)经过前向和后向的合并,如图5所示,最终形成一个精简的高效的状态网络。

上述步骤b)中所提到的多发音模型描述了每个词可能的发音以及相应的概率P(V|W),是根据事先收集的朗读语料统计得到,反映了某一地区或某一群体经常发生的发音错误的分布情况。其简单示例如图6所示。每个词有多个发音,每个发音有相应的概率。比如“长”有两个发音“chang2”和“zhang3”,每个发音的概率分别为0.59和0.41。多发音模型是事先训练好的,其训练方法为:收集大量的朗读语料,由专家对这些数据进行实际发音的标注,将标注与参考答案通过动态规划算法对齐,通过如下公式计算每个字的每个发音的概率:

P(V|W)=N(W,V)N(W)

其中,N(W)是语料中出现的词W的数目,N(W,V)是其发音被标注为V的W的数目。

上述步骤b)中所提到的词网络如图3所示,其每一条边都代表了参考答案中的某个词的某个发音。它是一个可循环的网络,表示用户可以随意朗读其中的词所构成的句子。为了能够识别出用户所朗读的参考答案之外的内容,一个特殊的发音——filler也被加入到这个搜索空间中。filler是声学模型中的一个特殊的发音模型,它由所有发音的语料数据综合训练而成,通常用来解决语音中的集外词(OOV)问题。

3)构建朗读语言模型:根据参考答案构建用户的朗读语言模型,该语言模型描述用户在朗读该参考语句的时候可能朗读的上下文内容及其概率信息;

这里的语言模型是一个二元因子的语言模型,其描述了当前的词W1跳转到词W2的概率,W1和W2都是参考答案中的词或者filler。这个语言模型规定,当前词跳转到下一个正确的词的概率为P,跳转到参考答案中的其他的词或者filler的概率为(P-1)/N,N为参考答案中的总的词数。

例如,朗读语言模型按照图6的模式构建,图6给出了“欢”字向其他字的跳转概率,其跳到正确的下一个字“迎”的概率是P,跳转到其他字的概率为(1-P)/N。P可以调节对朗读错误检测的漏检率和虚警率,其可根据实际应用场景凭经验设定,或者由一批训练数据训练得到。在我们系统中,P=0.8。

4)搜索:在搜索空间中,根据声学模型、朗读语言模型和多发音模型搜索得到与输入的特征矢量流最匹配的一条路径,作为用户的实际朗读结果内容,即识别结果序列,

例如,本系统采用Viterbi的算法,对每一帧语音特征矢量,计算其在每一个状态上的声学似然概率p(xt/sj),此似然概率和状态转移概率的累积构成了每个词的声学似然概率P(O|V),声学似然概率和发音概率以及语言模型概率的累积构成了一个词的总的似然概率,在搜索过程中,每个词W的似然概率由以下公式计算:

P(W|O)=P(O|V)·P(V|W)·P(W)

其中,O是当前输入的特征矢量,P(W)是当前词W的语言模型概率,P(V|W)是当前词W的某个发音V的概率,P(O|V)是特征矢量O在发音V上的声学模型概率;

Viterbi算法寻找似然概率累积最高的词序列,作为最终的识别结果。因为最终目的是要检测朗读错误,因此这里的识别结果将是以发音序列的形式来表示,而非一般语音识别中的词序列。

5)对齐:将所述参考答案与识别结果进行对齐,得到用户多读、漏读、错读的检测结果。

这里,将识别结果发音序列与参考答案的发音序列进行对齐,采用的是动态规划(Dynamic Programming)的对齐方法。对齐以后,多读、漏读和错读的信息即可以通过对齐过程中的插入、删除、替代信息得到。

检测试验:

使用一个1300名香港学生朗读普通话的数据集对本发明所提出的朗读错误检测方法进行了实验。在这个数据集中,每个学生朗读一段约350字的短文。这些数据由专家标注其实际读音,由汉语拼音来表示。整个数据集被分成两个部分,900人的数据用于训练上述步骤2)所提到的多发音模型;另外400人的数据用来评估朗读错误检测的性能。性能指标由漏检率DER(Detection Error Rate)和虚警率FAR(FalseAlarm Rate)来表示。DER代表未被检测出来的朗读错误与所有的朗读错误的比值;FAR代表被误检测为朗读错误的正确的音节与所有正确朗读的音节的比值。试验中所采用的声学模型包含5100个状态,每个状态由48个高斯分量构成。

实验结果如下表所示

  漏检率(DER)  虚警率(FAR)  37.04%  11.37%

在CPU为奔腾3.0G,内存2G的计算机上测试实时率约0.4倍实时。

通过上述试验结果,可以看出检测的准确率基本可以达到一般的使用要求,其运行速度也满足用于实时检测的需求。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号