24小時(shí)聯(lián)系電話(huà):18217114652、13661815404
中文
- 您當前的位置:
- 首頁(yè)>
- 電子資訊>
- 技術(shù)專(zhuān)題>
- 使用 ESP32 制作您自...
技術(shù)專(zhuān)題
使用 ESP32 制作您自己的 Alexa
使用 ESP32 制作您自己的 Alexa
人機界面技術(shù) (HMI) 在過(guò)去 10-15 年中取得了長(cháng)足的進(jìn)步:直到 2000 年代初,嵌入式設備上的彩色屏幕和觸摸屏(第一款手持電話(huà),然后被智能手機取代)絕對不是那么-負擔得起的加。隨著(zhù)處理性能的提高、成本的降低以及新通信技術(shù)的出現,已經(jīng)創(chuàng )建了能夠將用戶(hù)想要的內容轉換為命令的設備。
直到幾年前,能夠連接到云并允許通過(guò)使用語(yǔ)音命令遠程控制物聯(lián)網(wǎng)設備的設備還是純科幻小說(shuō)。迄今為止,智能傳感器和智能音頻設備可以輕松地為您的語(yǔ)音控制的個(gè)人助理創(chuàng )建硬件。
語(yǔ)音助手:系統概述
數字語(yǔ)音輔助系統是一種能夠執行以下步驟的電子設備:
捕捉語(yǔ)音信息
將語(yǔ)音消息轉換為音頻流
通過(guò)復雜的算法處理音頻流,將其解釋為唯一的命令
將命令與操作相關(guān)聯(lián)
播放音頻反饋信息
這一切的背后,是一整套的軟硬件技術(shù)。
圖 1 顯示了語(yǔ)音助手的框圖。
圖 1:語(yǔ)音助手框圖
與任何其他通信通道一樣,該通道還涉及原始信號、采集和轉換系統、編碼系統、處理系統、解碼系統和輸出信號發(fā)射系統。
在語(yǔ)音輔助系統的情況下,源信號是語(yǔ)音消息,它是一種機械波,通過(guò)我們的聲帶調制并作為振動(dòng)通過(guò)空氣(通信方式)傳播。振動(dòng)由充當信號傳感器的麥克風(fēng)獲取。然后,對信號進(jìn)行調理和編碼以進(jìn)行處理。此時(shí),編碼的音頻流可以在本地(通過(guò)微控制器或微處理器)進(jìn)行操作,也可以通過(guò)云上的語(yǔ)音識別算法和 AI 以更有效的方式遠程發(fā)送以進(jìn)行處理。因此,處理輸出將是提供給致動(dòng)系統的命令。
至于音頻反饋,路徑相似但相反:流被解碼并發(fā)送到放大器,放大器將通過(guò)揚聲器再現音頻。
系統組件
從頭開(kāi)始設計語(yǔ)音輔助系統是一項復雜的任務(wù)。直到幾十年前,只有具有出色音頻設計技能的工程師團隊才可行。如今,我們很幸運能夠利用一系列硬件和軟件組件,這無(wú)疑使任務(wù)變得更簡(jiǎn)單。
該項目最關(guān)鍵的部分之一是音頻采集和再現部分,這需要出色的應用領(lǐng)域知識以及模擬電子技能。為了簡(jiǎn)化任務(wù),我們可以使用數字傳感器,它集成了必要的模擬組件并傳輸已經(jīng)數字編碼的數據。
至于輸入部分,我們可以使用全向麥克風(fēng)INMP441,它采用MEMS技術(shù)(Micro Electro-Mechanical Systems)進(jìn)行轉換,并實(shí)現了I2S數字接口進(jìn)行數據交換。這樣可以避免信號調節問(wèn)題,并且與處理單元的接口不受噪聲影響。此外,要處理的信號已經(jīng)是數字格式。
至于音頻輸出級,我們可以使用MAX98357A,一個(gè)2通道3W D類(lèi)放大器,還配備了I2S接口。與輸入級類(lèi)似,硬件設計極為簡(jiǎn)化:放大器通過(guò) I2S 接口接收輸入端的數字信號,對音頻樣本進(jìn)行解碼,并在芯片的 L 和 R 端將其再現為電壓,這兩個(gè)端簡(jiǎn)單連接到揚聲器。
此時(shí),您需要選擇的最后一個(gè)設備是微控制器,它必須能夠處理(或發(fā)送到云)來(lái)自麥克風(fēng)的音頻流,并發(fā)送音頻流以供放大器再現。最適合此用途的 MCU 當然是樂(lè )鑫的 ESP32模塊(最好是 WROVER 模塊,配備 8MB RAM 和高達 16MB 的閃存)。由于其高連接性(BLE 和 WiFi)和高性能以及極低的價(jià)格,該模塊是智能家居應用的正確選擇。它還具有兩個(gè)獨立的 I2S 接口,非常適合該項目的目的。
圖 2 顯示了該項目中使用的三個(gè)主要組件。
圖 2:MAX98357A(左)、ESP32-WROVER(中)、INMP441(右)
I2S 通信總線(xiàn)
I2S 接口協(xié)議是該項目的一個(gè)關(guān)鍵點(diǎn),因為它使硬件和軟件都變得簡(jiǎn)單,使設計人員和開(kāi)發(fā)人員免于與模擬采集和再現相關(guān)的一系列問(wèn)題。
I2S 代表 Inter-IC Sound,它是用于連接數字音頻設備的串行接口的電氣標準。它在音頻應用中用于在集成電路之間傳輸 PCM 音頻樣本,就像我們的例子(MCU 和麥克風(fēng)/放大器)。I2S創(chuàng )建于1986年,是飛利浦半導體(現恩智浦半導體)的產(chǎn)品。
I2S 總線(xiàn)是同步的,因為它從數據線(xiàn)提供不同的時(shí)鐘信號,這比異步設備更容易接收,在異步設備中,通信系統直接從數據流中獲取時(shí)鐘。它還在同一條數據線(xiàn)上提供最多兩個(gè)多路復用通道(右通道和左通道)。
I2S至少包括以下三行:
時(shí)鐘線(xiàn)(BCLK):用于標記位時(shí)間并允許連接設備之間的同步
字選擇(WS)或左右時(shí)鐘(LRCLK)線(xiàn):用于復用左聲道(WS低)和右聲道(WS高)。因此,它表示為占空比為 50% 的方波
數據線(xiàn):用于傳輸PCM樣本,根據WS的狀態(tài)進(jìn)行復用;數據以 2 的補碼編碼
時(shí)鐘切換頻率 (f ck ) 不能任意選擇,而是根據輸入信號的采樣頻率 (f s )、通道數 (n ch ) 和單個(gè)樣本的位數 (n bit),由此?F CK turnsout是
f ck = f s *n位*n ch
例如,要傳輸 2 個(gè) 8kHz 采樣數據流,其中每個(gè)采樣有 12 位,我們需要設置
f ck = 8000 * 12 * 2 = 192000 次/秒。
圖 3 顯示了總線(xiàn)時(shí)序圖的示例。
圖 3:I2S 總線(xiàn)時(shí)序圖
電氣連接和軟件片段
圖 4 顯示了系統三個(gè)主要組件之間的連接。連接非常容易理解,因為在麥克風(fēng)/放大器和 MCU 之間連接時(shí)鐘信號、字同步和數據線(xiàn)就足夠了。所有模擬調節、濾波和放大都集成到數字設備中。
圖 4:數字元件接線(xiàn)
最后,圖 5 顯示了在 ESP32 的 ESP-IDF 環(huán)境中正確使用 I2S 總線(xiàn)的結構配置。該配置是指以 8kHz 的頻率對輸入信號進(jìn)行采樣,每單通道采樣 16 位,作為輸入和輸出(因為
有一個(gè)麥克風(fēng),并且有一個(gè)單聲道輸出)。
圖 5:I2S 總線(xiàn)配置示例
一個(gè)項目,一千種可能
該項目是任何需要音頻輸入、放大輸出以及處理和通信系統的設備的起點(diǎn):類(lèi)似的平臺可以在大量應用中實(shí)現,例如智能家居助手、音頻播放器、環(huán)境警報系統、嬰兒監視器等。