陳剛
哈曼(中國)投資有限公司 上海 200233
根據(jù)語音識別模塊收到的外部語音識別順序,給出相應(yīng)的操作列表,識別結(jié)果通過并行端口以二進制代碼的形式傳遞給內(nèi)核處理器。獲得相應(yīng)的二進制代碼后,處理器可以根據(jù)其二進制代碼運行相應(yīng)的二進制代碼??梢娬Z音識別模塊是系統(tǒng)人機交互界面。它通過麥克風(fēng)接收語音控制,執(zhí)行語音識別,然后將識別結(jié)果以二進制代碼的形式傳遞給中央控制器進行處理。語音控制計劃的結(jié)構(gòu)簡單易行。只要配備了語音識別模塊,語音控制功能就可以很好的完成[1]。
該軟件使用開放源代碼An-droid 操作系統(tǒng)。硬件結(jié)構(gòu)包括A R M 控制器、LCD 觸摸屏和硬件驅(qū)動電路、脫機語音識別單元和外圍硬件模塊。其中,主控車載采用Samsung 四核處理器Exynos4412(基于Cortex-A9 結(jié)構(gòu)),具有1GBDD R 3 內(nèi)存和最高2GHz 工作頻率。Exy-nos4412 配備了高性能數(shù)據(jù)處理引擎,為收集和處理車輛數(shù)據(jù)信號提供了有利條件。系統(tǒng)配備支持多點觸控、800×480 分辨率和快速響應(yīng)的AT070TN92 觸摸屏。顯示器通過45pin 接口直接連接主控制器,可以掃描控制現(xiàn)場信號、背光控制信號和能量信號[2]。
在線語音識別采用神經(jīng)網(wǎng)絡(luò)識別算法和HT-TP 模塊的要求,縮短了開發(fā)周期,降低了成本。本文通過訪問百度語音API 實現(xiàn)在線語音識別此功能主要通過軟件編程、Java 語言,IDE 為Eclipse環(huán)境實現(xiàn)??紤]到整個識別過程的長度,為了不影響其他事件的操作,設(shè)計采用多線程操作模式,實現(xiàn)過程如圖1 所示。
初始化首先包括主控制器和電子設(shè)備的初始化。主要任務(wù)包括Android 系統(tǒng)的初始配置、液晶屏的初始配置、網(wǎng)絡(luò)通信系統(tǒng)的初始配置以及麥克風(fēng)的使用。接下來,打開主更新和語音識別以及用戶界面計算線程。語音識別線程必須連接到網(wǎng)絡(luò),這會導(dǎo)致相對較長的處理時間。但是,要與驅(qū)動程序通信,必須將生成的數(shù)據(jù)發(fā)送到主用戶界面線程以進行接口更新。
任何其他語音識別類型都使用中文文本庫作為匹配對象。Ld3320 語音識別芯片通過比較在芯片中輸入的關(guān)鍵字來實現(xiàn)語音識別。要識別的關(guān)鍵字以拼音字符串的形式寫入微控制器的工作存儲器ROM。使用LD3320 進行語音識別時,將分析語音信號并提取特征以匹配關(guān)鍵詞表中的信息。最好的識別是最相似的標(biāo)識。利用觸發(fā)識別技術(shù)實現(xiàn)車輛的語音環(huán)境特征換句話說,當(dāng)微控制器收到外部觸發(fā)指令(設(shè)計為驅(qū)動按鈕指令)時,它會觸發(fā)LD3320 識別條件,從而同時觸發(fā)語音識別過程。
對安裝在嵌入式系統(tǒng)上的任何導(dǎo)航軟件進行語音控制是指提取駕駛員的語音信息進行目標(biāo)搜索,然后使用Android 系統(tǒng)提供的互聯(lián)網(wǎng)機制將包含目標(biāo)緯度和經(jīng)度信息的目標(biāo)發(fā)送到第三方導(dǎo)航軟件,以實現(xiàn)語音通信和導(dǎo)航控制。為確保行車安全,數(shù)據(jù)處理線程重新分析了語音命令。當(dāng)解析結(jié)果是正確的導(dǎo)航命令時,從JSON數(shù)據(jù)結(jié)構(gòu)中提取目標(biāo)信息并啟動搜索線程以查找目標(biāo)。目的地搜尋有三個重要變數(shù):poicitysearch 起始搜尋對象、poicitysearch設(shè)定搜尋物件的參數(shù),以及On Get Poi Search Result Listener 是監(jiān)督有效搜尋結(jié)果的監(jiān)聽器類別。porest 結(jié)果資料是使用ongetporest 方法取得的。poirest 包含所有搜索結(jié)果的地址、統(tǒng)一標(biāo)識符ID、緯度和經(jīng)度信息。每個結(jié)果都包含在HashMap 中數(shù)據(jù)結(jié)構(gòu),所有HashMap 數(shù)據(jù)構(gòu)成一個列表。列表被封裝后,將被發(fā)送到用戶界面線程。啟動用戶界面線程后,將從列表中提取數(shù)據(jù),并在界面上創(chuàng)建目標(biāo)alertdialog 列表?;ヂ?lián)網(wǎng)是Android 應(yīng)用程序之間數(shù)據(jù)通信的橋梁。使用緯度和經(jīng)度設(shè)置啟動startactivity 導(dǎo)航并將數(shù)據(jù)配置為URI。導(dǎo)線從alertdialog 列表中選擇目標(biāo)時,將觸發(fā)包含緯度和經(jīng)度數(shù)據(jù)的目標(biāo)對象,并將其傳遞給第三方導(dǎo)航應(yīng)用程序。導(dǎo)航信息顯示在液晶屏上,最終進行語音控制導(dǎo)航[3]。
控制模塊聲音通過藍(lán)牙控制駕駛員的聲音。不同的語音指令會觸發(fā)不同的AT 指令,因此您可以回應(yīng)、呼叫、重?fù)苣橙撕蛽艽螂娫捥柎a。首先,主用戶界面線程接收語音識別線程的識別結(jié)果。此部分與語音導(dǎo)航相同,不會在此重復(fù)。從JSON 數(shù)據(jù)結(jié)構(gòu)中檢索控制電話信息,如檢測主電話號碼數(shù)字命令或直接控制命令(如回調(diào)、拒絕響應(yīng)等)。并將它們直接轉(zhuǎn)換為藍(lán)牙AT 命令。同樣,如果檢測到呼叫某人的控制命令,則會提取該姓名,并從通訊簿中提取電話號碼信息,然后將其轉(zhuǎn)換為藍(lán)牙AT 命令。按名稱查找電話號碼,然后使用Android 內(nèi)容提供程序和內(nèi)容解析器。Android 通訊簿是一個內(nèi)容提供商,用于將數(shù)據(jù)(與名稱匹配的電話號碼信息)傳輸?shù)絻?nèi)容掃描程序(藍(lán)牙串行線程),形成AT 命令并控制藍(lán)牙電話。
汽車駕駛提高了人們的生活質(zhì)量,但是汽車數(shù)量的增加也造成了交通擁堵和交通事故等嚴(yán)重的社會問題??茖W(xué)技術(shù)的進步促進了汽車電子的發(fā)展,而有輔助駕駛技術(shù)的智能車輛系統(tǒng)得到了更多的關(guān)注。因此,推出更安全、更人性化的智能汽車產(chǎn)品成為社會各界的期待。