胡銳 孫先松
摘要:隨著人工智能技術的發(fā)展,語音識別已經(jīng)成為了最熱門的應用之一。語音識別在一些特定的領域和特定的情景下,有著不可替代的作用。而人們生產(chǎn)、生活的需要,特別是物聯(lián)網(wǎng)的發(fā)展,推動了嵌入式和語音識別的結合。本設計應用了Qt的可移植性,在ARM9的平臺上使用百度AI實現(xiàn)了語音識別功能。通過WM8976g聲卡模塊采集語音,在LCD顯示語音特征信息,實現(xiàn)語音識別功能。
關鍵詞:ARM9;語音識別;百度AI;Qt
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2018)27-0202-03
語言作為人類在自然界中最顯著的特征,具有方便、快捷、自然和準確性高等特點。這些年,隨著人們生活水平的提高,人們對生活方式有了新的要求,傳統(tǒng)的控制方式越來越不能滿足人們的需求。隨著人工智能的推廣,其中作為主要組成部分的語言識別得到社會越來越多的關注?,F(xiàn)在,語音識別技術在日常生活中也應用的越來越多,人們的生活也越來越方便,對語音識別方面的研究是必然的,有用的。
語音識別技術一直都是控制技術的主要研究方向。在一些特定的領域和時間、地點,有著不可代替的作用。例如,為了提高生活質(zhì)量,現(xiàn)在正在高速發(fā)展的智能家居就是語音識別的進一步的應用;對于平常我們用得最多的嵌入式設備——手機,幾乎所有的智能手機都安裝有語音助手來方便用戶的使用;在公共場合,對于盲人等行動不便的群體,使用語音識別更是必不可少的。
語音識別系統(tǒng)一般都被運行在嵌入式和PC機上。雖然PC機和嵌入式設備相比有存儲空間大、運行速度快和運行能力強等優(yōu)點,但是價格較高,體積大,最重要的是不方便攜帶,這些都限制了語音識別在PC上的使用范圍?;谏厦娴脑?,人們都偏愛于體積小、價格低、功耗低并且方便攜帶的嵌入式系統(tǒng),而嵌入式語音系統(tǒng)應時而生,符合社會的需求。
本系統(tǒng)采用ARM9構架的S3C2440作為主控芯片,利用Linux系統(tǒng)作為底層操作系統(tǒng),Qt作為外包應用層,來操作WM8976g采集指定頻率的聲音信號,并把采集到的音頻傳于Ubuntu服務器,Ubuntu服務器和百度AI進行交互后,在開發(fā)板的TFT顯示屏上打印百度AI返回的轉(zhuǎn)換為文本的語音信息。
1 嵌入式語音識別系統(tǒng)的設計
1.1 嵌入式系統(tǒng)中的硬件設計方案
本語音識別系統(tǒng)應用的主控芯片為S3C2440。S3C2440是韓國三星公司研發(fā)的一款基于ARM9構架的32位CMOS微控制器。并使用WM8976g采集聲音信號,百度AI提供語音處理接口,并在S3C2440控制的TFT顯示屏上打印返回信息,軟硬件自己剪裁。
1.2 嵌入式系統(tǒng)的系統(tǒng)設計方案
開發(fā)嵌入式系統(tǒng),在最基本的硬件之上,需要根據(jù)實際的需要,搭建相應的系統(tǒng),為后面的應用層的使用創(chuàng)建環(huán)境。這里使用的是Linux操作系統(tǒng),Linux是一套自由傳播并且免費使用的類Unix操作系統(tǒng),是一種支持多用戶、多線程、多用戶、多CPU的操作系統(tǒng)。嚴格的來講。Linux本身只代表 Linux內(nèi)核,在使用中,人們習慣于用Linux來代表整個Linux操作系統(tǒng)。
由于在精簡小巧的嵌入式系統(tǒng)上,資源有限,通常我們開發(fā)是都是在PC上完成有關程序的編寫和測試,但是由于目標平臺(ARM開發(fā)板)和宿主平臺(LinuxPC機)構架不同,在PC上編寫、編譯的程序不能直接在目標平臺上直接運行,為了讓目標平臺可以運行PC機編譯生成的結果,在嵌入式開發(fā)過程中,通常使用交叉編譯工具來生成目標平臺可以運行的可以可執(zhí)行文件,所以交叉編譯環(huán)境的搭建是必不可少的一步。
在搭建整個Linux嵌入式系統(tǒng)時,需要用到的工具包括:
1) arm-linux-gcc-4.4.3.tar.gz
2) linux-2.6.22.6.tar.bz2
3) tslib-1.4.tar.gz
4) u-boot-1.1.6.tar.bz2
5) busybox-1.22.1.tar.bz2
6) Qt-everywhere-opensource-src-5.6.0.tar.gz
在本次設計中,第一步需要做的是在虛擬機中安裝Ubuntu16.04操作系統(tǒng),并在操作系統(tǒng)中配置好交叉編譯的環(huán)境,方便后面交叉編譯工具的使用。
在arm-linux-gcc-4.4.3的環(huán)境下,修改并交叉編譯u-boot-1.1.6,并移植u-boot到s3c2440開發(fā)平臺。使用u-boot啟動arm-Linux編譯通過的Linux內(nèi)核,內(nèi)核進一步掛接arm-Linux編譯生成好的文件系統(tǒng),并在文件系統(tǒng)加入Qt5.6的開源庫,為后面應用層的實現(xiàn)提供頭文件和庫函數(shù)。
1.3 嵌入式系統(tǒng)設計的軟件設計方案
在設計中,考慮到整個系統(tǒng)的整體性和可移植性,決定在基于Linux嵌入式系統(tǒng)下移植Qt5.6版本的opensource開發(fā)庫,并應用QtCreator為整個設計提供應用層。
Qt是奇趣公司研發(fā)的一款跨平臺C++圖形用戶界面的程序制作框架。除了制作GUI界面外,還可以用來制作服務器和控制臺工具。Qt這個詞嚴格來說是指用于C++語言開發(fā)的開源庫,一般情況下需要于QtCreator或者QTSDK聯(lián)合使用。
1.3.1 制作客戶端GUI
在Windows環(huán)境下,在Qt官網(wǎng)下載并安裝好基于Qt5.6的QtCreator,并完成相應GUI的制作。其中包括三個PushButton和一個TextBrowser控件,三個PushButton分別用來實現(xiàn)錄音、結束錄音、發(fā)送錄音,TextBrowser打印狀態(tài)和錯誤信息。
1.3.2 在GUI中功能的實現(xiàn)