AI测试|天猫精灵智能音箱测试策略与方法
一、業務介紹
2014年11月,亞馬遜推出了一款全新概念的智能音箱:Echo,這款產品最大的亮點是將智能語音交互技術植入到傳統音箱中,從而賦予了音箱人工智能的屬性。這個被稱為“Alexa”的語音助手可以像你的朋友一樣與你交流,同時還能為你播放音樂、新聞、網購下單、Uber叫車、訂外賣等等。
實現原理
智能音箱的原理是基于語音識別技術、自然語言處理技術和語音合成技術,并通過云計算技術實現智能化控制和聯網通信。
1. 語音識別技術:智能音箱通過麥克風接收用戶的語音指令,將語音轉換為數字信號,并通過語音識別技術進行分析和處理。語音識別技術需要對不同的方言、口音和語速進行適配,以提高識別準確率。
2. 自然語言處理技術:智能音箱通過自然語言處理技術對語音指令進行解析,生成相應的命令或回答。自然語言處理技術需要處理語音輸入的語法、句法和語義等信息,以正確地理解用戶的意圖和需求。
3. 語音合成技術:智能音箱通過語音合成技術將文字轉換為語音輸出,并通過喇叭播放出來。語音合成技術需要生成自然流暢、人性化的語音輸出,提高用戶體驗效果。
4. 云計算技術:智能音箱通過連接云端服務器實現更強大的數據處理和智能化交互。云計算技術可以實現大規模數據存儲和處理,同時還可實現多設備互聯和遠程控制,從而提高智能音箱的功能和靈活性。
5. 智能家居控制技術:智能音箱通過與其他智能家居設備進行連接和控制,實現家庭自動化和智能化管理。智能家居控制技術可以將家庭中的各種設備整合到一起,并通過語音指令或手機 App 進行遠程控制,提高生活便利性和舒適度。
工作流程
其中涉及到的概念如下:
- 自動語音識別技術(Automatic Speech Recognition,ASR),是指通過計算機程序將人的語音信號轉化為文本或命令等信息的一種技術。自動語音識別技術通常需要以下步驟:
- 聲學分析:將輸入的語音信號轉化為數字信號,并進行預處理和特征提取。常用的特征包括頻率、幅度、時長等。
- 建立聲學模型:利用訓練數據集來建立聲學模型,對不同單元(如音素或基元)進行識別。常用的方法包括隱馬爾科夫模型(Hidden Markov Model,HMM)和深度神經網絡(Deep Neural Networks,DNN)等。
- 語言建模:利用語言模型來對識別結果進行進一步的篩選和修正。語言模型可以基于統計、規則或深度學習等方法進行建模。
- 后處理:對識別結果進行后置處理,如糾錯、消除歧義等。
- 自然語言理解(Natural Language Understanding,NLU)是指計算機程序對人類語言進行理解和解釋的一種技術。它可以將輸入的自然語言文本或語音信號轉化為計算機能夠理解和處理的形式,如數據結構、邏輯表達式等。自然語言理解通常包括以下內容:
- 詞法分析:將輸入的自然語言文本進行分詞,標注每個單詞的詞性和語法信息,并建立相應的句法樹或依存關系圖。
- 句法分析:基于詞法分析結果,對輸入的自然語言文本進行句法分析,并確定句子的結構和語法規則。
- 語義分析:對輸入的自然語言文本進行語義分析,提取其中的實體、事件、關系等信息,并理解其含義和上下文語境。
- 意圖分析:根據輸入的自然語言文本,推斷用戶的意圖和需求,并生成相應的命令或回答。
- 對話管理(Dialogue Management,DM)是指計算機程序對人機交互過程中的對話進行管理和控制的一種技術。它可以根據用戶的輸入和上下文語境,生成相應的回答或命令,并不斷地維護對話狀態,以實現有效的交互。對話管理通常包括以下內容:
- 對話狀態跟蹤:對于用戶的每一個輸入,都需要對當前對話狀態進行更新和跟蹤。這包括判斷用戶的意圖和需求、記錄歷史對話內容等信息。
- 策略決策:根據對話狀態和用戶輸入,選擇最合適的策略來生成回答或命令。這可以基于規則、統計或深度學習等方法進行建模和優化。
- 響應生成:根據策略和對話狀態,生成相應的回答或命令,并將其轉換為自然語言文本或語音信號輸出。
- 對話歷史管理:維護對話歷史記錄,以便進行上下文分析和對話效果評估等操作
- 自然語言生成(Natural Language Generation,NLG)是指計算機程序根據給定的數據和模型,自動生成符合自然語言語法和語義規則的文本或語音信號的一種技術。
自然語言生成通常包括以下幾個步驟:
- 數據準備:將需要轉化為自然語言文本或語音信號的數據進行預處理和標注,以便后續的模型訓練和優化。
- 模型訓練:基于標注好的數據集,使用機器學習、深度學習等方法建立自然語言生成模型,并對其進行訓練和優化。
- 文本/語音生成:根據輸入的數據和模型,生成自然語言文本或語音信號,并將其輸出到屏幕或喇叭中。
- 文本轉語音(Text-to-Speech,TTS)是一種將文字轉化為語音信號的技術,它可以幫助計算機快速、自然地生成語音輸出。文本轉語音通常包括以下幾個步驟:
- 文本預處理:對輸入的文本進行分詞和分段,并標注相應的語言特征,如聲調、重音等。合成語音參數:基于預處理后的文本,使用語音合成算法生成相應的語音參數,如基頻、時長、能量等。合成波形信號:根據上述語音參數,合成相應的波形信號,并通過喇叭或耳機輸出。
- 領域(Domain)指主要承載某個業務的數據概念。例如音樂、新聞、天氣都可以稱作是一個領域。
- 技能(Skill)是完整的功能單位,包含某一個領域方向的對話理解和執行邏輯,可以獨立承接和處理一段對話邏輯。例如問天氣是一個skill,播放音樂也是一個skill。
- 意圖(Intent)代表一段對話的目標和真實用意,是Domain中的細節元素,一個領域中包含多個意圖。例如,天氣中查詢氣溫是一個Intent,查詢紫外線是一個Intent。
- 填充槽(Slots)是從一句話中提取出來的實體修飾詞。例如,在“今天成都天氣怎么樣?”中,領域是天氣,意圖是查詢,“成都”“今天”將作為slots傳給后續的執行服務。
- 答復(Reply)是在用戶詢問后,經過系統執行返回給用戶的回答。
二、智能音箱測試的挑戰
1. 連路長
在移動互聯網產品形態下,用戶所有的意圖均是通過點擊、輸入操作表達的,用戶的意圖是明確的。而語音類產品沒有此類觸控操作,用戶直接通過語音與產品交互。因此,在系統執行用戶請求之前,需要理解用戶意圖。所以語音類產品比移動互聯網產品多出了語音識別、語義理解的環節。從端上收音開始,經過降噪、去混響、波束形成等環節,到請求服務端,再到通過算法進行語音識別、語義理解,進而由服務端或第三方服務進行處理,將結果返回給算法進行語音合成,最后到音箱端進行播報,整個鏈路單次語音指令響應耗時需要 1.5~-2.5s。
2. 技能多
市面上智能音箱的定位是讓用戶僅通過語音就能完成在互聯網世界可以完成的一切。因此,音箱的后端需要接入各種各樣的服務,如音樂、天氣、時間、鬧鐘、搜索等,我們稱之為技能。毫無疑問,為了滿足用戶的各種訴求,音箱需要提供數以千計的技能。為了滿足用戶更多的技能接入進來,系統也提供了技能開放服務,可以讓生態合作伙伴通過接入技能,與我們一起為用戶提供更加豐富的服務。如何保障數以千計的技能服務質量,是我們面臨的重大挑戰。
3. 語音用例復雜且數量龐大
語音測試的過程比較簡單,例如用戶向智能音箱詢問:“今天天氣怎么樣?”,答復:“今天晴天”。這就構成一條語音測試用例。而語音測試的難點在于,對于同一個意圖,不同類型的用戶有不同的問法。所以,測試一個技能到底需要多少條語音用例是一個難題。
4. 語音測試效率低下
語音測試不同于傳統軟件測試,傳統軟件測試是以鼠標或者觸控為交互基礎進行的,與系統的交互是瞬間完成的,交互時間最長不超過1s。而語音用例是以問答的形式進行的,用戶說話、音箱播放均需要時間,一次交互長達幾秒甚至幾十秒,再加上語音用例數龐大的特征,使得語音測試效率極低。
5. 對環境要求高
語音測試對環境要求比較高,在靜音、噪音環境中測試結果不盡相同,如果大家都坐一起還有可能相互干擾,給測試帶來諸多不便。
三、智能音箱測試策略
智能音箱涉及的技術體系比較廣,從底層的硬件到上層的系統軟件、應用軟件,再到后端服務層、算法層,再到外部的三方服務。主要通過“端到端語音測試”“執行鏈路測試”“算法評測”三個層面的分層測試來保障整個系統的質量。
- “端到端語音測試”是最上層的直接面向用戶的集成測試,我們通過端到端語音測試自動化來解決“設備多”和“效率低下”的問題。
- “執行鏈路測試”與互聯網接口測試類似,是通過底層接口調用來保障下游接口服務質量的測試方法。
- “算法評測”主要評測喚醒/誤喚醒算法、語音識別算法以及語義理解算法的質量,它的特點是數據量大,將大數據測試用例“灌入”算法引擎,通過準確率來衡量模型的質量。
四、端到端語音測試
直接通過人工進行端到端語音測試是比較簡單的,就是站在用戶交互的一問一答,看語音識別效果是否滿足用戶期望。難點在于“如何提升效率”、“如何避免環境干擾”、“響應耗時如何測試”。下面分別進行闡述。
1. 語音自動化測試
最簡單的語音自動化測試方法是利用電嘴模擬人聲播放語料,這是一個行之有效的辦法,但它只能替代人去測試,并不能提升測試效率,為了避絕聲音互相干擾,仍然需要一條語料一條語料地播放。為了提升效率,需要做出一定的犧牲,跳過了麥克風拾音環節,將測試音頻直接灌入系統,且灌入的速度可以控制,這樣既快速又沒有聲音,使語音測試成為可能,大大提升了測試效率。
除了效率低下,語音測試面臨的比較大的問題是環境干擾,這既包括測試設備之間的互相干擾,也包括測試本身受到的外界噪聲的干擾。在辦公環境下,如果是單個用例的測試沒問題。但是如果是批量回歸測試,測試同學基本上就沒法干活了。
因此,精靈云測實驗室應運而生,它實現了:
- 無干擾地進行語音自動化共享服務
- 中心云化的測試設備共享服務
- 多設備的兼容性測試服務
- 線上業務的監控巡檢服務
精靈云測實驗室主要由玲瓏塔、Agent、音箱集群三部分構成。玲瓏塔是天貓精靈內部開發的集用例管理、執行于一體的測試平臺;agent與音箱集群通過USB相連,一起部署在封閉的實驗室環境內,主要負責音箱集群的管理和測試指令執行。玲瓏塔通過websoket建立長鏈接,當有用例執行時,由玲瓏塔發起測試執行任務,將指令發給agent,再由agent根據執行指令找到對應型號的空閑設備去執行,執行完畢后上報測試結果。
2. 預料自動化生成
智能語音測試的基礎是大量的語料。人類的語言是復雜多樣的。在做語料自動化生產之前,我們要先考慮清楚:工程和算法評測的邊界在哪里?如果不理清工程和算法評測的邊界端到端測試的用例數量將非常巨大。語料的泛化在算法評測階段進行只需要覆蓋所有的功能邏輯即可。我們需要把握好這個度。否則將耗費非常大的人力和時間成本。
在測試數據上,我們覆蓋的是線上真實的語料+數據驅動的工程定向語料集合。在不考慮泛化能力的情況下測試數據都是可窮舉的。技能支持的領域、意圖,這些信息在數據庫中都可以找到,可以通過拼裝的方式自動生成測試語料。
如上圖所示。NLU包含工程介入NLU和算法模型NLU兩部分。工程介入NLU。是出于用戶自定義問答的需要。在算法模型NLU之前,工程強制干預的數據處理行為。其優先級高于算法模型NLU。對于算法模型nu我們通過算法評測進行測試。對于工程介入NLU我們可以通過自動化的方式生成測試數據。工程介入nu都是基于一定的規則。將數據庫中的元數據作為判斷的依據,進行語義理解。所以工程介入NLU可以通過掃描庫表中的元數據根據一定的語法規則來拼裝并生成測試語料。
3. 語音耗時測試
天貓精靈既是一款互聯網產品,也是一款智能設備。市場上存在諸多競品,想要在殘酷的市場環境中贏得競爭。就必須在各項質量指標上做到極致。對于用戶來說,最重要的體驗指標是指令達成和指令響應耗時。對于指令達成,我們將在后面的算法評測環節介紹。下面先介紹一下指令響應耗時的測試,主要介紹語音響應耗時。
4. 語音響應耗時
當用戶向天貓精靈詢問今天天氣怎么樣?如果等待答復時間超過五秒,那么估計用戶就會抓狂。所以音箱的響應體感耗時顯得格外重要。
天貓精靈團隊開發了一款播放錄音軟件叫天機尺。播放詢問語料后,等待一段時間,音響會進行語音答復。語料的播放和音響答復的時間在錄音軟件上都會形成波形,而這兩者之間沒有波形的部分就是我們等待的時長。天機尺的發明開啟了天貓精靈用戶體感響應時間測試的新紀元。在此之前,我們根據埋點計算得出語音響應耗時為1.5秒,但使用天機尺測量出的耗時是2.8秒,差距將近百分之百。正因為存在如此巨大的差距,我們進行了重點排查,發現了很多原來的埋點發現不了的問題,稱之為隱形延時,造成這個原因主要是因為很多地方無法埋點,如硬件延時、tts靜音頭等。
五、算法評測
算法是智能音箱的靈魂,對用戶意圖的識別、理解均是通過算法實現的。智能音箱的算法評測主要包括喚醒評測、誤喚醒評測、ASR 評測、NLU 評測以及指令達成率評測。
算法評測主要分為離線評測和在線評測兩部分。有些指標只能做離線評測,如喚醒率,有些指標只能做在線評測,如指令達成率:有些指標既可以做離線評測也可以做在線評測,如誤喚醒、ASR、NLU。離線評測使用大數據測試集進行測試,看產出的結果是否滿足期望,類似于功能測試,但其測試的數據量遠超功能測試的數據量。功能測試集的數據量級最多上萬,而離線評測集的數據量級動輒達到幾萬、幾十萬、甚至上百萬。在線評測主要依賴人工每天抽取一定量的數據進行標注,分為goodCase 和 badCase,標注后的數據全部回流進數據池,可以補充離線評測數據集,badCase 也會回流給算法進行算法優化。
1. 喚醒評測
出于對用戶隱私保護的需要,天貓精靈只會將喚醒后的音頻數據上傳,我們無法獲取喚醒前的音頻數據,所以是無法得知用戶發出喚醒指令而天貓精靈沒有被喚醒的情況,故喚醒評測只能在實驗室進行。
2. 誤喚醒評測
誤喚醒評測分為實驗室評測和線上評測兩部分。在實驗室評測中,我們模擬家庭環境,利用電嘴在不同的方位24小時不間斷播放環境噪音音頻。通過統計音響被喚醒的次數,計算得出誤喚醒的指標。用此方法得出的指標稱為實驗室數據。主要用于新設備或算法模型上線前的評估。線上的誤喚醒評測主要通過標注的方式進行,每天抽取一定量的音頻,通過人工的方式判斷音頻中是否有喚醒詞,如果沒有就標記為一次誤喚醒。喚醒率等于被喚醒的次數/抽樣的數據量,此方法得出的誤喚醒率代表了線上的真實使用情況,具有較大的參考意義。
3. ASR評測
端到端語音自動化功能測試的主要目的是驗證整體流程是否正確,其測試音頻可以通過一些技術手段合成,而asr評測的目的在于衡量系統的不同地域、年齡、性別、屬性語音識別的準確率。通過一些技術手段合成的音頻目前已經不能滿足要求,所以ASR評測的音頻數據必須通過數據采集或者線上數據回流得到。天貓精靈有專門的數據采集團隊,主要根據需求處理算法冷啟動所需的數據,之前我們只是簡單的跟供應商合作提出數據需求,由供應商根據需求人工采集數據,但由于設備類型眾多,供應商需要重復錄制很多次,這種方法成本高且效率低下。于是我們自研了自動化數據采集工具。供應商只需要提供原始音頻,在家庭環境中用電嘴播放原始音頻,在電阻周邊不同的距離角度放置錄音設備。用上位機控制錄制設備,這樣便大大的降低了采數據采集成本。但這樣采集到的數據仍然不能滿足評測對數據的需求,因為數據采集系統無法模擬線上所有用戶的使用情況,數據回流仍然是評測數據的重要來源之一,因此我們每天抽取一定量的線上數據進行標注。將標注后的數據回流進評測數據庫,以此來評測ASR算法。
字正確率和矩正確率是業界通用的,評估AsR質量的可靠指標。評測時將音頻通過接口發送給asr服務器,由服務器進行識別并返回文本,結果與標注文本進行對比。
計算字準確率和句準確率指標計算方式:為了使識別的文本與標注文本一致,需要對識別的文本進行刪除、插入、替換等操作,這些刪除插入替換的字數即錯誤的總字數。
單個用例字錯誤率=1-單個用例字錯誤率
單個用例正確的字數=標注文本-單個用例錯誤的字數
總體字正確率=正確的總字數/標注文本總字數
總體句正確率=句正確的文本總字數/標注文本總字數
4. NLU評測
NLU用于處理Asr識別后的文本,對用戶的意圖進行理解,并對處理結果的dis進行標準化處理,所以NLU的評測是通過正確率來衡量的。NLU的評測比ASR的評測要簡單得多,它不需要對地域年齡、性別等音頻的多樣性特征進行處理。它的輸入是文本,故NLU評測只需要建立一定數量的語料文本集即可,數據集可以通過線上數據回流或者技術泛化建立。
總結
以上是生活随笔為你收集整理的AI测试|天猫精灵智能音箱测试策略与方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超级艺术家:DeepStyle for
- 下一篇: UG二次开发装配篇 添加/拖动/删除组件