国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

電子發燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>使用Arduino進行語音識別和合成

使用Arduino進行語音識別和合成

2022-11-17 | zip | 0.59 MB | 次下載 | 2積分

資料介紹

描述

在我之前的項目中,我展示了如何使用Arduino板和BitVoicer 服務器控制幾個 LED 在這個項目中,我會讓事情變得更復雜一些。我還將使用Arduino DUE數模轉換器 (DAC)合成語音如果您沒有 Arduino DUE,您可以使用其他 Arduino 板,但您需要一個外部 DAC 和一些額外的代碼來操作 DAC(BVSSpeaker庫不會幫助您)。

在下面的視頻中,您可以看到我還讓 Arduino 播放一首小曲并讓 LED 像鋼琴鍵一樣閃爍。對不起我的鋼琴技巧,但這是我能做的最好的:)。LED 實際上以與真正的 C、D 和 E 鍵相同的順序和時間閃爍,因此如果您周圍有鋼琴,您可以跟隨 LED 并演奏相同的歌曲。這是來自一個甚至不復存在的老零售商 (Mappin) 的叮當聲。

將執行以下程序將語音命令轉換為 LED 活動和合成語音:

  • 3. 音頻樣本將通過 Arduino 串口流式傳輸到 BitVoicer Server;
  • 4. BitVoicer Server 將處理音頻流并識別其中包含的語音;
  • 5. 識別的語音將被映射到預定義的命令,這些命令將被發送回 Arduino。如果其中一個命令是合成語音,BitVoicer Server 將準備音頻流并將其發送到 Arduino;
  • 6. Arduino 將識別命令并執行適當的操作。如果接收到音頻流,它將被排入BVSSpeaker類并使用 DUE DAC 和DMA播放

材料清單:

  • 8 歐姆揚聲器:~U$ 2.00
  • 面包板:~U$ 10.00
  • 3 個 LED:~U$ 1.00
  • 跳線:~U$ 0.50

第 1 步:接線

第一步是將 Arduino 和面包板與組件連接起來,如下圖所示。我不得不在揚聲器下方放置一個小橡膠,因為它會振動很多,沒有橡膠,音頻質量會受到很大影響。

?
?
?
?
pYYBAGN1HaaADxusAAEDWa1Egrc510.jpg
?
1 / 4 ? Fritzing 示意圖
?

在這里,我們與我之前的項目有一個很小但很重要的區別大多數 Arduino 板在 5V 下運行,但 DUE 在 3.3V 下運行。因為我在 3.3V 下運行 Sparkfun Electret Breakout 得到了更好的結果,如果您使用 5V Arduino 板,我建議您在 3.3V 引腳和 AREF 引腳之間添加一個跳線。DUE 已經使用 3.3V 模擬參考,因此您不需要跳線到 AREF 引腳。實際上,DUE 上的 AREF 引腳通過電阻橋連接到微控制器要使用 AREF 引腳,電阻 BR1 必須從 PCB 上拆焊。

第 2 步:將代碼上傳到 Arduino

現在您必須將以下代碼上傳到您的 Arduino。為方便起見,本文底部的附件部分也提供了 Arduino 草圖。在上傳代碼之前,您必須將 BitVoicer 服務器庫正確安裝到 Arduino IDE(導入 .zip 庫)。

Arduino 草圖BVS_Demo2.ino

