国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

智能顯示器語音識別軟件的自動化測試環(huán)境

2020-10-27 03:19劉布麒
控制與信息技術(shù) 2020年4期
關(guān)鍵詞:測試用例線程串口

鐘 理,劉布麒,楊 穎

(中車株洲所電氣技術(shù)與材料工程研究院,湖南 株洲 412001)

0 引言

在智軌電車司機室使用的智能狀態(tài)顯示器,除提供基本的車輛控制狀態(tài)顯示與司機操控功能外,還具有智能語音處理與智能圖像處理功能,支持語音識別、語音播報等人機交互方式[1]。在智能顯示器的軟件開發(fā)過程中,需對軟件功能進行測試。根據(jù)標(biāo)準(zhǔn)GB/T 21023-2007《中文語音識別系統(tǒng)通用技術(shù)規(guī)范》的要求,在語音識別系統(tǒng)的測試工作中,應(yīng)采用基于語音識別標(biāo)準(zhǔn)庫或者基于現(xiàn)場口呼的測試方法,以確保語音輸入的語速、語調(diào)等有多種組合覆蓋[2]。在對智軌電車智能顯示器進行語音識別測試時,除了使用符合標(biāo)準(zhǔn)GB/T 21023-2007要求的語音指令進行測試以外,還需要考慮交通工具應(yīng)用環(huán)境中各種現(xiàn)場噪聲的影響[3];對于測試過程中出現(xiàn)的問題,也需要進行全部用例的回歸。

傳統(tǒng)的測試軟件庫中沒有針對智能顯示器測試所需的現(xiàn)場噪聲信號配置,需要建立新的測試語音組合,資源開銷大且組合的可擴展性不足;口呼測試的方式可以評估軟件對口令的反應(yīng),但因為對應(yīng)噪聲的發(fā)生時間有先后次序,復(fù)現(xiàn)噪聲環(huán)境中測試出現(xiàn)的問題有一定難度。鑒于此,針對顯示器語音識別的技術(shù)特點,本文提出一種基于從文本到語言技術(shù)(text to speech,TTS)的語音識別自動化軟件測試環(huán)境的具體實現(xiàn)方法,利用腳本自動建立多種要素組合的語音指令并同步播放,自動對識別結(jié)果進行評估。該測試環(huán)境可擴展性好,可以靈活擴充語音指令以及外部噪聲,并配置噪聲與指令的時序,且只需對測試配置與測試腳本稍加修改便可用于同類語音識別軟件測試,具有一定通用性。

1 系統(tǒng)方案

1.1 系統(tǒng)核心功能

測試環(huán)境的系統(tǒng)核心功能包括語音指令合成、測試腳本框架及測試用例管理。

語音指令合成主要是根據(jù)標(biāo)準(zhǔn)GB/T 21023-2007 的要求以及智能顯示器的語音指令集,合成各種符合測試要求的語音指令,滿足被測試智能顯示器的測試用例輸入要求。

測試腳本框架主要提供測試腳本自動化運行的支持,包括腳本的運行環(huán)境和操作工控機、外部程控電源接口、結(jié)果記錄等。其不僅提供了測試用例輸入的標(biāo)準(zhǔn)模式,同時也支持測試結(jié)果的判斷,其使用為測試用例管理也提供了條件。

測試用例管理利用測試腳本來執(zhí)行。測試用例在腳本中使用函數(shù)的形式進行維護并在函數(shù)中記錄測試用例的輸入,通過調(diào)用測試框架中提供的計時、語音合成及硬件端口管理等功能來實現(xiàn)測試用例管理,記錄和分析測試結(jié)果,并將失敗的測試用例統(tǒng)一與缺陷管理工作相關(guān)聯(lián)。

1.2 測試環(huán)境系統(tǒng)組成

