梁 力 莫曉毅 柯華強
(廣汽研究院,廣東 廣州 511434)
語音識別是機器把獲取的語音輸入轉換為文本輸出的過程[1]。從早期的DTW(Dynamic TimeWarping)算法、高斯混合模型到后來的i-vector模型和DNN(Deep Neural Network)網絡[2],語音識別技術發展至今,已經有五、六十年的歷史。隨著計算機科學和通信等學科的發展和成長,基于語音識別技術的設備日益增多[3],而識別的準確率和響應速率卻難以衡量。本文旨在以語音識別技術為基礎,結合Python開源框架,研究并搭建一個通用測試平臺來。
為了實現對語音設備功能和性能的驗證,測試平臺需要具備對輸入語音進行轉化并對輸出結果進行確認比對的能力。如圖1所示,測試平臺至少應由輸入端、轉換端、輸出端和外部設備四部分組成。
輸入端承擔著對輸入信息進行過濾的職責。輸入的語音經過雜音過濾和噪聲降低后到達轉換端;輸入的文字經過格式調整后到達轉換端。
轉換端的功能是把輸入聲音轉化成文字或者把輸入文字轉換成語音并傳送到輸出端。轉換選擇是用戶根據需求選擇語音文字轉換或文字語音轉換。測試平臺根據語料庫和轉換選擇,確定期待輸出的語音或文字,為輸出結果的判定提供參考依據。
輸出端根據用戶的選擇對輸出的語音或文字進行判定。對于輸出的語音,通過內置算法和用戶主觀判定是否符合預期的要求;對于輸出的文字,通過查詢語料庫中的期待輸出文字進行對比確認。

圖1 測試平臺架構
外部設備為平臺的輸入和輸出提供輔助功能。喇叭用于播放設備發出的聲音,麥克風用于輸入音源的采集,接口用于設備的接入和設備間的信息交互,機柜箱用于放置硬件設備以及提供安靜的測試環境。
聲音輸入有3種場景:用戶的聲音,錄制好的人聲文件,工具模擬的音頻。由于采集環境的制約,輸入的語音大多含有雜音,如果不加處理直接輸入到轉換端[4],會顯著地影響語音識別的正確率。常用的語音降噪方法有:譜減法、濾波法、統計模型法、子空間法[5],本測試平臺通過使用Python構建一個降噪系統對輸入音頻進行降噪[6]。
文字作為輸入通常包含一些非法或冗余的字符,可以借助相關Python函數和正則運算法則實現對輸入字符串的格式調整[7],程序段實現如下:

語料庫是以EXCEL表或數據庫的形式存儲,可以通過人工配置的方式卸載或者更新。轉換選擇通過界面上一對互斥的按鈕來實現,用戶可以根據轉換需求選擇“文字轉語音”或者“語音轉文字”。
文字轉語音和語音轉文字的功能可通過引入服務器實現。轉換端將用戶提交的語音轉換請求轉發至服務器端;服務器端把處理好的結果發還給請求的轉換端[8]。根據需求的不同,服務器可以部署在本地通過離線語音引擎實現[9],或者部署在云端通過云服務實現,本測試平臺的服務器部署在云端。
輸出語音的有無可通過軟件直接判斷,輸出內容的正確性通過把語音轉換成文字再與語料庫中的期待輸出進行比對。如果輸出的是文字,則直接與語料庫中的期待文字進行比對。
除了基本的硬件配置外,本測試平臺還集成了一套基于Python開源框架的測試管理軟件。該軟件可以管理測試過程中的輸入、轉換和輸出環節,并提供可視化的測試腳本編寫界面和測試報告。
在語音識別的驗證階段,測試平臺通過與待測設備連接交互,模擬真實的用戶環境來驗證待測設備是否滿足期待的指標[10]。語音識別準確率和響應速率是語音識別中兩個重要的指標[11]。
使用測試平臺對設備A、B、C分別進行準確率和響應速率的測試,測試結果如表1所示。設備A的語音識別正確率最高,而設備C的語音識別響應速率最好。
基于語音識別技術的測試平臺通過文字和語音之間的相互轉換,實現在日常生活中對語音設備的功能正確性和性能穩定性的檢測,為語音識別的驗證工作提供了有效的支持。此外,語音輸入標準不統一和背景噪聲的困擾,從一定程度上仍然制約著語音識別技術的發展,將會成為未來測試平臺研究的重點課題。

表1 語音識別功能和性能測試總結