張云翔,李智誠
(深圳供電局有限公司,深圳 518001)
隨著智能電網的高速發展,電網業務中對語音識別的需求也在不斷增加。與眾多現有行業相同,電力行業有其特定的專業信息,例如:簡寫詞匯、名字、系統名稱等[1]。然而在利用面向公共領域的語音識別技術進行語音識別轉化時,這些專業信息詞匯很難被識別,使得電力行業語音的識別準確率不高,這也影響了電網系統中各項業務和服務的效率和成本。因此,研究面向電力行業的語音識別技術,實現針對智能電網的語音信息識別和處理是十分有必要的。
語音識別技術,又名自動語音識別(Automatic Speech Recognition,ASR),指的是將人類所述的語音信號轉化為計算機可以識別讀取的輸入信息或是相應的文本[2]。它屬于自然語言處理(NLP)的研究領域,涉及聲學、語言學、模式識別及信息理論等學科[3],它的典型應用有自動語言翻譯、自動客服、語音驗證碼和命令控制等[4]?,F如今的語音識別技術主要分為三種類別,第一類是模型匹配法,矢量量化技術(VQ)[5]和動態時間規整技術(DTW)[6]均屬于此類。第二類是以隱式馬爾可夫模型(Hidden Markov Model,HMM)方法為代表的基于統計模型方法[7]。除此以外,高斯混合模型(Gaussian Mixture Model,GMM)也是常用的統計概率模型方法,而基于GMM 和HMM 的語音識別框架更是一度在語音識別研究中占據了主導地位[8]。隨著深度神經網絡的提出和發展,第三類辨別器分類方法成為了目前主流的語音識別建模方式,該類方法包括支持向量機(SVM)[9]、人工神經網絡(ANN)和深度神經網絡(DNN)[10]等,該類方法在大詞匯量和連續語音識別技術上取得了突破性進展。2017 年,谷歌提出了用于解決NLP 中機器翻譯任務的Transformer 模型,改善了RNN 訓練慢的缺點,達到了SOTA 效果,使得Transformer 模型成為NLP 領域中最受歡迎的特征抽取器[11]。本文便是在利用CTC 算法將語音信息轉化為基本因素信息后,再利用Transformer 模型和發音字典將基本音素信息轉化為中文信息,實現針對電力行業的語音識別技術。
CTC 算法(Connectionist Temporal Classification)是一種用于時序數據分類問題的算法[12]。在傳統語音識別聲學模型中,需要先對數據進行反復迭代來確保語音對齊,而CTC 算法引入了空白占位符對語音信號進行分割,每個預測值都對應語音信息中的一個尖峰,因此無需對齊操作,可以直接識別語音信息。
在進行語音信號識別時,通常為利用RNN 等特征提取算法將音頻信號轉化為與輸入維度相同的概率向量,再利用CTC 算法得到最有可能的輸出結果,在此將特征提取算法與CTC 作為一個整體的聲學模型算法進行描述。定義提取的語音信號特征為X={x1,x2,…,xT},經過 CTC 算法后輸出的拼音音素信息為Y={y1,y2,…,yP},那么模型的目的就是通過訓練數據找出輸入X 與輸出Y 之間的映射關系。在訓練完成的聲學模型中輸入X 后,通過RNN 等特征提取算法得到眾多條件概率輸出Y,再利用CTC 算法得到一個條件概率最高的Y 值。換句話說,對于一個輸出(X,Y),CTC 聲學模型的目標為:

其中pi(ai|X)為RNN 等特征提取算法的輸出,所有pi相乘表示一條路徑中的所有字符概率相乘。
Transformer 模型由Self-Attention 集成,其實現了傳統的RNN 結構無法實現的并行化訓練、結合上下文語境等功能。Transformer 模型由編碼器和解碼器構成,其中編碼器包含Feed Forward 層和Self-Attention層,解碼器在編碼器結構的基礎上多一個Attention層。其注意力機制計算公式如公式(3)所示。

分別計算查詢向量Query,鍵向量Key 和值向量Value,Y 為輸入向量,W 為權值矩陣。

其中vQ,K表示Q 或者K 中的維度。通過Softmax歸一化得到概率分布值,將其與V 相乘獲得輸出Y'。
本節提出了一種面向電力行業的熱詞語音識別技術。技術模型主要分為預處理模塊,CTC 聲學模型模塊和語音識別解碼模塊三部分。如圖1 所示為模型的架構圖。