測試環(huán)境系統(tǒng)主要由硬件和軟件兩部分組成。硬件部分主要用于聲音信號的播放,同時與被測軟件通信;軟件部分主要用于指令聲音信號的合成與測試用例調(diào)度,并對識別結(jié)果進行判斷。

1.2.1 系統(tǒng)硬件組成

在智能顯示器語音測試過程中,驅(qū)動軟件語音識別功能的數(shù)據(jù)主要是語音信息,而測試結(jié)果主要通過串口輸出,因此測試環(huán)境的數(shù)據(jù)輸入和輸出需要與之匹配[4]。測試環(huán)境的數(shù)據(jù)輸出使用揚聲器來發(fā)送語音信號,串口通信主機與顯示器間采用串口通信以滿足測試環(huán)境的信息輸入與輸出需求??紤]到語音測試自動化的需要,系統(tǒng)硬件主要分為語音播放部分、工控機、通信部分和控制電源(圖1)。

圖1 語音識別自動化測試環(huán)境硬件連接圖Fig. 1 Hardware connection diagram of speech recognition automated test environment

語音播放硬件主要包含USB 聲卡擴展、放大器和揚聲器,用于實現(xiàn)測試工作的發(fā)聲需求。

工控機用于提供測試腳本的運行環(huán)境,支持測試用例的自動化執(zhí)行,進行測試管理相關(guān)工作。

通信部分用于建立被測件與工控機之間、控制電源與工控機之間的聯(lián)系通道,包括USB 連接方式以及串口連接方式,便于工控機與被測顯示器、程控電源的通信以及結(jié)果的檢查。

控制電源用于給被測顯示器供電,利用USB 接口進行通信,使用VISA 協(xié)議控制設(shè)備狀態(tài)。

1.2.2 測試環(huán)境軟件架構(gòu)

測試環(huán)境軟件架構(gòu)分為3 層,分別是系統(tǒng)層、中間層和應(yīng)用層(圖2),其中系統(tǒng)層與硬件直接關(guān)聯(lián)。

圖2 自動化測試軟件架構(gòu)Fig. 2 Software structure diagram of the automatic test environment

系統(tǒng)層為測試工作開發(fā)與運行的基礎(chǔ),其包括工控機的操作系統(tǒng)軟件、Python 腳本的開發(fā)與運行環(huán)境、與工控機直接關(guān)聯(lián)的驅(qū)動硬件。中間層即測試框架,用于實現(xiàn)本測試環(huán)境所需的關(guān)鍵功能,其包含語音合成、噪聲合成、時間信息管理及測試記錄等模塊。應(yīng)用層主要是測試用例,為具體的測試用例實現(xiàn)模塊,還有測試用例調(diào)度、測試初始化及測試結(jié)果數(shù)據(jù)處理等模塊。應(yīng)用層調(diào)用中間層的所有功能,與其進行數(shù)據(jù)交換;同時,中間層與系統(tǒng)層進行數(shù)據(jù)交換,驅(qū)動系統(tǒng)層執(zhí)行對外指令輸出與讀取外部數(shù)據(jù)。

1.3 測試流程

測試過程中,先進行基本的語音指令測試,檢查軟件能否對每個指令做出正確的反應(yīng);接著對所有指令設(shè)置不同的語調(diào)、語速的組合,利用窮舉法檢查軟件識別的正確率以及響應(yīng)時間;最后使用等價類劃分法來確定典型的環(huán)境噪聲并進行環(huán)境噪聲合成指令的語音識別測試,檢查識別正確率。在測試過程中,先記錄軟件的識別時間,最后分析時間性能。在組合各要素進行測試的過程中使用自動化測試手段,確保覆蓋所有的指令要素;如果發(fā)現(xiàn)缺陷,軟件進行修復(fù)以后,將所有的測試用例再執(zhí)行一次。

2 關(guān)鍵技術(shù)

2.1 多線程語音合成

