加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

基于Arduino的語(yǔ)音識(shí)別及應(yīng)用

2020/12/15
795
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

FritzingProtoboard.png

共3個(gè)文件

在我之前的項(xiàng)目中,我展示了如何使用Arduino開(kāi)發(fā)板和BitVoicer服務(wù)器控制幾個(gè)LED 。在這個(gè)項(xiàng)目中,我將使事情變得更加復(fù)雜。我還將使用Arduino DUE數(shù)模轉(zhuǎn)換器(DAC)合成語(yǔ)音。如果您沒(méi)有Arduino DUE,則可以使用其他Arduino板,但是您將需要一個(gè)外部DAC和一些其他代碼來(lái)操作DAC(BVSSpeaker庫(kù)將無(wú)法幫助您)。

在下面的視頻中,您可以看到我還讓Arduino播放了一首歌曲,并使LED閃爍,就像它們是鋼琴鍵一樣。對(duì)不起,我的鋼琴技巧,但這是我能做到的最好的:)。LED實(shí)際上以與真實(shí)C,D和E鍵相同的順序和時(shí)序閃爍,因此,如果您周圍有鋼琴,則可以跟隨LED并播放同一首歌曲。這是一個(gè)不再存在的老零售商(Mappin)的叮當(dāng)聲。

將執(zhí)行以下過(guò)程將語(yǔ)音命令轉(zhuǎn)換為L(zhǎng)ED活動(dòng)和合成語(yǔ)音:

1. Sparkfun Electret Breakout板將捕獲并放大音頻波;

2.放大后的信號(hào)將通過(guò)Arduino的模數(shù)轉(zhuǎn)換器ADC)進(jìn)行數(shù)字化和緩沖;

3.音頻樣本將使用Arduino串行端口傳輸?shù)紹itVoicer服務(wù)器;

4. BitVoicer服務(wù)器將處理音頻流并識(shí)別其包含的語(yǔ)音;

5.識(shí)別的語(yǔ)音將映射到預(yù)定義的命令,這些命令將發(fā)送回Arduino。如果其中一個(gè)命令用于合成語(yǔ)音,則BitVoicer Server將準(zhǔn)備音頻流并將其發(fā)送到Arduino;

6. Arduino將識(shí)別命令并執(zhí)行適當(dāng)?shù)牟僮鳌H绻邮盏揭纛l流,它將被排隊(duì)到BVSSpeaker類中,并使用DUE DAC和DMA播放。

7. SparkFun單聲道音頻放大器會(huì)放大DAC信號(hào),因此可以驅(qū)動(dòng)8歐姆揚(yáng)聲器

第一步是將Arduino和面包板與組件連接,如下圖所示。我必須在揚(yáng)聲器下方放置一個(gè)小的橡膠墊,因?yàn)樗鼤?huì)振動(dòng)很多,而沒(méi)有橡膠墊的話,音頻質(zhì)量會(huì)受到很大影響。

在這里,與我以前的項(xiàng)目相比,有一個(gè)小但重要的區(qū)別。大多數(shù)Arduino板均以5V運(yùn)行,但DUE以3.3V運(yùn)行。因?yàn)樵?.3V下運(yùn)行Sparkfun駐極體突破效果更好,所以如果您使用5V Arduino板,建議您在3.3V引腳和AREF引腳之間添加一個(gè)跳線。DUE已經(jīng)使用了3.3V模擬基準(zhǔn),因此您不需要AREF引腳的跳線。實(shí)際上,DUE上的AREF引腳通過(guò)電阻橋連接到微控制器。要使用AREF引腳,必須從PCB上拆下電阻器BR1。

 

 

  • FritzingProtoboard.png
    下載
    描述:原理圖
  • arduino_sketch.ino
    下載
    描述:代碼
  • 教程.rar
    下載
    描述:教程

相關(guān)推薦