英语学习中的机器学习算法

文章正文
发布时间:2024-12-13 12:08

摘要:所谓口语评分,具体来说就是给定某个句子,让用户进行发音,然后按照一定的标准进行评分。通常来说有两大类评分方法:第一,和某个特定的发音进行比较,和给定发音越相近得分越高;第二,用普适的标准来评价用户发音,即只要用户读的是正确的、地道的,就可以得到高分。

中国有数以亿计的英语学习者,移动互联网已经成为这个产业新的爆发点。口语学习app为学习者提供了一个更加轻松环境和低成本的投入。一方面鼓励用户“大声说出来",一方面为他们提供有效的评分反馈,指出发音中的具体错误,帮助他们进行有针对性的训练。

有道口语大师就是这样一款产品。这个号称最有趣的英语学习APP ,由曾出品过有道词典、有道翻译官的团队倾力打造。上线一个多月,便吸引了超过100万的用户。除了进阶式口语训练体系,游戏化设计萌宠元素受到好评之外,产品如何实现用机器学习的方法来进行口语自动评分,也是用户很关心的问题。

下面有道口语大师技术团队将对口语评分原理进行简单的介绍,以解大家困惑。

评价标准是什么?

所谓口语评分,具体来说就是给定某个句子,让用户进行发音,然后按照一定的标准进行评分。通常来说有两大类评分方法:第一,和某个特定的发音进行比较,和给定发音越相近得分越高;第二,用普适的标准来评价用户发音,即只要用户读的是正确的、地道的,就可以得到高分。我们认为第二种方法是更为准确合理,因为同样的一句话不可能只有单一的正确的读法,而给定的“标准”发音更无法保证是最标准的。发音存在夸张或连读/省略,这就使基于相似度的评分,在很多场景下都存在偏差。所以我们的介绍会围绕第二种评分方法展开,解释其中运用的技术。

从音标到单词

图1 有道口语大师跟读题示例

目前比较流行的口语学习类软件,都会给用户提供单词级别的评分反馈,但事实上,口语评分的内部实现是在比单词更小的单位——音标上进行的。我们在前面提到过,口语评分是将用户的发音和普适的标准比较来进行评价,这个“普适”的标准,是通过对成千上万的标准发音数据进行训练得到的,而音标就是我们训练和比较的单元。为什么选择音标而不是单词呢?首先,对于任何机器学习的算法来说,有足够多的训练样本都是至关重要的;其次,英语中有数十万计的单词,如果选择单词作为评分的单元,我们就需要对每个单词都收集到足够多的样本,这是非常困难的。而音标就不同了,标准的英语国际音标只有48个符号,因而我们只要对每个音标符号收集数据,就可以进行模型的训练了。

强制对齐

接下来的问题就变成了:我们要如何将一个完整的句子划分成音标级别的数据呢?这里我们通常使用的是强制对齐的技术。强制对齐(Forced Alignment),是指给定音频和文本,确定每个单词(音素)的起止位置的过程。如下图所示:我们给定一段波形,并给定该音频对应的文本She had a dark suit in greasy washwater all year. 通过强制对齐,能够得到每个音素(即我们通常所说的音标,使用的符号和标准国际音标略有差别)在原音频中所处的位置。

图2 强制对齐(Forced Alignment)

音频强制对齐的实现中最常用的方法是Viterbi解码,这是一个动态规划的算法。简单来说就是我们将音频切分成一个个长度很短的帧(我们称之为一个采样),帧的长度通常取到5~10ms之间,因为我们认为在这样短的时间内音频的各种特征基本不会发生改变。我们对一个音频的每个采样进行特征抽取,再和标准音标的特征进行相似度计算,用bi(Ot)来表示第t个采样和第i个音标模型的相似度。我们用δt(i)代表在采样t的时刻当前音频到达音标i的最大概率δt(i),则我们可以利用公式,由第t个采样推算出第t+1个时刻的结果δt+1(i)。解码过程中,t从0开始不断递增,直到音频结束,最终得到各个音标i对应的δN(i)。

强制对齐是语音识别的一种特殊的、简化了的情况,由于它的简单性,强制对齐通常具有较高的准确率(音素级别准确率可达90%,单词级别可达95%以上)。使用强制对齐,我们就可以对我们收集到的标准发音的数据进行处理:根据音频和它对应的文本进行强制对齐,得到每个音标对应的片段;对各个音标收集到的样本抽取特征并进行训练。通过对大量数据进行强制对齐,我们对每个音标得到一个模型,该模型将用于后续的打分流程。

语音识别

有了音标的模型,打分的过程就不难想到了。我们将用户的发音也切分成一个一个的音标,再将这每个片段分别和对应的音标模型进行比较,如果该片段表现的特征和我们在标准发音数据上训练得到的特征很相像,那么用户的发音就是地道的、准确的;反之,用户就很可能读错了这个音标。我们将一个单词的各个音标的得分综合起来得到一个单词的得分,再将各个单词的得分总和起来,就得到了整个句子的得分。同时我们通过各个音标的得分,也可以很容易地知道用户的哪些单词可能读错了,进一步将这些信息反馈给用户(如图1所示)。

强制对齐可以达到很高的准确率,但这必须要满足一个前提:我们给定的文本和音频必须是匹配的。具体来说,如果一个用户把I am a student读成了I was a student,我们在处理was所对应的音频片段时,会错误地将它和am对应的音标模型进行比对,那么很可能造成后续的a和student也无法对齐到正确的位置,从而影响打分的准确性。为了避免这样的情况,通常我们在进行强制对齐之前,还会增加一个语音识别的步骤,即先判断用户真正读的句子是什么,再用该结果去进行强制对齐。对上面的例子而言,我们用was对应的音标模型去和was的音频片段进行对比,那么后面的两个单词还是可以得到正确的切分结果。同时我们根据语音识别的结果,又可以发现部分用户读错的单词数据(am->was)并反馈给用户。

1、本文是 芥末堆网原创文章,转载可点击 芥末堆内容合作 了解详情,未经授权拒绝一切形式转载,违者必究;
2、芥末堆不接受通过公关费、车马费等任何形式发布失实文章,只呈现有价值的内容给读者;
3、如果你也从事教育,并希望被芥末堆报道,请您 填写信息告诉我们。

首页
评论
分享
Top