中國(guó)有數(shù)以億計(jì)的英語(yǔ)學(xué)習(xí)者,移動(dòng)互聯(lián)網(wǎng)已經(jīng)成為這個(gè)產(chǎn)業(yè)新的爆發(fā)點(diǎn)。口語(yǔ)學(xué)習(xí)app為學(xué)習(xí)者提供了一個(gè)更加輕松環(huán)境和低成本的投入。一方面鼓勵(lì)用戶“大聲說(shuō)出來(lái)",一方面為他們提供有效的評(píng)分反饋,指出發(fā)音中的具體錯(cuò)誤,幫助他們進(jìn)行有針對(duì)性的訓(xùn)練。
有道口語(yǔ)大師就是這樣一款產(chǎn)品。這個(gè)號(hào)稱最有趣的英語(yǔ)學(xué)習(xí)APP ,由曾出品過(guò)有道詞典、有道翻譯官的團(tuán)隊(duì)傾力打造。上線一個(gè)多月,便吸引了超過(guò)100萬(wàn)的用戶。除了進(jìn)階式口語(yǔ)訓(xùn)練體系,游戲化設(shè)計(jì)萌寵元素受到好評(píng)之外,產(chǎn)品如何實(shí)現(xiàn)用機(jī)器學(xué)習(xí)的方法來(lái)進(jìn)行口語(yǔ)自動(dòng)評(píng)分,也是用戶很關(guān)心的問(wèn)題。
下面有道口語(yǔ)大師技術(shù)團(tuán)隊(duì)將對(duì)口語(yǔ)評(píng)分原理進(jìn)行簡(jiǎn)單的介紹,以解大家困惑。
評(píng)價(jià)標(biāo)準(zhǔn)是什么?
所謂口語(yǔ)評(píng)分,具體來(lái)說(shuō)就是給定某個(gè)句子,讓用戶進(jìn)行發(fā)音,然后按照一定的標(biāo)準(zhǔn)進(jìn)行評(píng)分。通常來(lái)說(shuō)有兩大類評(píng)分方法:第一,和某個(gè)特定的發(fā)音進(jìn)行比較,和給定發(fā)音越相近得分越高;第二,用普適的標(biāo)準(zhǔn)來(lái)評(píng)價(jià)用戶發(fā)音,即只要用戶讀的是正確的、地道的,就可以得到高分。我們認(rèn)為第二種方法是更為準(zhǔn)確合理,因?yàn)橥瑯拥囊痪湓挷豢赡苤挥袉我坏恼_的讀法,而給定的“標(biāo)準(zhǔn)”發(fā)音更無(wú)法保證是最標(biāo)準(zhǔn)的。發(fā)音存在夸張或連讀/省略,這就使基于相似度的評(píng)分,在很多場(chǎng)景下都存在偏差。所以我們的介紹會(huì)圍繞第二種評(píng)分方法展開(kāi),解釋其中運(yùn)用的技術(shù)。
從音標(biāo)到單詞
圖1 有道口語(yǔ)大師跟讀題示例
目前比較流行的口語(yǔ)學(xué)習(xí)類軟件,都會(huì)給用戶提供單詞級(jí)別的評(píng)分反饋,但事實(shí)上,口語(yǔ)評(píng)分的內(nèi)部實(shí)現(xiàn)是在比單詞更小的單位——音標(biāo)上進(jìn)行的。我們?cè)谇懊嫣岬竭^(guò),口語(yǔ)評(píng)分是將用戶的發(fā)音和普適的標(biāo)準(zhǔn)比較來(lái)進(jìn)行評(píng)價(jià),這個(gè)“普適”的標(biāo)準(zhǔn),是通過(guò)對(duì)成千上萬(wàn)的標(biāo)準(zhǔn)發(fā)音數(shù)據(jù)進(jìn)行訓(xùn)練得到的,而音標(biāo)就是我們訓(xùn)練和比較的單元。為什么選擇音標(biāo)而不是單詞呢?首先,對(duì)于任何機(jī)器學(xué)習(xí)的算法來(lái)說(shuō),有足夠多的訓(xùn)練樣本都是至關(guān)重要的;其次,英語(yǔ)中有數(shù)十萬(wàn)計(jì)的單詞,如果選擇單詞作為評(píng)分的單元,我們就需要對(duì)每個(gè)單詞都收集到足夠多的樣本,這是非常困難的。而音標(biāo)就不同了,標(biāo)準(zhǔn)的英語(yǔ)國(guó)際音標(biāo)只有48個(gè)符號(hào),因而我們只要對(duì)每個(gè)音標(biāo)符號(hào)收集數(shù)據(jù),就可以進(jìn)行模型的訓(xùn)練了。
強(qiáng)制對(duì)齊
接下來(lái)的問(wèn)題就變成了:我們要如何將一個(gè)完整的句子劃分成音標(biāo)級(jí)別的數(shù)據(jù)呢?這里我們通常使用的是強(qiáng)制對(duì)齊的技術(shù)。強(qiáng)制對(duì)齊(Forced Alignment),是指給定音頻和文本,確定每個(gè)單詞(音素)的起止位置的過(guò)程。如下圖所示:我們給定一段波形,并給定該音頻對(duì)應(yīng)的文本She had a dark suit in greasy washwater all year. 通過(guò)強(qiáng)制對(duì)齊,能夠得到每個(gè)音素(即我們通常所說(shuō)的音標(biāo),使用的符號(hào)和標(biāo)準(zhǔn)國(guó)際音標(biāo)略有差別)在原音頻中所處的位置。
圖2 強(qiáng)制對(duì)齊(Forced Alignment)
音頻強(qiáng)制對(duì)齊的實(shí)現(xiàn)中最常用的方法是Viterbi解碼,這是一個(gè)動(dòng)態(tài)規(guī)劃的算法。簡(jiǎn)單來(lái)說(shuō)就是我們將音頻切分成一個(gè)個(gè)長(zhǎng)度很短的幀(我們稱之為一個(gè)采樣),幀的長(zhǎng)度通常取到5~10ms之間,因?yàn)槲覀冋J(rèn)為在這樣短的時(shí)間內(nèi)音頻的各種特征基本不會(huì)發(fā)生改變。我們對(duì)一個(gè)音頻的每個(gè)采樣進(jìn)行特征抽取,再和標(biāo)準(zhǔn)音標(biāo)的特征進(jìn)行相似度計(jì)算,用bi(Ot)來(lái)表示第t個(gè)采樣和第i個(gè)音標(biāo)模型的相似度。我們用δt(i)代表在采樣t的時(shí)刻當(dāng)前音頻到達(dá)音標(biāo)i的最大概率δt(i),則我們可以利用公式,由第t個(gè)采樣推算出第t+1個(gè)時(shí)刻的結(jié)果δt+1(i)。解碼過(guò)程中,t從0開(kāi)始不斷遞增,直到音頻結(jié)束,最終得到各個(gè)音標(biāo)i對(duì)應(yīng)的δN(i)。
強(qiáng)制對(duì)齊是語(yǔ)音識(shí)別的一種特殊的、簡(jiǎn)化了的情況,由于它的簡(jiǎn)單性,強(qiáng)制對(duì)齊通常具有較高的準(zhǔn)確率(音素級(jí)別準(zhǔn)確率可達(dá)90%,單詞級(jí)別可達(dá)95%以上)。使用強(qiáng)制對(duì)齊,我們就可以對(duì)我們收集到的標(biāo)準(zhǔn)發(fā)音的數(shù)據(jù)進(jìn)行處理:根據(jù)音頻和它對(duì)應(yīng)的文本進(jìn)行強(qiáng)制對(duì)齊,得到每個(gè)音標(biāo)對(duì)應(yīng)的片段;對(duì)各個(gè)音標(biāo)收集到的樣本抽取特征并進(jìn)行訓(xùn)練。通過(guò)對(duì)大量數(shù)據(jù)進(jìn)行強(qiáng)制對(duì)齊,我們對(duì)每個(gè)音標(biāo)得到一個(gè)模型,該模型將用于后續(xù)的打分流程。
語(yǔ)音識(shí)別
有了音標(biāo)的模型,打分的過(guò)程就不難想到了。我們將用戶的發(fā)音也切分成一個(gè)一個(gè)的音標(biāo),再將這每個(gè)片段分別和對(duì)應(yīng)的音標(biāo)模型進(jìn)行比較,如果該片段表現(xiàn)的特征和我們?cè)跇?biāo)準(zhǔn)發(fā)音數(shù)據(jù)上訓(xùn)練得到的特征很相像,那么用戶的發(fā)音就是地道的、準(zhǔn)確的;反之,用戶就很可能讀錯(cuò)了這個(gè)音標(biāo)。我們將一個(gè)單詞的各個(gè)音標(biāo)的得分綜合起來(lái)得到一個(gè)單詞的得分,再將各個(gè)單詞的得分總和起來(lái),就得到了整個(gè)句子的得分。同時(shí)我們通過(guò)各個(gè)音標(biāo)的得分,也可以很容易地知道用戶的哪些單詞可能讀錯(cuò)了,進(jìn)一步將這些信息反饋給用戶(如圖1所示)。
強(qiáng)制對(duì)齊可以達(dá)到很高的準(zhǔn)確率,但這必須要滿足一個(gè)前提:我們給定的文本和音頻必須是匹配的。具體來(lái)說(shuō),如果一個(gè)用戶把I am a student讀成了I was a student,我們?cè)谔幚韜as所對(duì)應(yīng)的音頻片段時(shí),會(huì)錯(cuò)誤地將它和am對(duì)應(yīng)的音標(biāo)模型進(jìn)行比對(duì),那么很可能造成后續(xù)的a和student也無(wú)法對(duì)齊到正確的位置,從而影響打分的準(zhǔn)確性。為了避免這樣的情況,通常我們?cè)谶M(jìn)行強(qiáng)制對(duì)齊之前,還會(huì)增加一個(gè)語(yǔ)音識(shí)別的步驟,即先判斷用戶真正讀的句子是什么,再用該結(jié)果去進(jìn)行強(qiáng)制對(duì)齊。對(duì)上面的例子而言,我們用was對(duì)應(yīng)的音標(biāo)模型去和was的音頻片段進(jìn)行對(duì)比,那么后面的兩個(gè)單詞還是可以得到正確的切分結(jié)果。同時(shí)我們根據(jù)語(yǔ)音識(shí)別的結(jié)果,又可以發(fā)現(xiàn)部分用戶讀錯(cuò)的單詞數(shù)據(jù)(am->was)并反饋給用戶。
2、芥末堆不接受通過(guò)公關(guān)費(fèi)、車馬費(fèi)等任何形式發(fā)布失實(shí)文章,只呈現(xiàn)有價(jià)值的內(nèi)容給讀者;
3、如果你也從事教育,并希望被芥末堆報(bào)道,請(qǐng)您 填寫(xiě)信息告訴我們。