傳統(tǒng)的語音識別測試環(huán)境使用語音庫形式,配合不同的命令詞、語速及語調(diào)的組合,數(shù)據(jù)量非常龐大,建設(shè)成本高昂且不易管理。在本測試環(huán)境中,在Python腳本中調(diào)用Pyttsx 庫來實現(xiàn)語音的合成。

Pyttsx 是一套基于SAPI5 文語合成引擎的Python 封裝庫。SAPI 全稱為“The Microsoft Speech API”,是微軟公司推出的語音應(yīng)用編程接口。Pyttsx 支持將txt 文本轉(zhuǎn)化為語音在線播放,在播放語音時還支持設(shè)置發(fā)音的語速、語調(diào)及音量。在本測試環(huán)境中,利用Pyttsx 的語音合成能力,將語音控制指令文本轉(zhuǎn)化為語音命令進行播放。

測試用例設(shè)計時,為滿足測試過程中語音指令應(yīng)具備不同語速以及語調(diào)的要求,需借助Pyttsx 的語速和語調(diào)設(shè)置能力。普通人發(fā)聲的標(biāo)準(zhǔn)語速約為150 字/min,根據(jù)等價類劃分的原則設(shè)計不同語速的等價類,包括100 字/min、125 字/min、150 字/min、175 字/min 及200 字/min,對此Pyttsx 都能夠通過設(shè)置rate 屬性的具體數(shù)值來進行支持。語調(diào)方面,Pyttsx 支持通過設(shè)置voices屬性,調(diào)用系統(tǒng)中安裝了發(fā)音人聲音,以切換不同的語調(diào)效果,包括男聲和女聲等??紤]到使用場合的特點,發(fā)音人沒有使用童聲效果。圖3 示出語音指令的音頻波形,圖中采樣信號強度為其轉(zhuǎn)換為數(shù)字量后的數(shù)值(如采樣精度為16 bit 時,其信號強度幅值為216=65 536,即范圍為-32 768 ~ 32 768)。

圖3 語音指令的音頻波形Fig. 3 Audio waveforms of voice command

測試過程中,外部噪聲干擾對語音識別的影響也是測試設(shè)計時需考慮的重要因素之一。根據(jù)智能顯示器的應(yīng)用環(huán)境,測試工程師設(shè)計了常見現(xiàn)場噪聲的等價類作為噪聲影響的測試依據(jù),主要包括手機在司機臺上的來電振動聲、鳴笛聲、風(fēng)噪聲(20 km/h,60 km/h 及100 km/h 風(fēng)速下的)及雨點敲擊玻璃的聲音。測試工程師在現(xiàn)場錄制了這幾種聲音素材,其為雙聲道,采樣率為44.1 kHz,采樣精度為16 bit,保存格式為WAV。圖4 示出語音指令與風(fēng)噪聲同時播放時的音頻波形。

圖4 語音指令與風(fēng)噪聲同時播放時的音頻波形Fig. 4 Audio waveforms of voice command and noise playing simultaneously

在本測試環(huán)境中,應(yīng)用了Python 的多線程支持特性來進行語音指令與外部噪聲的音效合成。測試腳本中設(shè)計了專門的背景噪聲播放線程,可以控制其聲音大小以達到信噪比的要求。當(dāng)需要疊加時,啟動背景噪聲播放線程,即同時播放出語音指令和背景噪聲,能夠較好地達到測試語音識別功能的要求,且可重復(fù)性與可控性好,易于復(fù)現(xiàn)故障狀態(tài)。

2.2 響應(yīng)時間性能

根據(jù)標(biāo)準(zhǔn)GB/T 21023-2007 的要求,系統(tǒng)響應(yīng)時間使用實時系數(shù)來進行性能衡量。實時系數(shù)r 定義如下:

式中:Ts——發(fā)音起始時間;Te——發(fā)音結(jié)束時間;Tr——識別結(jié)束時間。

