0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用樹(shù)莓派Pico開(kāi)發(fā)板制作實(shí)時(shí)音頻光譜圖可視化器

jf_zGNBEhbi ? 來(lái)源:趣無(wú)盡 ? 2023-10-24 10:49 ? 次閱讀

本期教程將會(huì)通過(guò)使用一塊帶有外置數(shù)字麥克風(fēng)和 TFT LCD 顯示屏的樹(shù)莓派 Pico 開(kāi)發(fā)板制作一個(gè)實(shí)時(shí)音頻光譜圖可視化器。有了它,你就可以將你周?chē)h(huán)境的實(shí)時(shí)聲音可視化表現(xiàn)出來(lái)!下圖是該工具運(yùn)行時(shí)的預(yù)覽圖。


fdf85b1e-7214-11ee-939d-92fbcf53809c.gif
這里使用到了 Adafruit PDM MENS 擴(kuò)展板(使用方法) 。我們還會(huì)使用一些常見(jiàn)的數(shù)字信號(hào)處理(DSP)技術(shù),直接在樹(shù)莓派 Pico 上處理數(shù)字音頻數(shù)據(jù)而不僅通過(guò) USB 線(xiàn)將數(shù)字音頻數(shù)據(jù)傳輸?shù)?PC 端。通過(guò)使用 DSP 技術(shù),將轉(zhuǎn)換后的音頻信號(hào)在帶有 Micro SD 卡擴(kuò)展板的 Adafruit 2.0 的 320×240 彩色 IPS TFT 顯示屏上實(shí)時(shí)顯示。

組件清單

樹(shù)莓派 Pico × 1
Adafruit PDM MEMS 麥克風(fēng)擴(kuò)展板 × 1
帶有 micro SD 卡擴(kuò)展板的 320×240 彩色 IPS TFT 顯示屏 × 1
全尺寸無(wú)焊面包板 × 1
公對(duì)公跳線(xiàn) × 20
烙鐵 × 1
焊絲 × 若干

什么是音頻頻譜圖?

音頻頻譜圖被用于將由振幅表示的實(shí)時(shí)音頻信號(hào)可視化為實(shí)時(shí)音頻信號(hào)的頻率的格式。

在下圖中,左側(cè)顯示的是原始音頻信號(hào),右側(cè)顯示的則是音頻信號(hào)的頻譜圖。

fe02ee9e-7214-11ee-939d-92fbcf53809c.gif

通過(guò)頻譜圖中的顏色強(qiáng)度,你可以看出音頻信號(hào)的振幅與其頻率之間是存在直接關(guān)聯(lián)性的。

有關(guān)用于創(chuàng)建音頻頻譜圖的 DSP 技術(shù)的更詳細(xì)概述,可查閱 Fixed-point DSP for Data Scientists 。

頻譜圖也用于基于機(jī)器學(xué)習(xí)(ML)的音頻系統(tǒng)中,將音頻信號(hào)轉(zhuǎn)換為一張頻譜圖,以便使用計(jì)算機(jī)視覺(jué)技術(shù)對(duì)音頻信號(hào)中的 2D“圖像表示”進(jìn)行界定。這在現(xiàn)實(shí)生活中例子有音頻或語(yǔ)音識(shí)別、關(guān)鍵詞識(shí)別。

示意圖

fe09ba94-7214-11ee-939d-92fbcf53809c.png

代碼

代碼文件在這里可以下載
https://make.quwj.com/project/471

制作途徑

若想創(chuàng)建頻譜圖并將其實(shí)時(shí)在 LCD 屏幕上顯示,請(qǐng)按照下面的步驟操作。
1、使用數(shù)字麥克風(fēng)收集 N 個(gè)音頻樣本。
2、將漢寧窗 (Hanning window)應(yīng)用在收集到的音頻樣本中。
3、使用上一步的輸入運(yùn)行快速傅里葉變換 (RFFT)。
4、計(jì)算 RFFT 的幅度。
5、將每個(gè) RFFT 幅度映射一個(gè)顏色值以顯示在 LCD 顯示器上。
6、在 LCD 上顯示新行。
7、滾動(dòng)到新行并重復(fù)。