圖1 面向電力行業的熱詞語音識別技術模型
由于采集的語音信號通常會含有噪聲,因此模型的第一個模塊為預處理模塊。預處理模塊主要分為信號處理與信號特征提取兩部分,如圖2 所示。
其中,信號處理的具體步驟如下:
(1)信號濾波:設置上下截止頻率,利用帶通濾波器對語音信號進行濾波處理。
(2)信號平滑:將語音信號高頻與低頻銜接段進行平滑處理,使信號可以在同一信噪比下下進行頻譜求解。
(3)分幀加窗:設置不同長度的采集窗口,將連續的語音信號分割為頻域穩定獨立部分,使信號具有短時平穩特性。
(4)端點檢測:通過短時能量和短時平均過零率對語音信號的起始點進行判斷,進行識別。

圖2 信號預處理步驟圖
由于直接對原始波形進行識別效果不佳,在完成語音信號的預處理后,需要將原始波形進行頻域變換,再將變換之后提取的特征進行識別。本文采用梅爾頻率倒譜系數(MFCC)特征參數進行特征提取。MFCC通過模擬聽覺模型,先將線性頻譜映射到基于聽覺感知的Mel 非線性頻譜中,然后轉換到倒譜(Cepstrum)上,獲得Mel 頻率倒譜系數MFCC,MFCC 即為該幀語音的特征。
將頻率轉化為梅爾頻率的公式為:

本文采用CTC 算法來將聲學信號轉化為拼音信息。經過預處理模塊后,得到了語音信號特征序列X={x1,x2,…,xT},其中xi表示第i 幀的語音數據經過MFCC 特征提取之后的結果。
輸入:語音信號特征序列X={x1,x2,…,xT}
輸出:基本因素信息Y={y1,y2,…,yP}
步驟1:建立并訓練RNN 網絡。
步驟2:輸入X 序列,其中每一個特征xt在經過RNN 的計算之后,再經過Softmax 層得到音素的后驗概率;
步驟3:前向計算從1~t 時刻,預測正確前綴概率;
步驟4:后向計算從t~T 時刻,預測正確后綴概率;
步驟5:利用前綴概率與后綴概率計算出t 時刻所有正確預測的概率;
步驟6:反向傳播,最大化目標函數,即所有正確預測序列的概率和,得到條件概率最高的輸出yt。
要進行語音識別解碼,首先需要制作發音字典。漢語含有21 個聲母和35 個韻母,聲韻母集合大小合適且符合漢語拼音規則,本文采用漢語聲韻母作為基本因素信息,并采用漢語語音識別的主流聲調方案五聲調方案來標注音調變化。
其次,利用Transformer 制作語言模型。首先利用互聯網文本語料庫得到文本語料信息,再刪除文本中的標點符號,數字和其它特殊字符,得到純漢字文本,再利用Jieba 分詞方法進行分詞,之后對分詞集進行詞匯量、詞頻的統計。同時,利用電力行業的術語、工作人員名單、電網項目研究報告等資料創建電力行業文本資料庫,再對其進行處理和分詞,統計該分詞集的詞匯量、詞頻,最后將兩個分詞集的詞頻信息進行整合。之后,利用Transformer 建立針對電力行業數據的語言模型。
完成Transformer 語言模型和發音字典的構造之后,就可以將2.2 獲得的基本因素信息Y進行解碼,解碼過程如下:
(1)將聲學模型識別得到的基本因素信息及聲學模型分數輸入發音字典,得到備選詞語串及聲學模型分數;
(2)將上文的識別結果輸入Transformer 語言模型,得到備選詞語串及對應的語言模型分數;
(3)將聲學模型分數與語言模型分數結合,在備選詞語串中選擇最優詞語序列,將其作為語音識別輸出。
本文實驗部分的數據來自于南方電網提供的基于南網信息系統語料庫。其采樣頻率為16k 赫茲,大小為16bits。本文使用TensorFlow 構建模型。其中學習率為 0.0002,beta1=0.7,beta2=0.88。訓練次數為 30次。通過與BiGRU、BiLSTM 進行對比驗證模型性能。

表1 實驗結果
針對面向大眾領域的語音識別技術識別電力行業語音的準確率不高的問題,本文設計了一種面向電力行業的熱詞語音識別技術,通過構建CTC 聲學模型將語音信息轉化為基本音素信息,再利用電力行業熱詞庫構建針對電力數據的Transformer 語言模型,最后通過語言模型和發音字典將基本音素信息解碼為中文信息,并通過基于南網信息系統語料庫的實驗驗證了本方法的有效性。