語音助手的安卓客戶端設計
一、開發環境配置
本論文選用科大訊飛開發平臺提供的語音合成和語音識別技術,完成語音助手軟體的開發,最終在安卓手機上正常執行。在win10完成,使用android studio開發編譯,軟體測試機器為魅藍note2智慧手機,相關配置如下表
作業系統 | Flyme 4.5(基於Android 5.1) |
記憶體 | 2G |
Cpu | 1.3GHZ |
錄音器 | 支援16K、16bit錄音方式 |
二、介面設計
市場上的語音助手介面都簡單明瞭,所以我的語音助手主介面就仿製siri,
三、科大訊飛語音開發平臺的接入
由於科大訊飛識別採用了應用程式id認證的方式提供服務,所以要在官網上先註冊。語音助手後臺接入了科大訊飛的語音識別引擎、語音合成引擎和語音聽寫引擎,在平臺上實現對輸入語音的解析,然後將結果返回到手機客戶端。
1. 語音識別引擎
電話語音識別引擎InterReco能為自助語音服務提供關鍵字語音識別,為使用者提供全天候的優質語音服務。該產品整合了科大訊飛研究院、清華訊飛語音實驗室及科大訊飛語音實驗室在語音識別技術上多年的積累,專門針對中文語音識別的技術特點進行了全面的優化。針對語音識別應用經常面臨的的方言口音,背景噪聲和複雜通道等多種問題,InterRec收集不同方言和不同型別環境噪音的海量資料,採用最新的區分性訓練方法來進行語音建模。使應用在複雜的環境下有良好的表現,核心技術達到世界領先水平。
產品的主要功能特性:
a 對輸入語音進行預處理,使音訊符合識別要求:
(1)端點檢測 (2)噪音消除 (3)智慧打斷
b通過識別,分析最可靠結果:
(1)大詞彙量,獨立於說話人的健壯功能 (2)置信度輸出 (3)多識別結果
(4)說話人的自適應 (5)多槽識別 (6)熱詞識別 (7)智慧調整識別策略
(8)語音輸入 (9)語音日誌
1.1 語音識別語法功能
語法功能是語音識別系統中非常重要的一個部分,包含了語法和語義,語法就是列出了系統所有能支援的說話語句而語義就是列出每個關鍵詞的含義。
InterReco使用國際標準語法定義協議,提供最方便的語法功能,包括:
(1)支援XML格式和ABNF格式的語法書寫。
(2)支援線上編譯語法檔案也可以支援離線載入預編譯的二進位制檔案。
(3)系統執行中,可以通過開發介面動態載入和解除安裝語法。
(4)系統執行中,載入使用的語法,結束後也可以把該語法設定為非啟用狀態。
(5)InterReco可以對語法進行快取處理,提高系統性能。
(6)支援動態語法功能,因為有的語法不能在啟動應用前確定。
(7)通過分析,語法不同條目的權重,極大提高了系統語音識別的準確率。
(8)編譯過程中,自動優化語法,提高載入的速度。
(9)允許通過http協議獲取遠端服務以滿足不同應用需求。
(10)系統內建常用場景語法,加速程式開發過程。
1.2語音識別QISR介面
QISR介面實現語音識別功能,其提供的函式功能有
函式名稱 | 功能簡介 |
QISRInit | 初始化MSC的ISR部分 |
QISRSessionBegin | 開始一個ISR會話 |
QISRGrammarActivate | 傳入語法 |
QISRAudioWrite | 寫入用來識別的語音 |
QISRGetResult | 獲取識別結果 |
QISRUploadData | 上傳使用者自定義資料 |
QISRSessionEnd | 結束一路會話 |
QISRGetParam | 獲取/識別互動相關的引數 |
QISRFini | 逆初始化MSC的ISR部分 |
2 語音合成引擎
語音合成引擎InterPhonic使用先進的演算法和方法,合成效果自由度和流暢度接近真人發聲效果。主要功能特性有:
(1)快速將文字和語音資料轉換,合成高質量語音。
(2)支援粵語,河南話和四川話等多種方言的合成。
(3)使用者可自定義選擇厚重男聲和優美女聲的風格合成服務,滿足產品個性話需求。
(4)能智慧分析和處理特殊符號、標點符號等複雜文字。
(5)提供不同取樣頻率的音訊資料,滿足不同平臺需求。
(6)支援語速和語調等合成引數的動態調整。
(7)提供了定製資源包,對實現應用環境合成效果進行優化。
(8)為不同開發者以及不同平臺提供統一介面和訪問方式,快捷開發,透明訪問。
(9)InterPhonic支援預錄音擡升語音合成自然度和流暢度。
2.1 語音合成QTTS介面
QTTS介面實現語音合成功能,其提供的函式功能有
函式名稱 | 功能簡介 |
QTTSInit | 初始化MSC的TTS部分 |
QTTSSessionBegin | 開始一個TTS會話 |
QTTSAudioGet | 獲取合成語音 |
QTTSTextPut | 輸入要合成的文字 |
QTTSAudioInfo | 獲取音訊相關資訊 |
QTTSSessionEnd | 結束一路會話 |
QTTSLogEvent | 將使用者傳送的時間資訊記入伺服器端日誌 |
QTTSGetParam | 獲取合成互動相關的引數 |
QTTSFini | 逆初始化MSC的TTS部分 |
四 打電話模組的實現
1功能說明
使用者通過點選語音識別按鈕後,說出“打電話給XXX”就可以自動跳轉撥打電話頁面,從而撥打電話。
2 具體流程圖
(1)使用者點選識別按鈕,聽到“叮”的一聲後說出“打電話給mm”命令.
(2)語音助手獲取語音命令,然後將語音上傳到msp平臺。
(3)MSP平臺收到語音資料後進行轉寫和識別,然後將識別結果回傳給語音助手。
(4)語音助手接受並解析識別結果。
(5)語音助手將識別結果傳到電話的撥號處理模組
(6)撥號處理模組在通訊錄中查詢聯絡人,呼叫電話。
關注微信公眾號:嵌入式企鵝圈,獲得上百篇物聯網原創技術分享!