如果我們選擇 256 的 RFFT 大小,我們將有 128 個(gè)可用的幅度輸出并顯示在屏幕上,因?yàn)檫@小于顯示器每行的 240像素,所以我們可以顯示每行兩次,以最大化這塊屏幕的視覺(jué)可視性。

為了實(shí)現(xiàn)更快的視覺(jué)響應(yīng),我們可以一次從麥克風(fēng)中采集 64 個(gè)新的音頻樣本(而不是等待那 256 個(gè)新音頻樣本),并將它們與先前最新的 192 個(gè)(256-64)樣本在每個(gè)循環(huán)中相結(jié)合。在 16 kHz的采樣率下,我們將有 64/16000秒來(lái)執(zhí)行所有計(jì)算并更新顯示。這樣一來(lái),每一次迭代就只需4毫秒了。

我們將使用 Pico 專(zhuān)屬麥克風(fēng)庫(kù) microphone-library-for-pico ,從數(shù)字麥克風(fēng)捕獲數(shù)據(jù)。
Arm 的 CMSIS-DSP 庫(kù),將被用于實(shí)時(shí)處理音頻數(shù)據(jù)。

CMSIS-DSP 針對(duì) Arm Cortex-M 處理器進(jìn)行了優(yōu)化,包括基于 Raspberry Pi Pico 的RP2040 微控制器MCU)的 Arm Cortex-M0+。Pico 的 ST7789 庫(kù)將用于驅(qū)動(dòng) ST7789 TFT 顯示器的輸出。

硬件設(shè)置

將公頭焊接在你的樹(shù)莓派 Pico 板,Adafruit PDM MEMS 麥克風(fēng)擴(kuò)展板和帶有 micro SD 卡擴(kuò)展板的 2 英寸320×240 彩色 IPS TFT 顯示器上,以便將它們插入面包板中。有關(guān)將 GPIO 引腳焊接至樹(shù)莓派 Pico。

待兩者被焊接好后,請(qǐng)將它們放置在試驗(yàn)板上,并按下圖所示設(shè)置接線(xiàn)。

fe1603e4-7214-11ee-939d-92fbcf53809c.jpg

布線(xiàn)設(shè)置的表格圖

fe1a3f68-7214-11ee-939d-92fbcf53809c.png

完成后,你的面包板應(yīng)該是這樣的。

fe251244-7214-11ee-939d-92fbcf53809c.jpg

設(shè)置 Pico SDK 開(kāi)發(fā)環(huán)境

首先需要使用 Raspberry Pi 的 Pico SDK 和所需的工具鏈設(shè)置你的電腦。參考:
https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf

本指南的第 2.1 節(jié)可以被用于所有的操作系統(tǒng)。下面是各系統(tǒng)的專(zhuān)屬操作章節(jié)。
Linux:2.2章節(jié)
– macOS:9.1章節(jié)
– Windows:9.2章節(jié)

獲取和編譯 Pico-audio-spectrogram 應(yīng)用

確保 PICO SDK 環(huán)境變量已設(shè)置。

export PICO_SDK_PATH=/path/to/pico-sdk

在終端窗口中克隆git存儲(chǔ)庫(kù)并更改目錄

cd ~/ 
git clone --recurse-submodules https://github.com/ArmDeveloperEcosystem/audio-spectrogram-example-for-pico.git
cd audio-spectrogram-example-for-pico

創(chuàng)建生成目錄并將目錄更改為:

mkdir build
cd build

運(yùn)行camake和make并進(jìn)行編譯:

cmake .. -DPICO_BOARD=pico
make

按住主板上的 BOOTSEL 按鈕,同時(shí)使用 USB 電纜將主板插入你的電腦中。

