• 沒有找到結果。

語音訊號的前置處理並求取語音的參數,將聲音做『數位信號處理(Digit Signal Processing.DSP)』將類比訊號轉為數位,方便電腦的讀取。

因為每個人輸入的聲音大小不同。為了使聲音大小都在同一範圍內做比較,所以將聲音 做『標準化(Normalize)』,使信號的取樣值都落在同一範圍內。

切『音框』:因為聲音屬於時變的訊號,不過在『短時間』內的變化是緩慢的 ,所以若 將整段語音做切割的動作,使語音變成一小段、一小段,那麼就可以擷取到語音的所有 特性,這種每一小段稱為『音框(frame)』。取音框時,音框彼此可以重疉,取樣點數 也可自訂,我們這邊取10ms 為一音框長度。

聲音輸入的過程中,因為種種因素造成語音的前後會有靜音出現。這些靜音對於語音的 辨識不但沒有幫助,而且也會增加許多不需要的計算,使得辨識速度變慢,所以我們使 用『能量偵測法』來切除靜音的部份,藉以得到有效的資料值。

圖 1: 切取音框示意圖

『端點偵測』(End-Point Detection):聲音輸入的過程中,因為種種因素造成語音的 前後會有靜音出現。這些靜音對於語音的辨識不但沒有幫助,而且也會增加許多不需要 的計算,使得辨識速度變慢,所以我們必須要切除不需要的部分藉以得到有效的資料 值。我捫利用語音的特性來做端點的偵測的模擬。由「音量」與「音高」著手,使用「能 量偵測法」為主「越零率」為輔的方法,來切除靜音的部份,藉以得到有效的資料值。

以下是我們的分析比較:

音量,代表聲音的強度、能量(Energy),可以由音框內的訊號振幅大小來表示。如圖2。

圖 2:原始聲音訊號

一般而言,語音的特性,有聲音的音量大於氣音的音量,而氣音的音量又大於雜訊 的音量。我們就是利用這個語音特性來設計「能量偵測分析器」的端點偵測。訂「門檻」

來做有聲和無聲的區隔,當一音框能量大於門檻值為「有聲訊號」,反之則為「氣音」

或「雜訊」。

圖 3:MATLAB/Simulink 方塊圖

越零率(Zero Crossing Rate),指在每個音框中,音訊通過零點的次數,可以代表聲 音的頻率。如下圖,越零率=8。

圖 4:越零率=8

一般而言,語音的特性,雜訊及氣音的越零率均大於有聲語音。我捫利用這個語音 特性來設計「越零率」的端點偵測。也是利用門檻值的方法來做有聲無聲的區隔。當一 音框的越零率低於門檻值為「有聲訊號」,反之則為「氣音」或「雜訊」。而在模擬軟體 matlab/simulink 中我捫利用這個概念設計門檻值=3 的越零率之偵測器如下圖 5。

圖 5::MATLAB/Simulink 方塊圖

『預強調(pre-emphasis)』。因為根據研究聲音從嘴巴說出來後會有高頻的損失,

所以使用遇強調來還原語音。

『加窗』。將切出來的全部音框做加窗動作,也就是每個音框都乘上一個視窗函數,

乘上函數後,每一個音框在頻譜上的能量會更集中,語音的特徵也能更明顯,我們使用 的是『漢明視窗』。下圖6 為語音訊號前處理的流程圖。

圖 6:前置處理流程圖

完成上述1~6 處理的工作後,就可以開始求取『特徵參數』 我們將對四種求取的 方法(線性預估編碼(LPC)、線性預估編碼導出的倒頻譜參數(LPCC)、梅爾倒頻譜 參數(MFCC)和共振峰(Formant)做比較,選出較好的參數來進行後續辯識的工作。

倒頻譜(cepstrum)顧名思義,就是將頻譜(spectrum)的英文前四個字母反過來

線性預估編碼(linear predictive coding-LPC)

「線性預估編碼」在語音辨識上,已經被研究多年,從人的發聲構造入手,認為聲道模

際語音的採樣值和線性預測採樣值之間達到均方差(LMS)最小,即可得到線性預估係

梅爾倒頻譜參數(mel-frequency cepstrum coefficient - MFCC)

梅爾頻率倒頻譜是倒頻譜的一種應用,梅爾頻率倒頻譜常應用在聲音訊號處理,對於聲

圖11:MFCC 模擬方塊圖 共振峰參數(Formant)

「共振峰」一般語音訊號的母音部分,都會出現重複性很高的基本週期,在一個基本週 期內的波形,就是代表語音的內容或音色。一般來說,頻譜能量的個數仍然太多,因此 一個簡單的方式,是採用頻譜能量圖的局部最大點,稱為共振峰(Formants),來作為語 音特徵。下圖12 為本人念數字「一」之共振峰的 f1 f2 f3 頻段分佈情形。

圖12:本人單音「1」共振峰的頻段 f1 f2 f3 分布圖

相關文件