孫杰英 余明松 黃偉彬 林永明
(廣東中創智家科學研究有限公司/威凱檢測技術有限公司 廣州 510663)
智能家居主要由兩部分組成:核心的控制設備和執行命令的設備。核心的控制設備負責接受和判斷人的命令,轉化為數字信號,傳遞給執行設備。核心控制設備主要有網關和智能音箱,網關是智能家居的控制中樞,負責設備和設備之間的通信;智能音箱則是智能家居的語音控制入口,實現將語音轉為數字信號。執行設備則為具體的智能家電。
語音交互作為智能家電控制入口之一,它不像某一智能家居生態的專有APP一樣將固有指令轉化為數字信號,而是需要通過離線/在線方式將語音識別結果識別為指令再轉化為數字信號,期間,語音交互系統就可能出現誤識別的問題,這就是智能家居語音交互測試的目的即發現語音交互系統存在的缺陷。
此外,傳統測試方法測試效率低、浪費人力、難復現等問題,需要在語音交互測試的各階段實現自動化,以優化人力資源,提升效率,使得測試易于復現,測試報告更具說服力及解決語音交互測試各環節的溯源問題,減少捏造數據的可能性。
語音交互系統的語音識別技術處理流程包含語音輸入、VAD端點檢測、特征提取、聲學模型、語言模型、字典與解碼幾個部分。這又可分為兩個部分:前端信號處理,包含語音檢測、特征提取、降噪、回聲消除,使設備麥克風收集到的數據更好地反映語音的本質特征;后端識別即設備語音模塊根據聲學、語言模型解碼語音信號輸出文本內容的過程。
由語音交互系統的技術處理流程,可以看出語音交互測試貫穿于語音交互系統的整個處理流程。語音交互測試的數字化可以分為以下幾個模塊:背景噪聲回放模塊、語料自動播放模塊、測試環境模塊、測試結果分析模塊。
測試開始前,需要對設備進行校準操作。按照第五點測試環境模塊布置DUT、聲源、噪聲源位置,在此基礎上對揚聲器、人工頭、低音炮進行校準,使揚聲器到DUT的聲壓大致處于同一水平,使人工頭、低音炮聲壓達到一定水平;然后校準整個測試場地的聲學環境。
背景噪聲回放模塊用于模擬智能家居設備在真實環境下的噪聲。
傳統上,智能家居的語音交互測試一般在真實的家居場景中進行測試,背景噪聲一般采用家居環境下產生的噪聲,如中央空調、電風扇、油煙機、洗衣機、電視機、人與人之間的對話等。對于諸如中央空調、電風扇、油煙機、洗衣機等產生的平穩噪聲,在多次實驗下,這些設備的產生的噪聲基本不會發生變化,易于復現;但對于電視機播放的內容、人與人之間的對話產生的非平穩噪聲,會受到諸如電視機音量、播放節目、人之間語速、對話內容、年齡、口音、性別等多方面因素的影響,使得在真實環境下的復現幾乎不可能實現。
所以智能家電語音交互測試采用提前錄制噪聲的方式使復現變得簡單。噪聲的錄制要求使用高質量的錄音設備用于獲得與真實噪聲盡可能相同的信息量,減少測試的系統誤差,如人工頭雙耳、高保真全向性麥克風及其他高質量錄音設備等;噪聲錄制對采樣頻率、采樣范圍有一定要求,因為人的聽力范圍為20~20 000 Hz,有一些人耳察覺不到的噪聲也會對家居智能設備產生影響,同時錄制噪聲對環境也有一定要求如房間的本底噪聲、混響時間、溫度等;噪聲的播放要求使用高保真音箱,采用四揚聲器陣列用于模擬噪聲源的不同位置,模擬仿真環境下人的活動產生的噪聲[1],或采用其他方式使用高性能多通道聲卡、高低音揚聲器組合模擬真實環境。同時,背景噪聲還需要進行標注,以便測試重現時獲取必要的噪聲信息,這需要標注噪聲的聲壓級與語料的信噪比等。
語料自動播放模塊用于測試語音交互系統在安靜環境下或噪聲環境下的喚醒率、識別率。
傳統上,采用測試人員現場發聲口呼智能語音設備命令詞來進行設備的識別效果測試,但該方法受測試人員主觀影響較大,不確定因素過多,導致測試結果不穩定。
為保證測試結果可重現,避免人為因素引入的錯誤,提高測試質量,語料通常采用將包含智能家居設備指令關鍵字的文本通過TTS(Text to Speech)技術將文本轉換為音頻文件。然后借助放音設備播放該語音文件,進行語音識別,而后借助自動化測試工具檢測語音交互系統獲取識別結果并記錄到文件[2]。
但借助TTS技術雖可減小人工錄音的復雜度,但TTS技術獲得的音頻過于單一,不能很好地還原人說話地語速、語調,缺乏變化。
所以語料錄制需要采用不同年齡、性別、口音的真人進行錄制[3],錄制設備需要采用符合ITU P.57要求的人工耳或IEC 61094-4要求的麥克風設備。同時錄音應該在混響時間較低的房間錄制,減小混響對錄音回放時的干擾,以達到較好的復現效果。
另外,現有的自動化測試方法對語音文件的播放仍需人為控制,相鄰語音之間的時間間隔不靈活,如以固定間隔播放語音,可能導致時間的浪費。
因此對大批量的語音文件可借助自動化工具或腳本在收到上一條識別結果后或超出預設時間后,立即播放下一條語音文件,使兩條語音之間的間隔實現最大縮減,增大一定時間內的測試數量。
測試環境主要是用于模擬不同智能家電使用真實環境,對尺寸、本底噪聲、混響時間等有一些要求。此外,設備的布局也會對測試結果產生影響。
如圖1、圖2以電視機為DUT,聲源和噪聲源相對DUT的布局會對測試結果產生影響。

