梁 力 莫曉毅 柯華強(qiáng)
(廣汽研究院,廣東 廣州 511434)
語(yǔ)音識(shí)別是機(jī)器把獲取的語(yǔ)音輸入轉(zhuǎn)換為文本輸出的過(guò)程[1]。從早期的DTW(Dynamic TimeWarping)算法、高斯混合模型到后來(lái)的i-vector模型和DNN(Deep Neural Network)網(wǎng)絡(luò)[2],語(yǔ)音識(shí)別技術(shù)發(fā)展至今,已經(jīng)有五、六十年的歷史。隨著計(jì)算機(jī)科學(xué)和通信等學(xué)科的發(fā)展和成長(zhǎng),基于語(yǔ)音識(shí)別技術(shù)的設(shè)備日益增多[3],而識(shí)別的準(zhǔn)確率和響應(yīng)速率卻難以衡量。本文旨在以語(yǔ)音識(shí)別技術(shù)為基礎(chǔ),結(jié)合Python開(kāi)源框架,研究并搭建一個(gè)通用測(cè)試平臺(tái)來(lái)。
為了實(shí)現(xiàn)對(duì)語(yǔ)音設(shè)備功能和性能的驗(yàn)證,測(cè)試平臺(tái)需要具備對(duì)輸入語(yǔ)音進(jìn)行轉(zhuǎn)化并對(duì)輸出結(jié)果進(jìn)行確認(rèn)比對(duì)的能力。如圖1所示,測(cè)試平臺(tái)至少應(yīng)由輸入端、轉(zhuǎn)換端、輸出端和外部設(shè)備四部分組成。
輸入端承擔(dān)著對(duì)輸入信息進(jìn)行過(guò)濾的職責(zé)。輸入的語(yǔ)音經(jīng)過(guò)雜音過(guò)濾和噪聲降低后到達(dá)轉(zhuǎn)換端;輸入的文字經(jīng)過(guò)格式調(diào)整后到達(dá)轉(zhuǎn)換端。
轉(zhuǎn)換端的功能是把輸入聲音轉(zhuǎn)化成文字或者把輸入文字轉(zhuǎn)換成語(yǔ)音并傳送到輸出端。轉(zhuǎn)換選擇是用戶根據(jù)需求選擇語(yǔ)音文字轉(zhuǎn)換或文字語(yǔ)音轉(zhuǎn)換。測(cè)試平臺(tái)根據(jù)語(yǔ)料庫(kù)和轉(zhuǎn)換選擇,確定期待輸出的語(yǔ)音或文字,為輸出結(jié)果的判定提供參考依據(jù)。
輸出端根據(jù)用戶的選擇對(duì)輸出的語(yǔ)音或文字進(jìn)行判定。對(duì)于輸出的語(yǔ)音,通過(guò)內(nèi)置算法和用戶主觀判定是否符合預(yù)期的要求;對(duì)于輸出的文字,通過(guò)查詢語(yǔ)料庫(kù)中的期待輸出文字進(jìn)行對(duì)比確認(rèn)。
圖1 測(cè)試平臺(tái)架構(gòu)
外部設(shè)備為平臺(tái)的輸入和輸出提供輔助功能。喇叭用于播放設(shè)備發(fā)出的聲音,麥克風(fēng)用于輸入音源的采集,接口用于設(shè)備的接入和設(shè)備間的信息交互,機(jī)柜箱用于放置硬件設(shè)備以及提供安靜的測(cè)試環(huán)境。
聲音輸入有3種場(chǎng)景:用戶的聲音,錄制好的人聲文件,工具模擬的音頻。由于采集環(huán)境的制約,輸入的語(yǔ)音大多含有雜音,如果不加處理直接輸入到轉(zhuǎn)換端[4],會(huì)顯著地影響語(yǔ)音識(shí)別的正確率。常用的語(yǔ)音降噪方法有:譜減法、濾波法、統(tǒng)計(jì)模型法、子空間法[5],本測(cè)試平臺(tái)通過(guò)使用Python構(gòu)建一個(gè)降噪系統(tǒng)對(duì)輸入音頻進(jìn)行降噪[6]。
文字作為輸入通常包含一些非法或冗余的字符,可以借助相關(guān)Python函數(shù)和正則運(yùn)算法則實(shí)現(xiàn)對(duì)輸入字符串的格式調(diào)整[7],程序段實(shí)現(xiàn)如下:
語(yǔ)料庫(kù)是以EXCEL表或數(shù)據(jù)庫(kù)的形式存儲(chǔ),可以通過(guò)人工配置的方式卸載或者更新。轉(zhuǎn)換選擇通過(guò)界面上一對(duì)互斥的按鈕來(lái)實(shí)現(xiàn),用戶可以根據(jù)轉(zhuǎn)換需求選擇“文字轉(zhuǎn)語(yǔ)音”或者“語(yǔ)音轉(zhuǎn)文字”。
文字轉(zhuǎn)語(yǔ)音和語(yǔ)音轉(zhuǎn)文字的功能可通過(guò)引入服務(wù)器實(shí)現(xiàn)。轉(zhuǎn)換端將用戶提交的語(yǔ)音轉(zhuǎn)換請(qǐng)求轉(zhuǎn)發(fā)至服務(wù)器端;服務(wù)器端把處理好的結(jié)果發(fā)還給請(qǐng)求的轉(zhuǎn)換端[8]。根據(jù)需求的不同,服務(wù)器可以部署在本地通過(guò)離線語(yǔ)音引擎實(shí)現(xiàn)[9],或者部署在云端通過(guò)云服務(wù)實(shí)現(xiàn),本測(cè)試平臺(tái)的服務(wù)器部署在云端。
輸出語(yǔ)音的有無(wú)可通過(guò)軟件直接判斷,輸出內(nèi)容的正確性通過(guò)把語(yǔ)音轉(zhuǎn)換成文字再與語(yǔ)料庫(kù)中的期待輸出進(jìn)行比對(duì)。如果輸出的是文字,則直接與語(yǔ)料庫(kù)中的期待文字進(jìn)行比對(duì)。
除了基本的硬件配置外,本測(cè)試平臺(tái)還集成了一套基于Python開(kāi)源框架的測(cè)試管理軟件。該軟件可以管理測(cè)試過(guò)程中的輸入、轉(zhuǎn)換和輸出環(huán)節(jié),并提供可視化的測(cè)試腳本編寫界面和測(cè)試報(bào)告。
在語(yǔ)音識(shí)別的驗(yàn)證階段,測(cè)試平臺(tái)通過(guò)與待測(cè)設(shè)備連接交互,模擬真實(shí)的用戶環(huán)境來(lái)驗(yàn)證待測(cè)設(shè)備是否滿足期待的指標(biāo)[10]。語(yǔ)音識(shí)別準(zhǔn)確率和響應(yīng)速率是語(yǔ)音識(shí)別中兩個(gè)重要的指標(biāo)[11]。
使用測(cè)試平臺(tái)對(duì)設(shè)備A、B、C分別進(jìn)行準(zhǔn)確率和響應(yīng)速率的測(cè)試,測(cè)試結(jié)果如表1所示。設(shè)備A的語(yǔ)音識(shí)別正確率最高,而設(shè)備C的語(yǔ)音識(shí)別響應(yīng)速率最好。
基于語(yǔ)音識(shí)別技術(shù)的測(cè)試平臺(tái)通過(guò)文字和語(yǔ)音之間的相互轉(zhuǎn)換,實(shí)現(xiàn)在日常生活中對(duì)語(yǔ)音設(shè)備的功能正確性和性能穩(wěn)定性的檢測(cè),為語(yǔ)音識(shí)別的驗(yàn)證工作提供了有效的支持。此外,語(yǔ)音輸入標(biāo)準(zhǔn)不統(tǒng)一和背景噪聲的困擾,從一定程度上仍然制約著語(yǔ)音識(shí)別技術(shù)的發(fā)展,將會(huì)成為未來(lái)測(cè)試平臺(tái)研究的重點(diǎn)課題。
表1 語(yǔ)音識(shí)別功能和性能測(cè)試總結(jié)