將 audio_spectrogram.uf2 文件復(fù)制到已安裝的樹(shù)莓派 Pico 引導(dǎo)的 ROM 磁盤(pán):

cp -a audio_spectrogram.uf2 /Volumes/RPI-RP2/.

測(cè)試一下

你現(xiàn)在可以試著發(fā)出一些聲音,比如說(shuō)幾個(gè)不同的單詞,并在頻譜圖上看看會(huì)顯示出什么。

以下是發(fā)出“yes”一詞在顯示屏上的顯示的樣式。

fe302cba-7214-11ee-939d-92fbcf53809c.jpg

同樣的,這是發(fā)出“no”一詞在顯示屏上顯示的樣式

fe3ffff0-7214-11ee-939d-92fbcf53809c.jpg

“ESC-50:環(huán)境聲音分類(lèi)數(shù)據(jù)集”中的各種聲音示例如下圖所示:

總結(jié)

本指南介紹了如何使用一個(gè)帶有外部數(shù)字麥克風(fēng)和帶 TFT LCD 的 Raspberry Pi Pico 板制作實(shí)時(shí)音頻頻譜圖可視化工具。開(kāi)始時(shí),本項(xiàng)目使用了 Pico 專(zhuān)屬麥克風(fēng)庫(kù)使麥克風(fēng)一次捕獲64個(gè)音頻樣本,之后又使用 Arm 的 CMSIS-DSP 庫(kù)將音頻樣本轉(zhuǎn)換為頻譜圖。

最后使用 Pico 的 ST7789 庫(kù)一次一行的顯示在 TFT LCD顯示屏上。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16796

    瀏覽量

    349324
  • lcd
    lcd
    +關(guān)注

    關(guān)注

    34

    文章

    4384

    瀏覽量

    166673
  • 顯示屏
    +關(guān)注

    關(guān)注

    28

    文章

    4421

    瀏覽量

    73947
  • TFT
    TFT
    +關(guān)注

    關(guān)注

    10

    文章

    381

    瀏覽量

    110803
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1683

    瀏覽量

    105388

原文標(biāo)題:樹(shù)莓派 Pico 實(shí)時(shí)聲音可視化顯示屏

