中小學AI 素養 – 生活中用的人工智慧語音及翻譯系統(I)


前言(ref)

動動嘴巴,手機語音助理服務,就能讓手機言聽計從,機器可以把聽到的一段聲音訊號變成文字,就是語音辨識。再來讓機器能夠理解文字的內容。機器的學習從詞彙的理解開始。用Word Embedding讓機器去閱讀文本,透過上下文之間的關係來推論出每個詞彙之間的意義。讓機器讀越多的書,機器就越能理解這些詞彙之間的關係,猜出他們代表什麼意思。


語音辨識(speech recognition)技術,也被稱為自動語音辨識英語:Automatic Speech Recognition, ASR)、電腦語音識別英語:Computer Speech Recognition)或是語音轉文字識別(英語:Speech To Text, STT,其目標是以電腦自動將人類的語音內容轉換為相應的文字。與說話人辨識說話人確認不同,後者嘗試辨識或確認發出語音的說話人而非其中所包含的詞彙內容。

語音辨識技術的應用包括語音撥號、語音導航、室內裝置控制、語音文件檢索、簡單的聽寫資料錄入等。語音辨識技術與其他自然語言處理技術如機器翻譯語音合成技術相結合,可以構建出更加複雜的應用,例如語音到語音的翻譯。[1]

語音辨識技術所涉及的領域包括:訊號處理圖形辨識概率論資訊理論、發聲機理和聽覺機理、人工智慧等等。

歷史

早在電腦發明之前,自動語音辨識的設想就已經被提上了議事日程,早期的聲碼器可被視作語音辨識及合成的雛形。而1920年代生產的"Radio Rex"玩具狗是最早的語音辨識器,當這隻狗的名字被呼喚的時候,它能夠從底座上彈出來。最早的基於電腦的語音辨識系統是由AT&T貝爾實驗室開發的Audrey語音辨識系統,它能夠辨識10個英文數位。其辨識方法是跟蹤語音中的共振峰。該系統得到了98%的正確率。到1950年代末,倫敦學院(Colledge of London)的Denes已經將語法概率加入語音辨識中。

1960年代,人工神經網路被引入了語音辨識。這一時代的兩大突破是線性預測編碼Linear Predictive Coding (LPC), 及動態時間規整Dynamic Time Warp技術。

語音辨識技術的最重大突破是隱含馬爾科夫模型Hidden Markov Model的應用。從Baum提出相關數學推理,經過Rabiner等人的研究,卡內基梅隆大學李開復最終實現了第一個基於隱馬爾科夫模型的大詞彙量語音辨識系統Sphinx。此後嚴格來說語音辨識技術並沒有脫離HMM框架。

儘管多年來研究人員一直嘗試將「聽寫機」推廣,語音辨識技術在目前還無法支援無限領域,無限說話人的聽寫機應用。

模型

目前,主流的大詞彙量語音辨識系統多採用統計圖形辨識技術。典型的基於統計圖形辨識方法的語音辨識系統由以下幾個基本模組所構成:

訊號處理及特徵提取模組。該模組的主要任務是從輸入訊號中提取特徵,供聲學模型處理。同時,它一般也包括了一些訊號處理技術,以儘可能降低環境雜訊、通道、說話人等因素對特徵造成的影響。

聲學模型。典型系統多採用基於一階隱馬爾科夫模型進行建模。

發音詞典。發音詞典包含系統所能處理的詞彙集及其發音。發音詞典實際提供了聲學模型建模單元與語言模型建模單元間的對映。

語言模型。語言模型對系統所針對的語言進行建模。理論上,包括正規語言,上下文無關文法在內的各種語言模型都可以作為語言模型,但目前各種系統普遍採用的還是基於統計的N元文法及其變體。

解碼器。解碼器是語音辨識系統的核心之一,其任務是對輸入的訊號,根據聲學、語言模型及詞典,尋找能夠以最大概率輸出該訊號的詞串。

系統構成

聲學特徵

聲學特徵的提取與選擇是語音辨識的一個重要環節。聲學特徵的提取既是一個資訊大振幅壓縮的過程,也是一個訊號解卷過程,目的是使圖形劃分器能更好地劃分。

由於語音訊號的時變特性,特徵提取必須在一小段語音訊號上進行,也即進行短分時析。這一段被認為是平穩的分析區間稱之為影格,影格與影格之間的偏移通常取影格長的1/2或1/3。通常要對訊號進行預加重以提升高頻,對訊號加窗以避免短時語音段邊緣的影響。

中文聲學特徵

以普通話發音為例,我們會將一個字的發音切割成兩個部分,分別是聲母(initials)與韻母(finals)。而在發音的過程之中,聲母轉變至韻母是一個漸進而非瞬間的改變,因此我使用右文相關聲韻母圖形(Right-Context-Dependent Initial Final, RCDIF)作為分析方法,可以更精準的辨識出正確的音節(syllable)。

而根據聲母的不同特徵,又可以將聲母分為下面四類:

左:ㄅ之時頻圖 右:ㄆ之時頻圖

發音時嘴唇緊閉後,吐出氣流製造出類似爆破的聲音。其聲音震幅變化會先降至極小值後(代表嘴唇緊閉)後在急劇上升,而端視是否有持續送氣,倘若有持續送氣(aspirated),則震幅可能會有另一個波峰,若無(un-aspirated )則在波峰之後,震幅將有所下降。如:ㄆ與ㄅ便是前述的關係,ㄆ有持續送氣,而ㄅ則無。右圖左為ㄅ,右圖右為ㄆ。

發音時,舌頭緊貼硬顎,形成狹窄的通道,氣流通過時造成湍流發生摩擦,由此發出聲響。由於摩擦音是透過穩定輸出氣流,使得聲音震幅變化相較於爆破音變化振幅較小。如ㄏ、ㄒ 等皆為摩擦音。

此類型的發聲模型兼具爆破音與摩擦音的發聲特性。其主要發聲構造如同摩擦音是由舌頭緊貼硬顎使氣流通過時產生摩擦的聲音。而其通道更加緊密,使得氣流會在瞬間衝出,產生出如同爆破音般的特徵。如:ㄑ 、ㄔ等。

鼻音(ㄋ)之特徵

發音時,軟顎會下壓,下壓後,由氣管吐出的氣流被阻塞,無法進入口腔,因而轉往鼻腔。也因此鼻腔與口腔會產生共振,如右圖的時頻譜上可以明顯地看到零點(formants)分布有共振的現象,而這樣的共振現象在右文相關聲韻母圖形(Right-Context-Dependent Initial Final, RCDIF)下與韻母倆相對較下更加明顯。因此,此一現象可作為辨識鼻音(Nasal)的重要依據之一。右圖便為鼻音ㄋ之特徵,其中紅點便為零點(formants)

而韻母又有雙母音、單母音之分,端視再發生時是否有音調的改變。而根據聲帶振動與否,又分為清音(unvoiced:聲帶不震動)等差異,以上發音時不同的方式,在時頻圖上大多可以找到相對應的特徵,透過處理二維的時頻圖,藉由傳統影像處理的方式,達到語音辨識的目的。

聲學模型

主條目:聲學模型

語音辨識系統的模型通常由聲學模型和語言模型兩部封包成,分別對應於語音到音節概率的計算和音節到字概率的計算。本節和下一節分別介紹聲學模型和語言模型方面的技術。

英語的上下文相關建模通常以音素為基元,由於有些音素對其後音素的影響是相似的,因而可以通過音素解碼狀態的群集進行模型參數的共用。群集的結果稱為senone。決策樹用來實現高效的triphone對senone的對應,通過回答一系列前後音所屬類別(元/輔音、清/濁音等等)的問題,最終確定其HMM狀態應使用哪個senone。分類回歸樹CART模型用以進行詞到音素的發音標註。


// STEAMCourses 課程介紹:

當AI 進入 Scratch

•生活 AI

•創意 AI

•Scratch

•Scratch 的智能語音

•Scratch 的智能翻譯

•做個 Scratch 多語系專家系統(智能導覽)

•視覺辨識

•人臉辨識

•車牌辨識

•文字辨識

// STEAMCourses 課程介紹 end


語言模型

主條目:語言模型

語言模型主要分為規則模型統計模型兩種。統計語言模型是用概率統計的方法來揭示語言單位內在的統計規律,其中n元語法簡單有效,被廣泛使用。

n元語法:該模型基於這樣一種假設,第n個詞的出現只與前面N-1個詞相關,而與其它任何詞都不相關,整句的概率就是各個詞出現概率的乘積。這些概率可以通過直接從語料中統計N個詞同時出現的次數得到。由於計算量太大,N一般取值不會很大,常用的是二元語法(Bi-Gram)和三元語法(Tri-Gram)。

語言模型的效能通常用交叉和複雜度(Perplexity)來衡量。交叉熵的意義是用該模型對文字辨識的難度,或者從壓縮的角度來看,每個詞平均要用幾個位來編碼。複雜度的意義是用該模型表示這一文字平均的分支數,其倒數可視為每個詞的平均概率。平滑是指對沒觀察到的N元組合賦予一個概率值,以保證詞序列總能通過語言模型得到一個概率值。通常使用的平滑技術有圖靈估計、刪除插值平滑、Katz平滑和Kneser-Ney平滑。

系統實現

語音辨識系統選擇辨識基元的要求是,有準確的定義,能得到足夠資料進行訓練,具有一般性。英語通常採用上下文相關的音素建模,漢語的協同發音不如英語嚴重,可以採用音節建模。系統所需的訓練資料大小與模型複雜度有關。模型設計得過於複雜以至於超出了所提供的訓練資料的能力,會使得效能急劇下降。

聽寫機:大詞彙量、非特定人、連續語音辨識系統通常稱為聽寫機。其架構就是建立在前述聲學模型和語言模型基礎上的HMM拓撲結構。訓練時對每個基元用前向後向演算法獲得模型參數,辨識時,將基元串接成詞,詞間加上靜音模型並引入語言模型作為詞間轉移概率,形成迴圈結構,用Viterbi演算法進行解碼。針對漢語易於分割的特點,先進行分割再對每一段進行解碼,是用以提高效率的一個簡化方法。

對話系統:用於實現人機口語對話的系統稱為對話系統。受目前技術所限,對話系統往往是面向一個狹窄領域、詞彙量有限的系統,其題材有旅遊查詢、訂票、資料庫檢索等等。其前端是一個語音辨識器,辨識產生的N-best候選或詞候選網格,由語法分析器進行分析取得語意資訊,再由對話管理器確定應答資訊,由語音合成器輸出。由於目前的系統往往詞彙量有限,也可以用提取關鍵詞的方法來取得語意資訊。

自適應與強健性

語音辨識系統的效能受許多因素的影響,包括不同的說話人、說話方式、環境噪音、傳輸通道等等。提高系統強健性,是要提高系統克服這些因素影響的能力,使系統在不同的應用環境、條件下效能穩定;自適應的目的,是根據不同的影響來源,自動地、有針對性地對系統進行調整,在使用中逐步提高效能(其中以李開復博士的不特定語音辨識系統為例)。以下對影響系統效能的不同因素分別介紹解決辦法。

解決辦法按針對語音特徵的方法(以下稱特徵方法)和模型調整的方法(以下稱模型方法)分為兩類。前者需要尋找更好的、高強健性的特徵參數,或是在現有的特徵參數基礎上,加入一些特定的處理方法。後者是利用少量的自適應語料來修正或變換原有的說話人無關(SI)模型,從而使其成為說話人自適應(SA)模型。

說話人自適應的特徵方法有說話人規一化和說話人子空間法,模型方法有貝葉斯方法、變換法和模型合併法。

語音系統中的雜訊,包括環境雜訊和錄音過程加入的電子雜訊。提高系統魯棒性的特徵方法包括語音增強和尋找對雜訊干擾不敏感的特徵,模型方法有並列模型組合PMC方法和在訓練中人為加入雜訊。通道畸變包括錄音時話筒的距離、使用不同靈敏度的話筒、不同增益的前置放大和不同的濾波器設計等等。特徵方法有從倒譜向量中減去其長時平均值和RASTA濾波,模型方法有倒譜平移。

最大後驗概率

主條目:最大後驗概率

最大後驗機率估計是後驗機率分布的眾數。利用最大後驗機率估計可以獲得對實驗資料中無法直接觀察到的量的點估計。它與最大似然估計中的經典方法有密切關係,但是它使用了一個增廣的最佳化目標,進一步考慮了被估計量的先驗機率分布。所以最大後驗機率估計可以看作是規則化的最大似然估計。

以此為基礎的自適性方法有以下特性:

  • 越大的調整測資(adaptation data)可以讓結果越接近理想的客製化模型
  • 當調整測資(adaptation data)不足時,無法顯著提升模型的精準度

最大似然線性回歸

最大似然線性回歸(Maximum Likelihood Linear Regression(MLLR) )是一種基於詞網的最大似然線性回歸(Lattice-MLLR)無監督自適應演算法,並進行了改進。是一種基於變換的方法,對資料量依賴較小,常用於資料量較少的情況或進行快速自適應。

一種基於詞網的最大似然線性回歸(Lattice-MLLR)無監督自適應演算法,並進行了改進。 Lattice-MLLR是根據解碼得到的詞網估計MLLR變換參數,詞網的潛在誤識率遠小於識別結果,因此可以使參數估計更為準確。 Lattice-MLLR的一個很大的缺點是計算量極大,較難實用。MLLR 是一種基於變換的方法,對資料量依賴較小,常用於資料量較少的情況或進行快速自適應。

以此為基礎的自適性方法有以下特性:

  • 在少量的調整測資(adaptation data)可以顯著提升模型的精準度
  • 當調整測資(adaptation data)達到一定量後,精準度的提升會進入飽和狀態,有明顯的效率上界

而最大似然線性回歸(Maximum Likelihood Linear Regression(MLLR) )也有許多變形。其中區段對角最大似然線性回歸(block-diagonal Maximum Likelihood Linear Regression(MLLR))可以再更少量的調整測資下提升更大的精準度,然而其進入準度的飽和狀態也更快,精準度上限也更低。

綜合以上,端視調整測資(adaptation data)的多寡,可以選擇適當的方法,讓模型的精準度最高。

參考文獻[編輯]

  • ^ 語音輸入法
  • ^ 5.1 Automatic Speech Recognition (ASR) History, www.icsi.berkeley.edu/eecs225d/spr95/lecture05.ps....
  • ^ Davis, Biddulph and Balashek Automatic Recognition of Spoken Digits, Journal of the Acoustical Society of America Vol 24 No 6, November 1952
  • ^ Automatic Speech Recognition: The Development of the Sphinx Recognition System KF Lee, R Reddy - 1988 - Kluwer Academic Publishers Norwell, MA, USA

外部連結[編輯]

  • [1][永久失效連結] - CMU Sphinx 最早的語音辨識軟體
  • [2] - HTK 由劍橋大學開發的一套完備的語音辨識系統
  • simon - 一個開源的語音辨識軟體
  • [3][永久失效連結] - 靈雲開發者社群,提供免費及商用的語音辨識SDK

// STEAMCourses 課程介紹:

當AI 進入 Scratch

•生活 AI

•創意 AI

•Scratch

•Scratch 的智能語音

•Scratch 的智能翻譯

•做個 Scratch 多語系專家系統(智能導覽)

•視覺辨識

•人臉辨識

•車牌辨識

•文字辨識

// STEAMCourses 課程介紹 end

// STEAMKid 實體課程

【AI 創客】Scratch AI & Machine Learning

【文化創客】 博物館文物創客夏令營

// STEAMKid 實體課程

// 相關文章系列

中小學AI 素養 – AI 簡史(I)

中小學AI 素養 – AI 簡史(II)

中小學AI 素養 – 生活中用的人工智慧語音及翻譯系統(I)

中小學AI 素養 – 生活中用的人工智慧語音及翻譯系統(II)

中小學AI 素養 – 生活中用的智慧導航

中小學AI 素養 – 生活中用的智慧視訊偵測


// 相關文章系列