圖1 聲源與DUT相對位置

圖2 噪聲源與DUT相對位置
如用揚聲器陣列模擬背景噪聲時,模擬環境的本底噪聲會對揚聲器陣列模擬的噪聲混響時間造成干擾,影響模擬效果;而模擬環境的混響時間會對本就包含混響的背景噪聲造成影響。
測試結果分析則可以分為離線/在線情況下誤喚醒(次/H)、喚醒率、識別率,或者安靜/噪聲環境下誤喚醒(次/天)、喚醒率、識別率。
在對測試結果進行處理之前需要獲取到測試的結果,這需要在前三個模塊中分別對噪聲播放的log、語料播報的log、DUT設備輸出的log做出格式要求,以便于控制機自動化處理測試結果。對各環節log的要求如下:
噪聲播放log要求:噪聲文件需要與某一語料播放的起始時間一一對應,比如某語料播放時間為20 s,對應噪聲文件的5:01-5:21,這樣一一對應,在復現時可以減小復雜度;還需要記錄此時噪聲的音量大小,同樣用于減少復現的復雜度;此外,整個噪聲文件的長度也需要記錄到log中。
語料播放log要求:需要記錄當前語料播放的起始時間戳,播放時音量、速率等參數,該語料的文本信息、播放次數等。
DUT設備log:需要記錄開始識別語音信號到識別完成的時間戳、識別的文本信息、對應設備執行的操作等。此外,控制設備需要與被測設備建立通信,可通過串口、網口等進行通信,現有智能家居設備大多采用Android系統,可選擇使用adb通信。
測試結果的處理一般有兩種方法,一種是邊測試邊處理,采用自動化語料播報的第一種方法,在收到上一條識別結果后或超出預設時間后,即播放下一條語音文件,這樣接收到一條識別結果處理一條。但這種方法需要對文件進行大量的讀寫操作,可能會造成相當大的時間浪費。另一種方法是設定一定的測試時間,在測試結束后統一對log進行處理,使用腳本對數據進行處理。第一種方法可以節省人力資源,但只能簡單地獲得識別率、喚醒率、誤識別測試等簡單的數據,第二種方法需要一定的人力資源,但可以對測試結果進行深入地處理,獲取詳細的測試報告,用于診斷語音交互系統的問題。
本文針對傳統上智能家居語音交互系統測試方法存在的測試周期長、效率低、浪費人力、難復現、難溯源等問題,提出了在語音交互測試各環節的一種自動化實現方法,對語音交互測試各環節進行了規定、優化,以實現語音交互測試從傳統方式向自動化轉型,以適應物聯網時代智能家居領域產生的巨大語音數據量。
傳統的測試方案測試測試約一小時的語料需要大于4 h的時間且需要二人以上進行操作[4],采用自動化實現可將時間縮至2 h且只需一人在測試開始及結束操作一次即可。自動化測試相比傳統測試更易于復現,測試結果更具說服力。