文章出處:【微信號(hào):趣無(wú)盡,微信公眾號(hào):趣無(wú)盡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    樹(shù)莓Pico迷你開(kāi)發(fā)板及所使用的RP2040 MCU芯片有哪些特性

    Raspberry Pi Pico是什么?樹(shù)莓Pico迷你開(kāi)發(fā)板及所使用的RP2040 MCU芯片有哪些特性?
    發(fā)表于 09-14 06:50

    微控制開(kāi)發(fā)板Raspberry Pi Pico

    樹(shù)莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通
    發(fā)表于 10-29 07:33

    樹(shù)莓Pico的相關(guān)資料分享

    關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容1月22日,樹(shù)莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相
    發(fā)表于 11-03 08:44

    使用樹(shù)莓Pico開(kāi)發(fā)板的一些思考與應(yīng)用實(shí)踐資料分享

    本博文根據(jù)樹(shù)莓基金會(huì)2021年1月21日公開(kāi)的兩部最新官方英文技術(shù)文獻(xiàn)[1]、[2]以及博主最近使用樹(shù)莓Pico
    發(fā)表于 11-12 06:07

    樹(shù)莓Pico的相關(guān)資料推薦

    1月22日,樹(shù)莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通
    發(fā)表于 02-07 07:37

    樹(shù)莓PICO:使用rt-thread micropython軟件包聯(lián)網(wǎng)獲取天氣

    1、在樹(shù)莓PICO上實(shí)現(xiàn)http請(qǐng)求demo  項(xiàng)目描述  本項(xiàng)目使用樹(shù)莓PICO
    發(fā)表于 11-14 16:19

    樹(shù)莓也出MCU了?樹(shù)莓Pico來(lái)了!

    關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容1月22日,樹(shù)莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相
    發(fā)表于 10-28 10:36 ?11次下載
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>也出MCU了?<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>來(lái)了!

    樹(shù)莓Pico開(kāi)發(fā)板硬件擴(kuò)展接口及電源模塊解析

    本博文根據(jù)樹(shù)莓基金會(huì)2021年1月21日公開(kāi)的兩部最新官方英文技術(shù)文獻(xiàn)[1]、[2]以及博主最近使用樹(shù)莓Pico
    發(fā)表于 11-07 09:06 ?15次下載
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b><b class='flag-5'>開(kāi)發(fā)板</b>硬件擴(kuò)展接口及電源模塊解析

    樹(shù)莓Pico:僅4美元的MCU

    1月22日,樹(shù)莓基金會(huì)最新發(fā)布一款低成本、高性能的微控制開(kāi)發(fā)板Raspberry Pi Pico,新產(chǎn)品相比普通
    發(fā)表于 12-04 13:06 ?13次下載
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b>:僅4美元的MCU

    基于樹(shù)莓音頻頻譜可視化設(shè)備

    Pico創(chuàng)建實(shí)時(shí)音頻頻譜可視化。它將讓您看到
    發(fā)表于 12-23 10:51 ?3次下載

    樹(shù)莓Pico開(kāi)發(fā)板擴(kuò)展ESP01S無(wú)線(xiàn)WiFi模塊通信實(shí)踐

    介紹樹(shù)莓Pico開(kāi)發(fā)板擴(kuò)展ESP01S無(wú)線(xiàn)模塊建立WiFi連接,并采用AT命令和MicroPython語(yǔ)言實(shí)現(xiàn)樹(shù)莓
    發(fā)表于 05-31 15:59 ?1次下載
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>Pico</b><b class='flag-5'>開(kāi)發(fā)板</b>擴(kuò)展ESP01S無(wú)線(xiàn)WiFi模塊通信實(shí)踐

    9.9元包郵!合宙RP2040開(kāi)發(fā)板,兼容樹(shù)莓PICO

    體驗(yàn)? ? 9.9元合宙RP2040開(kāi)發(fā)板 CORE-RP2040 ——合宙推出的9.9家族又一款新品,采用樹(shù)莓RP2040芯片作為核心,引腳定義兼容官方PICO
    的頭像 發(fā)表于 08-07 12:05 ?3800次閱讀

    合宙RP2040開(kāi)發(fā)板,兼容樹(shù)莓PICO

    體驗(yàn)?9.9元合宙RP2040開(kāi)發(fā)板CORE-RP2040——合宙推出的9.9家族又一款新品,采用樹(shù)莓RP2040芯片作為核心,引腳定義兼容官方PICO
    的頭像 發(fā)表于 08-08 08:05 ?3002次閱讀
    合宙RP2040<b class='flag-5'>開(kāi)發(fā)板</b>,兼容<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b><b class='flag-5'>PICO</b>

    linux開(kāi)發(fā)板樹(shù)莓的區(qū)別

    定義和用途 Linux開(kāi)發(fā)板:Linux開(kāi)發(fā)板是一種基于Linux操作系統(tǒng)的嵌入式開(kāi)發(fā)板,通常用于工業(yè)自動(dòng)、物聯(lián)網(wǎng)、智能家居等領(lǐng)域。 樹(shù)莓
    的頭像 發(fā)表于 08-30 15:34 ?466次閱讀

    樹(shù)莓和arm開(kāi)發(fā)板的區(qū)別

    樹(shù)莓(Raspberry Pi)和ARM開(kāi)發(fā)板都是基于ARM架構(gòu)的微型計(jì)算機(jī),但它們之間存在一些關(guān)鍵區(qū)別。 一、歷史背景 樹(shù)莓(Rasp
    的頭像 發(fā)表于 08-30 15:36 ?506次閱讀