新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于片上系統SoC的孤立詞語音識別算法設計

        基于片上系統SoC的孤立詞語音識別算法設計

        作者: 時間:2012-04-01 來源:網絡 收藏

        1. 引言

        本文引用地址:http://www.104case.com/article/190560.htm

        目前,嵌入式系統的實現主要通過單片機MCU和數字信號處理器DSP來實現[1]。但是單片機運算速度慢,處理能力不高;雖然DSP處理速度很快,但是產品的成本很高,電源能量消耗也很大。因此,為了滿足嵌入式交互系統的體積越來越小、功能越來越強的苛刻需求,(System on Chip)應運而生。

        本身就是一塊芯片,在單一芯片上集成了模擬語音模數轉換器ADC、數模轉換器DAC、信號采集和轉換、處理器、存儲器和I/O接口等,只要加上極少的電源就可以具有語音識別的功能,集成了聲音信息的采集、取樣、處理、分析和記憶。具有片內處理器和片內總線,有著更靈活的應用方式。它具有速度快,體積小,成本低,可擴展性強等優點,有著廣泛的應用前景,已經成為語音識別技術應用發展的一個重要方向[2-3]。研究和開發應用于SoC芯片的語音識別算法有著非常重要的意義。

        2. 孤立詞語音識別系統

        孤立詞語音識別系統應用于嵌入式控制領域,例如數字家庭控制、車載語音控制和智能語音可控玩具等。在訓練階段,用戶將每一個詞依次說一遍,并將計算得到的每一個詞所對應的特征矢量序列作為模板存入模板庫中。在識別階段,將輸入語音的特征矢量序列依次與模板庫中的每一模板進行相似度比較,將相似度最高者作為識別結果輸出。

        3. 針對片上系統SOC的孤立詞語音識別

        在SoC芯片中實現孤立詞語音識別系統,就要根據語音識別片上系統的特點,來進行SoC的語音識別算法的選擇和設計。

        首先是特征提取算法的選擇。MFCC算法考慮到了人的聽覺效果,能很好的表征語音信號,而且在噪聲環境下能取得很好的識別效果。而LPC系數主要是模擬人的發聲模型,對元音有較好的的描述能力,對輔音描述能力較差,抗噪聲性能也相對差一些。但是從算法的計算量來考慮,MFCC提取特征參數是LPCC 的10倍左右,通常在嵌入式系統下較難實現實時性。因此,選用LPCC算法。

        模式匹配技術的選擇。隱馬爾柯夫模型HMM方法是用概率及統計學理論來對語音信號進行分析與處理的,適用于大詞匯量、非特定人的語音識別系統。該算法對系統資源的要求較多。而動態時間規整技術DTW采用模板匹配法進行相似度計算,是一個最為小巧的語音識別算法,系統開銷小,識別速度快,可有效節約系統資源,降低系統成本開支。由于嵌入式系統資源有限,語音命令識別系統所需要的詞匯量有限,所需識別的語音都是簡短的命令,模式匹配算法選擇DTW。

        3.1 端點檢測

        一個好的端點檢測算法可以在一定程度上提高系統的識別率。在雙門限端點檢測原理的基礎上,進行語音端點檢測算法的設計。為了提高端點檢測的精度,采用短時能量E和短時過零率ZCR。

        語音采樣頻率為8KHz,量化精度為16位,數字PCM碼首先經過預加重濾波器H(z)=2-0.95z-1,再進行分幀和加窗處理,每幀30ms,240點為一幀,幀移為80,窗函數采用Hamming窗。然后對每幀語音進行歸一化處理,即把每點的值都除以所有語音幀中數值絕對值的最大值,把值的范圍從[-32767,32767]轉換到[-1,1]。

        在實驗中發現,雙門限端點檢測算法對于兩個漢字和三個漢字的語音命令端點檢測效果不好。以語音“開燈”為例,如圖1所示語音波形圖中,端點檢測只能檢測到第一個字。

        5.jpg
        圖1 改進前對語音“開燈”的端點檢測

        Fig2. the endpointing detection of speech “kaideng” before ameliorate

        如果語音命令中兩個字的間隔過長,使用雙門限端點檢測方法會發生只檢測到第一個字的情況,在實際中“開燈”和“開門”等命令只提取了“開”字的語音,從而可能造成語音匹配的錯誤。

        為避免該錯誤,采用的辦法是,把可容忍的靜音區間擴大到15幀 (約150ms)。在雙門限的后一門限往后推遲15幀,如15幀內一直沒有energy和ZCR超過最低門限,則認為語音結束;如發現仍然有語音,則繼續算入在內。

        6.jpg
        圖2 改進后對語音“開燈”的端點檢測

        Fig3. the endpointing detection of speech “kaideng” after ameliorate

        改進后,整個語音信號的端點檢測流程設計為四個階段:靜音、過渡段、語音段和語音結束。在靜音段,如果能量或過零率超越了低門限,就應該開始標記起始點,進入過渡段。在過渡段中,由于參數的數值比較小,不能確信是否處于真正的語音段,因此只要兩個參數的數值都回落到低門限以下,就將當前狀態恢復到靜音狀態。而如果在過渡段中兩個參數中的任一個超過了高門限,就可以確信進入語音段。在語音段,如果兩個參數的數值降低到低門限以下,并且一直持續15幀,那么語音進入停止。如果兩個參數的數值降低到低門限以下,但是并沒有持續到 15幀,后續又有語音段越過低門限,那么認為語音還沒有結束。最后,如果檢測出的這段語音總長度小于可接受的最小的語音幀數(設為15幀),則認為是一段噪音而放棄。

        采用改進后的端點檢測算法,對于單個漢字或多個漢字的語音命令均識別常。圖2為語音“開燈”的端點檢測圖(兩條紅線以內的部分為檢測出來的語音部分)。


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 栾城县| 鄄城县| 廊坊市| 额敏县| 华容县| 正宁县| 昌黎县| 高尔夫| 集贤县| 临沧市| 徐闻县| 班玛县| 安仁县| 广丰县| 图片| 陆丰市| 五大连池市| 修文县| 双城市| 咸阳市| 抚州市| 屏东县| 仪征市| 梁山县| 清镇市| 扎兰屯市| 隆安县| 淳化县| 霍城县| 尼勒克县| 乐亭县| 河北区| 泾源县| 延安市| 靖州| 台南市| 紫金县| 灌南县| 天水市| 林西县| 丰宁|