在本測試環(huán)境中,Ts及Te利用在測試腳本的時間管理線程中插入的時間戳進行時間點記錄;Tr是利用智能顯示器上軟件發(fā)出識別結(jié)果來判斷的,該識別結(jié)果通過串口傳輸?shù)綔y試環(huán)境中的工控機,當(dāng)工控機接收到串口傳輸數(shù)據(jù)時進行時間點記錄。串行通信傳輸線長度為1 m,傳輸波特率為9 600 kb/s,識別結(jié)果的數(shù)據(jù)長度為4 字節(jié)且在實驗室環(huán)境下受干擾的影響很小,因此可以近似地認為傳輸延時Tt為微秒級,與語音識別功能所需的秒級時間相比,其可以被忽略。在測試過程中,同一個用例需要反復(fù)執(zhí)行多次,對計時結(jié)果取平均值作為測試結(jié)果[5]。

根據(jù)測試環(huán)境調(diào)試過程中的經(jīng)驗,語音識別存在失敗的可能,其會導(dǎo)致沒有反饋信息,因此在時間管理線程中設(shè)計了超時保護機制,以防止測試腳本因一直等待而發(fā)生死鎖;也有可能在沒有語音指令時發(fā)生誤報現(xiàn)象,這些都需要獨立的串口通信線程進行通信結(jié)果的判斷與保護,防止影響正常測試過程的數(shù)據(jù)的產(chǎn)生。

2.3 單個測試用例的執(zhí)行

測試用例執(zhí)行過程中,TTS 語音合成、測試結(jié)果的判斷與記錄、線程調(diào)度等主要功能都利用測試用例函數(shù)實現(xiàn)(圖5)。測試用例腳本執(zhí)行過程中,共有3 個線程并行工作,分別是串口通信線程、時間管理線程和背景噪聲播放線程。串口通信線程主要工作是監(jiān)視串口接收緩沖區(qū),接收到數(shù)據(jù)的時候,通知時間管理線程語音識別結(jié)束并保存記錄的數(shù)據(jù)供測試用例函數(shù)查詢。時間管理線程用于記錄語音播放的開始時間以及結(jié)束時間,便于測試用例函數(shù)計算時間性能;同時進行超時檢測,一旦發(fā)生超時,立刻通知關(guān)閉串口通信線程。根據(jù)測試用例設(shè)計,一部分用例需要使用背景噪聲,在這些用例執(zhí)行時,測試用例函數(shù)啟動語音播放功能之前會啟動噪聲播放線程,同步播放選定的噪聲信號,以確保合成所需要的音效。

圖5 單個測試用例執(zhí)行過程的序列圖Fig. 5 Sequence diagram of single testcase execution process

測試用例函數(shù)的主要工作步驟如下:

(1) 測試用例函數(shù)完成自身數(shù)據(jù)初始化后,首先啟動串口通信線程,然后啟動時間管理線程,根據(jù)測試腳本的設(shè)計來啟動噪聲生成線程。

(2) 各線程啟動完畢后,測試用例函數(shù)并通知時間管理線程語音播放開始;啟動測試用例函數(shù)的語音TTS功能,實時生成語音指令并進行播放,然后通知時間管理線程語音播放結(jié)束。

(3) 等待一段時間后,查詢通信結(jié)果與計時信息;關(guān)閉時間管理進程,通過比對測試用例的語音指令輸入與返回結(jié)果是否一致,來判斷測試結(jié)果是否通過,并對測試結(jié)果進行記錄。

3 應(yīng)用情況

