• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2020-10-27 03:19:12劉布麒
      控制與信息技術(shù) 2020年4期
      關(guān)鍵詞:語音指令測試環(huán)境測試用例

      鐘 理,劉布麒,楊 穎

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

      0 引言

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

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

      1 系統(tǒng)方案

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

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

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

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

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

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

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

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

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

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

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

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

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

      控制電源用于給被測顯示器供電,利用USB 接口進(jìn)行通信,使用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 自動(dòng)化測試軟件架構(gòu)Fig. 2 Software structure diagram of the automatic test environment

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

      1.3 測試流程

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

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

      2.1 多線程語音合成

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      3 應(yīng)用情況

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

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

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

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

      4 結(jié)語

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

      猜你喜歡
      語音指令測試環(huán)境測試用例
      基于機(jī)載語音識(shí)別軟件中的分段識(shí)別設(shè)計(jì)
      全數(shù)字仿真測試環(huán)境在航天軟件測試中的應(yīng)用研究
      用樹莓派做自己的智能音箱
      基于SmartUnit的安全通信系統(tǒng)單元測試用例自動(dòng)生成
      雷達(dá)航跡處理測試環(huán)境構(gòu)建方法研究
      科技視界(2019年10期)2019-09-02 03:22:27
      簡易分析判斷語音識(shí)別智能車的設(shè)計(jì)
      網(wǎng)絡(luò)設(shè)備自動(dòng)化測試設(shè)計(jì)與實(shí)現(xiàn)
      基于混合遺傳算法的回歸測試用例集最小化研究
      負(fù)離子紡織品檢測方法分析
      中國纖檢(2015年4期)2015-03-13 18:25:35
      基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
      冷水江市| 南乐县| 新晃| 松原市| 临邑县| 丰顺县| 周口市| 德惠市| 曲周县| 苍南县| 闽侯县| 九寨沟县| 基隆市| 彭州市| 资兴市| 砚山县| 德惠市| 永昌县| 三明市| 太原市| 康乐县| 福鼎市| 安仁县| 白城市| 元阳县| 虞城县| 治多县| 邵东县| 大港区| 密云县| 贵阳市| 五台县| 金寨县| 怀集县| 同心县| 定日县| 潍坊市| 乃东县| 杂多县| 吉林省| 河北省|