這個草圖有七個主要部分:

  • 庫引用和變量聲明:前四行包括對BVSP BVMic BVSSpeaker和 DAC 庫的引用。這些庫由 BitSophia 提供,可以在 BitVoicer Server 安裝文件夾中找到。當您添加對 BVSSpeaker 庫的引用時,會自動包含 DAC 庫。其他行聲明了整個草圖中使用的常量和變量。BVSP 類用于與 BitVoicer Server 通信,BVMic 類用于捕獲和存儲音頻樣本,BVSSpeaker 類用于使用 DUE DAC再現音頻
  • 循環函數:該函數執行五個重要操作: 向服務器請求狀態信息(keepAlive() 函數);檢查服務器是否發送了任何數據并處理接收到的數據(receive() 函數);控制音頻流的錄制和發送(isSREAvailable()、startRecording()、stopRecording() 和 sendStream() 函數);播放排隊到 BVSSpeaker 類中的音頻樣本(play() 函數);并調用 playNextLEDNote() 函數,該函數控制在接收到 playLEDNotes 命令后 LED 應如何閃爍。
  • BVSP_frameReceived 函數:每次 receive() 函數識別出已接收到一個完整幀時,都會調用此函數。在這里,我運行從 BitVoicer Server 發送的命令。控制 LED 的命令包含 2 個字節。第一個字節表示引腳,第二個字節表示引腳值。我使用analogWrite() 函數為引腳設置適當的值。我還檢查是否收到了 Byte 類型的 playLEDNotes 命令。如果已收到,我將 playLEDNotes 設置為true并標記當前時間。這個時間將被 playNextLEDNote 函數用來使 LED 與歌曲同步。
  • BVSP_modeChanged 函數:每次接收()函數識別出站方向(服務器-> Arduino)中的模式更改時調用此函數。哇!!!那是什么?!BitVoicer Server 可以向 Arduino 發送幀數據音頻流在通信從一種模式轉到另一種模式之前,BitVoicer Server 會發送一個信號。BVSP 類識別此信號并引發 modeChanged 事件。在 BVSP_modeChanged 函數中,如果我檢測到通信正在從流模式轉到幀模式,我知道音頻已經結束,所以我可以告訴 BVSSpeaker 類停止播放音頻樣本。
  • BVSP_streamReceived 函數:每次 receive() 函數識別到已接收到音頻樣本時,都會調用此函數。我只需檢索樣本并將它們排隊到 BVSSpeaker 類中,以便 play() 函數可以重現它們。
  • playNextLEDNote 函數:此函數僅在 BVSP_frameReceived 函數識別 playLEDNotes 命令時運行。它控制 LED 并將其與從 BitVoicer 服務器發送的音頻同步。為了使 LED 與音頻同步并知道正確的時間,我使用了Sonic Visualizer 這個免費軟件讓我可以看到音波,這樣我就可以很容易地分辨出鋼琴鍵是什么時候按下的。它還顯示了一條時間線,這就是我獲得此函數中使用的毫秒數的方式。聽起來像一個愚蠢的把戲,它是。我認為可以分析音頻流并打開相應的 LED,但我無法做到。

第 3 步:導入 BitVoicer 服務器解決方案對象

現在您必須設置 BitVoicer Server 才能與 Arduino 一起使用。BitVoicer Server 有四個主要的解決方案對象:位置、設備、二進制數據和語音模式。

位置表示安裝設備的物理位置。就我而言,我創建了一個名為 Home 的位置。

設備是 BitVoicer 服務器客戶端。我創建了一個混合設備,將其命名為 ArduinoDUE 并輸入通信設置。重要提示:即使 Arduino DUE 也有少量內存來存儲 BitVoicer Server 將流式傳輸的所有音頻樣本。如果不限制帶寬,則需要更大的緩沖區來存儲音頻。由于這個原因,我遇到了一些緩沖區溢出,因此我不得不將通信設置中的數據速率限制為每秒 8000 個樣本。

BinaryData 是 BitVoicer Server 可以發送到客戶端設備的一種命令。它們實際上是可以鏈接到命令的字節數組。當 BitVoicer Server 識別出與該命令相關的語音時,它會將字節數組發送到目標設備。我為每個引腳值創建了一個 BinaryData 對象,并將它們命名為 ArduinoDUEGreenLedOn、ArduinoDUEGreenLedOff 等。我的解決方案中最終有 18 個 BinaryData 對象,因此我建議您從下面的VoiceSchema.sof文件下載并導入對象。

語音模式是一切融合在一起的地方。它們定義了應該識別哪些句子以及運行哪些命令。對于每個句子,您可以根據需要定義任意數量的命令以及它們將執行的順序。您還可以定義命令之間的延遲。這就是我如何設法執行您在視頻中看到的一系列動作。

我的語音模式中的一個句子是“播放一首小歌”。這句話包含兩個命令。第一個命令發送一個字節,指示以下命令將成為音頻流。然后,Arduino 在傳輸音頻時開始“播放”LED。音頻是我自己錄制的一小段鋼琴曲,并將其設置為第二個命令的音頻源。BitVoicer Server 僅支持 8 位單聲道 PCM 音頻(每秒 8000 個樣本),因此如果您需要將音頻文件轉換為這種格式,

您可以從以下文件導入(導入解決方案對象)我在此項目中使用的所有解決方案對象。一個包含 DUE 設備,另一個包含語音模式及其命令。

解決方案目標文件

第 4 步:結論

給你!您可以打開一切并執行視頻中顯??示的相同操作。

?

正如我在之前的項目中所做的那樣,我通過在BitVoicer Server Manager中啟用 Arduino 設備來啟動語音識別一旦啟用,Arduino 就會識別可用的語音識別引擎并開始將音頻流式傳輸到 BitVoicer 服務器。但是,現在您在 Arduino RX LED 中看到更多活動,同時音頻從 BitVoicer 服務器流式傳輸到 Arduino。

在我的下一個項目中,我將更加雄心勃勃。我打算將 WiFi 通信添加到一個 Arduino 并通過語音一起控制另外兩個 Arduino。我在想他們之間的某種游戲。非常歡迎提出建議!


服務器 語音識別 Arduino
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費