基於嵌入式Linux的語音識別系統硬軟體設計

2021-01-09 電子產品世界

  該設計運用三星公司的S3C2440,結合ICRoute公司的高性能語音識別晶片LD3320,進行了語音識別系統的硬體和軟體設計。在嵌入式Linux作業系統下,運用多進程機制完成了對語音識別晶片、超聲波測距和雲臺的控制,並將語音識別技術應用於多角度超聲波測距系統中。通過測試,系統可以通過識別語音指令控制測量方向,無需手動幹預,最後將測量結果通過語音播放出來。

本文引用地址:http://www.eepw.com.cn/article/278135.htm

  1.引言

  語言是人類傳播信息的重要手段,語音識別則是實現語音控制的關鍵技術。採用嵌入式語音識別技術使得設備具有功耗低、使用簡便、靈活等優點,擺脫了複雜按鍵和按鈕的困擾,在服務機器人、智能家居及消費電子等領域發揮著重要作用。

  2.系統構成與原理

  語音識別主要包括兩個階段:訓練階段和識別階段。在訓練或識別過程中,都必須對輸入語音進行預處理和特徵提取。訓練階段通過用戶輸入的若干次訓練語音,經過預處理和特徵提取後得到特徵參數,最後通過特徵參數建模,進而建立訓練語音的參考模型庫。而識別階段是將輸入語音的特徵矢量參數和參考模型庫中的參考模型進行相似性度量,然後把相似度最高的輸入特徵矢量作為識別結果輸出,從而達到語音識別目的,如圖1所示。

  

 

  圖1語音識別原理框圖

  語音識別技術可分為:特定人識別和非特定人識別兩種。特定人識別是指需要對待識別人的語音進行採集訓練,識別對象為專門的人;非特定人識別是指識別對象為大多數用戶,一般要採集多個人的語音進行錄音、訓練和學習,從而達到較高的識別率。

  在實際應用中,現代技術開發嵌入式語音識別有兩種實現方式:調入嵌入式語音開發包和外擴語音識別晶片。本文的語音識別系統方案是以嵌入式處理器S3C2440為核心,外擴非特定人語音識別晶片LD3320,並將超聲波測距模塊和雲臺相結合作為系統的機械執行機構。系統測量過程如下:首先根據語音指令控制兩自由度雲臺的位姿,使超聲波探測器指向特定方向,然後開啟超聲波探測器,測量出前方障礙物距離,最後將測量結果轉化為可以播放的二進位數據流,通過LD3320的播放功能完成數據的播放。

  3.硬體電路設計方案

  硬體電路主要包括語音識別部分、主控部分、超聲波測距部分和舵機控制部分,如圖2所示。處理器為三星公司的S3C2440,系統主頻最高可達533 MHz,支持SPI、I2C、UART等接口,能夠滿足控制系統的需求。主控晶片S3C2440通過SPI總線完成對語音識別模塊的讀寫操作,超聲波測距部分和舵機控制部分由處理器的GPIO進行統一控制。

  

 

  圖2硬體電路設計方案

  3.1語音識別電路設計

  為了使系統能夠識別操作人員發出的語音指令,設計中採用了由ICRoute公司設計生產的非特定人語音識別晶片LD3320,它集成了語音識別處理電路和一些外部電路,包括AD、DA轉換器、麥克風接口、聲音輸出接口等,不需要外接任何的輔助晶片如Flash、RAM.在主控制器的控制下,可以識別出預先添加到識別列表中的內容。設計中參考了ICRoute發布的LD3320數據手冊,圖中LD3320的P0、P1、P2引腳通過SPI接口與嵌入式處理器相接,控制信號WRB、CSB、RSTB以及中斷返回信號引腳INTB與處理器S3C2440直接相連,如圖3所示。

  

 

  圖3語音模塊和核心板連接關係

  3.2超聲波測距和舵機控制電路設計

  超聲波測距原理相對比較成熟,系統中採用超聲波測距模塊HC-SR04.該模塊有兩個TTL電平通信引腳,兼容3.3V電平。其中,控制埠Trig發一個10us以上的高電平,接收埠Echo將輸出與距離成正比的高電平信號。當Echo有高電平輸出時就開啟處理器定時器,當埠電平跳變為低電平時關閉定時器,根據定時器的值可計算得到障礙物的距離。其中,控制埠Trig和接收埠Echo分別接至處理器的GPG9、GPG6引腳。

  超聲波測距模塊的感應角度小於15°,為了擴大測距的感應角度範圍,將超聲波測距模塊安裝在兩自由度雲臺上,其中,舵機為SG90(9G),旋轉角度為180°。處理器通過GPB0和GPB1分別控制兩個舵機以實現雲臺的旋轉,以測量不同方向的障礙物,如圖4所示。

  

 

  圖4超聲波測距和舵機控制電路

  4.軟體設計方案

  系統軟體基於嵌入式Linux作業系統,實現了語音識別、語音播放、超聲波測距和舵機控制等任務,使用fock機制為每項任務分配獨立的進程,使系統可以進行多任務處理。針對不同功能模塊編寫了相應的底層驅動程序,為上層應用程式提供了調用接口。

  系統工作流程如下:處理器通過SPI總線對語音識別晶片LD3320進行通用初始化,使語音識別晶片進入循環識別模式,系統處理器反覆啟動語音識別過程。如果有識別結果,則根據識別作相應處理後(比如播放某個聲音作為應答)再啟動下一個識別過程。處理器通過SPI總線讀取C5寄存器的識別結果並分析,將語音命令轉換為超聲波測距和舵機的控制信號,完成多方位測距任務,如圖5所示。

  

 

  圖5軟體流程圖