為了評估語音合成的效果,對合成語音指令與口呼語音指令音頻進行了比對分析。分析過程中,首先對指令音頻文件進行頻域變換,提取語音指令的梅爾倒譜參數(shù)(MFCC)特征[6],然后利用隱性馬爾可夫模型(HMM)機器學(xué)習(xí)模型對口呼指令的特征值進行訓(xùn)練[7],最后計算合成指令特征在訓(xùn)練集中的匹配程度,作為兩者符合情況的分析結(jié)果。該評估方法基于人的聽覺感受,通過一系列的頻域和時頻域分析來測量合成語音指令與口呼指令在聽覺上的相似程度。此處使用語音合成的3 個指令進行比較,對比口呼的相應(yīng)指令的符合程度,同時加入了一個口呼指令作為參考,比較結(jié)果見表1。表中的數(shù)值為對HMM 模型計算的合成指令與口呼指令匹配概率進行對數(shù)換算后得到的結(jié)果,因此數(shù)值為負數(shù)。第一行中輸入指令合成A 與口呼指令A(yù) 的匹配識別結(jié)果數(shù)值最大,表示兩者匹配概率最大;同樣的,指令合成B/C 與對應(yīng)口呼指令的匹配識別結(jié)果數(shù)值最大,高于其他口呼指令的匹配識別結(jié)果,說明合成指令與口呼指令一致性好[3]。

表1 合成指令與口呼指令識別結(jié)果Tab.1 Recognition results of synthetic command and spoken command

本測試環(huán)境在智軌電車智能顯示器語音識別測試中已經(jīng)得到了成功的應(yīng)用,利用Python 語言編寫自動化測試腳本,實現(xiàn)了測試用例的設(shè)計意圖。測試腳本覆蓋了所有語音指令,并在每條指令執(zhí)行過程中使用了5 種語速、3 種語調(diào)、4 種噪聲、3 種信噪比的組合模式,同時執(zhí)行了指令的近音詞語音生成與判斷,完成了指令的多種語音要素的遍歷;同時,利用腳本的特性,在測試設(shè)計過程中引入了隨機測試的概念,主要測試語音指令發(fā)出時噪聲隨機發(fā)生時間對指令識別的影響。

經(jīng)過測試后,被測軟件的可靠性得到提高,功能、性能得到驗證。傳統(tǒng)的語音識別測試方法為口呼或者錄音,口呼全部指令以及組合各種語素需3 個人花費約60 h 時間,且存在口呼時語速精度不高的問題。與口呼相比,本測試環(huán)境利用腳本批量生成標(biāo)準(zhǔn)的指令,在同樣覆蓋率的情況下,一個輪次測試人工時間成本降低30%左右;在重復(fù)執(zhí)行用例以及回歸測試過程中,腳本可以自動執(zhí)行并判斷結(jié)果,時間成本的降低更加明顯。

4 結(jié)語

本文提出了一種用于語音識別軟件的自動化測試環(huán)境,其滿足標(biāo)準(zhǔn)G B/T 21023-2007 的測試要求,使語音識別軟件測試更加完善。在實際項目應(yīng)用中對設(shè)計框架進行驗證,結(jié)果表明,該測試環(huán)境具有測試覆蓋率高、測試效率高、測試成本低的優(yōu)點,對相關(guān)軟件測試工作具有實際的應(yīng)用與指導(dǎo)意義。目前本測試環(huán)境對于方言發(fā)音的支持力度不足,需人工生成方言指令語音,這是下一步研究和改進的方向。

猜你喜歡
測試用例線程串口
實時操作系統(tǒng)mbedOS 互斥量調(diào)度機制剖析
測試用例自動生成技術(shù)綜述
基于NPORT的地面綜合氣象觀測系統(tǒng)通信測試方法及故障處理
回歸測試中測試用例優(yōu)化技術(shù)研究與探索
基于API函數(shù)庫實現(xiàn)串口數(shù)據(jù)通信的分析與設(shè)計
基于EM9000工控板高性能雙串口通信模型設(shè)計與實現(xiàn)
基于國產(chǎn)化環(huán)境的線程池模型研究與實現(xiàn)
船舶電子設(shè)備串口數(shù)據(jù)的軟件共享方法
測試工時受限的測試策略研究
計算機中的多線程問題