linux作業系統文章專題:linux作業系統詳解(linux不再難懂)

linux相關文章:linux教程


相關焦點

  • 基於Julius的機器人語音識別系統構建
    只需要對幾十個字或詞的命令行進語音識別,便可使得原本需要手工操作的工作由語音輕鬆完成。本文針對現有機器人平臺,設計一個非特定人的孤立詞語音識別系統。  1 語音識別原理及JuliUS簡介  1.1 基於HMM的語音識別原理  語音識別系統是一種模式識別系統,系統首先對語音信號進行分析,得到語音的特徵參數,然後對這些參數進行處理,形成標準的模板。這個過程稱為訓練或學習。
  • 基於Yocto Project的嵌入式應用設計
    本設計主要基於Yocto Project在嵌入式設備上輕鬆定製嵌入式Linux應用,並實現Yocto Project的定製過程。Yocto Project提供基於社區測試的支持多種架構的鏡像。Yocto Project的優點如下:具有高質量的構建系統,平等地支持所有主流的嵌入式架構(ARM、Power PC、MIPS、x86(32&64位)),緊密跟蹤許多上遊開源項目的最新發布版本,具有統一的Linux BSP格式和應用程式開發套件,還可輕鬆地實現從原型切換到商用嵌入式Linux產品。
  • 基於HMM的連續小詞量語音識別系統的研究
    摘要:為了提高語音識別效率及對環境的依賴性,文章對語音識別算法部分和硬體部分做了分析與改進,採用ARMS3C2410微處理器作為主控制模塊,採用UDA1314TS音頻處理晶片作為語音識別模塊,利用HMM聲學模型及Viterbi算法進行模式訓練和識別,設計了一種連續的
  • 基於片上系統SoC的孤立詞語音識別算法設計
    因此,為了滿足嵌入式交互系統的體積越來越小、功能越來越強的苛刻需求,語音識別片上系統SoC(System on Chip)應運而生。語音識別片上系統SoC本身就是一塊晶片,在單一晶片上集成了模擬語音模數轉換器ADC、數模轉換器DAC、信號採集和轉換、處理器、存儲器和I/O接口等,只要加上極少的電源就可以具有語音識別的功能,集成了聲音信息的採集、取樣、處理、分析和記憶。
  • 新型生物識別:嵌入式心音身份識別系統
    因此,心音信號在不同的人身上有著完全不同的特徵並且具有極高的穩定性,可以用作生物識別技術的識別特徵。心音信號除了很難偽裝,偽造及篡改外還具有容易獲取的優勢,因此人體心音信號可以為一種新型生物識別方法。  本文開發了一種基於LabVIEW的嵌入式心音身份識別系統,該系統使用方便靈活,能夠實現對用戶身份的註冊、辨識和確認。
  • 嵌入式系統中USB主機控制器的設計
    本文將介紹在嵌入式系統中應用USB時其主機控制器的設計。本文引用地址:http://www.eepw.com.cn/article/152226.htm 嵌入式系統被定義為硬體和固件(獨立的或作為更大型系統的一部分)通常帶有某種作業系統,作業系統可以是Windows CE、VxWorks或其它由「自編代碼」構成的更簡單系統。根據這樣的定義,可以認為任何帶有處理器的電子裝置均可以作為USB嵌入式主機。
  • 基於TFFS的成像聲吶文件系統設計
    文件系統加載VxWorks映像,不需要網絡和FTP軟體的支持,提高了啟動速度。基於Flash文件系統的加載的VxWorks啟動方式如圖 2所示。但是TrueFFS不能單獨使用,需要DOS文件系統的支持。  因此本文選擇在嵌入式VxWorks作業系統下基於Flash建立TFFS系統,在TFFS上掛載dosFs文件系統來進行I/O操作。如此一來,對Flash設備中文件和數據的讀取就像對磁碟操作一樣,方便快捷。
  • 基於DSP的語音識別計算器電路設計
    根據實際的應用,語音識別可以分為:特定人與非特定人的識別、孤立詞與連續詞的識別、中小詞彙量與無限詞彙量的識別。 考慮到成本及使用範圍因素,本文中應用的是基於TMS320VC5509 DSP的非特定人、孤立詞、小詞彙量的語音識別系統。
  • 嵌入式WEB伺服器中TCP/IP協議棧的設計與實現
    由於Web技術的開放性和獨立平臺特性,大大降低了軟體系統和通信系統的設計、維護工作量,節省了人員培訓費用,提高了現場測試和控制設備的管理水平。而嵌入式Web伺服器將Web伺服器引入到現場測試和控制設備中,在相應的硬體平臺和軟體系統的支持下,使傳統的測試和控制設備轉變為具備了以TCP/IP為底層通信協議,Web技術為核心的基於網際網路的網絡測試和控制設備,有著一般Web伺服器所不具有優勢。
  • 嵌入式導航系統的組成與設計流程
    因此,以嵌入式系統為主要平臺的數碼地理整合性應用與其因應方案,也就是手持式、車載GPS全球衛星導航系統,便可解決對此人們急迫的需求性。基於S3C2440A微處理器和Win CE 5.0嵌入式作業系統,設計了一套可靠且實用的嵌入式導航系統,所提供的功能可以滿足人們現階段日常生活的需要。 1 嵌入式導航系統主要組成 嵌入式導航系統由硬體層、軟體層和中間層組成。
  • 基於嵌入式的地鐵雜散電流監測裝置的設計
    3 數據採集系統的設計3.1 系統概述 本系統由硬體和軟體兩部分組成。硬體以SST89C51 和8位ADC 晶片AD0809 為核心,具有鍵盤控制和液晶顯示功能,該系統還具有實時時間顯示和看門狗功能,可以通過RS232接口與外部(微機) 通信。系統的軟體以實時嵌入式作業系統ucos2 為基礎,採用多任務機制,通過任務調度和任務監視,系統具有較好的實時性和安全性。
  • 基於DSP的語音識別系統的實現及分析
    語音識別系統一般包括前端處理、特徵參數提取、模型訓練和識別部分。圖1所示是基於模式匹配原理的語音識別系統框圖。    2.1 Matlab平臺上的仿真實現  2.1.1 實驗數據的建立  基於Matlab平臺,本文實驗語音信號在安靜的實驗室環境下用普通的麥克風通過Windows音頻設備和Cool edit軟體進行錄製,語速一般,音量適中,文件存儲格式為wav文件。
  • 基於嵌入式測控系統的數字濾波方法設計
    0 引言本文引用地址:http://www.eepw.com.cn/article/149915.htm  模擬信號都必須經過A/D轉換才能被嵌入式
  • 在VIM中實現對嵌入式軟體的調試
    因此,在VIM中實現對嵌入式軟體的調試,我們便得到了一個高效、穩定的嵌入式Linux的開發環境。1 gdb對嵌入式軟體的調試模式 許多非Linux的嵌入式系統已經在使用gdb與gdbstub對目標板進行遠程「交叉調試」;然而,因為Linux內核實現了ptrace()系統調用,所以在對嵌入式應用程式進行調試的時候並不需要gdb stub,而採用gdb套件提供的gdb伺服器來對目標板上的嵌入式應用程式進行調試。
  • 基於Cyclone II FPGA開發平臺實現語音識別算法程序的設計
    基於Cyclone II FPGA開發平臺實現語音識別算法程序的設計 瀋陽;馮良;洪誠 發表於 2021-01-12 10:21:38 SOPC可編程片上系統是一種獨特的嵌入式微處理系統。
  • 基於嵌入式Web的遠程可控電源插座設計
    摘要:為了實現對電器的遠程控制,運用嵌入式Web技術,設計了一個可通過網際網路進行遠程訪問和控制的電源插座系統。該系統採用開源Boa作為嵌入式Web伺服器,選用光電耦合器與可控矽設計控制模塊電路。
  • 嵌入式Web伺服器GoAhead在電力系統通信中應用
    簡單介紹GoAhead嵌入式Web伺服器的基本特點,接著講解了嵌入式Web配置管理功能在電力系統通信中應用的工作原理及設計方法。以工業乙太網交換機為實例,介紹了軟體系統功能,並詳細討論了軟體系統工作流程。
  • 程式設計師及嵌入式的一些學習建議
    二、嵌入式Linux應用開發嵌入式開發基礎知識學習完後,這時候你已經有了一定的嵌入式開發基礎了,可以進行基於單片機的嵌入式系統設計了。有了開發板後,先後開始學習嵌入式linux開發環境搭建、嵌入式linux開發模型、linux內核移植和文件系統、嵌入式linux應用程式移植、嵌入式linux多進程,多線程應用程式設計、嵌入式linux網絡編程,如果對嵌入式資料庫或圖形軟體開發有興趣的,可以進一步學習嵌入式linux資料庫開發或基於QT的嵌入式linux圖形應用軟體設計。
  • 如何在MIPS平臺上使用Yocto設備定製的嵌入式系統Linux
    軟體層:這一層添加了一個特定的軟體集,如Gnome、XFCE、NodeJS等。 基礎層OE-Core有創建功能齊全的嵌入式Linux發行版的元數據,且是基於Yocto框架任何發行版所需的內核。可以使用配置文件來添加更多的層。一旦這些層和元數據被配置,Bitbake創建工具便會解析這些元數據和配置文件,以進行下載和編譯,由此創建發行版。
  • 嵌入式Linux開發環境的搭建之:嵌入式開發環境的搭建
    本文引用地址:http://www.eepw.com.cn/article/257141.htm5.1嵌入式開發環境的搭建5.1.1嵌入式交叉編譯環境的搭建linux作業系統文章專題:linux作業系統詳解(linux不再難懂)交叉編譯的概念在第4章中已經詳細講述過,搭建交叉編譯環境是嵌入式開發的第一步,也是必備的一步。