跳至主要内容

配置你的麥克風和揚聲器 - 樹莓派

在本課程的這一部分,你將為你的樹莓派添加麥克風和揚聲器。

硬體

樹莓派需要一個麥克風。

樹莓派沒有內建麥克風,你需要添加一個外部麥克風。有多種方法可以做到這一點:

  • USB 麥克風
  • USB 耳機
  • USB 一體化揚聲器
  • USB 音頻轉接器和帶 3.5mm 插孔的麥克風
  • ReSpeaker 2-Mics Pi HAT

💁 藍牙麥克風並非全部都支援樹莓派,因此如果你有藍牙麥克風或耳機,可能會遇到配對或捕捉音頻的問題。

樹莓派配有 3.5mm 耳機插孔。你可以用它來連接耳機、耳麥或揚聲器。你也可以使用以下方法添加揚聲器:

  • 通過顯示器或電視的 HDMI 音頻
  • USB 揚聲器
  • USB 耳機
  • USB 一體化揚聲器
  • ReSpeaker 2-Mics Pi HAT 並連接揚聲器,可以通過 3.5mm 插孔或 JST 端口

連接和配置麥克風和揚聲器

麥克風和揚聲器需要連接並配置。

任務 - 連接和配置麥克風

  1. 使用適當的方法連接麥克風。例如,通過其中一個 USB 端口連接。

  2. 如果你使用的是 ReSpeaker 2-Mics Pi HAT,你可以移除 Grove 基座帽,然後將 ReSpeaker 帽安裝到位。

    一個帶有 ReSpeaker 帽的樹莓派

    你在本課程的後面部分會需要一個 Grove 按鈕,但這個帽子內建了一個,所以不需要 Grove 基座帽。

    安裝好帽子後,你需要安裝一些驅動程式。請參考 Seeed 入門指南 進行驅動程式安裝。

    ⚠️ 指南中使用 git 來克隆一個倉庫。如果你的樹莓派上沒有安裝 git,你可以通過運行以下命令來安裝:

    sudo apt install git --yes
  3. 在你的終端中運行以下命令,無論是在樹莓派上還是通過 VS Code 和遠程 SSH 會話連接,以查看有關連接的麥克風的信息:

    arecord -l

    你會看到一個連接的麥克風列表。它會類似於以下內容:

    pi@raspberrypi:~ $ arecord -l
    **** List of CAPTURE Hardware Devices ****
    card 1: M0 [eMeet M0], device 0: USB Audio [USB Audio]
    Subdevices: 1/1
    Subdevice #0: subdevice #0

    假設你只有一個麥克風,你應該只會看到一個條目。在 Linux 上配置麥克風可能會很棘手,所以最好只使用一個麥克風並拔掉其他的。

    記下卡號,因為你稍後會需要它。在上面的輸出中,卡號是 1。

任務 - 連接和配置揚聲器

  1. 使用適當的方法連接揚聲器。

  2. 在你的終端中運行以下命令,無論是在樹莓派上還是通過 VS Code 和遠程 SSH 會話連接,以查看有關連接的揚聲器的信息:

    aplay -l

    你會看到一個連接的揚聲器列表。它會類似於以下內容:

    pi@raspberrypi:~ $ aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
    Subdevices: 8/8
    Subdevice #0: subdevice #0
    Subdevice #1: subdevice #1
    Subdevice #2: subdevice #2
    Subdevice #3: subdevice #3
    Subdevice #4: subdevice #4
    Subdevice #5: subdevice #5
    Subdevice #6: subdevice #6
    Subdevice #7: subdevice #7
    card 1: M0 [eMeet M0], device 0: USB Audio [USB Audio]
    Subdevices: 1/1
    Subdevice #0: subdevice #0

    你總是會看到 card 0: Headphones,因為這是內建的耳機插孔。如果你添加了額外的揚聲器,例如 USB 揚聲器,你也會看到這個列表。

  3. 如果你使用的是額外的揚聲器,而不是連接到內建耳機插孔的揚聲器或耳機,你需要將其配置為默認。為此,運行以下命令:

    sudo nano /usr/share/alsa/alsa.conf

    這將在 nano 中打開一個配置文件,nano 是一個基於終端的文本編輯器。使用鍵盤上的箭頭鍵向下滾動,直到找到以下行:

    defaults.pcm.card 0

    將值從 0 更改為你想要使用的卡號,該卡號來自 aplay -l 命令返回的列表。例如,在上面的輸出中,有一個名為 card 1: M0 [eMeet M0], device 0: USB Audio [USB Audio] 的第二個聲卡,使用卡號 1。要使用這個,我會將該行更新為:

    defaults.pcm.card 1

    將此值設置為適當的卡號。你可以使用鍵盤上的箭頭鍵導航到該號碼,然後像編輯文本文件時一樣刪除並輸入新號碼。

  4. Ctrl+x 保存更改並關閉文件。按 y 保存文件,然後按 return 選擇文件名。

任務 - 測試麥克風和揚聲器

  1. 運行以下命令,通過麥克風錄製 5 秒鐘的音頻:

    arecord --format=S16_LE --duration=5 --rate=16000 --file-type=wav out.wav

    當此命令運行時,對著麥克風發出聲音,例如說話、唱歌、打節拍、演奏樂器或任何你喜歡的聲音。

  2. 5 秒鐘後,錄音將停止。運行以下命令播放音頻:

    aplay --format=S16_LE --rate=16000 out.wav

    你會聽到音頻通過揚聲器播放。根據需要調整揚聲器的輸出音量。

  3. 如果你需要調整內建麥克風端口的音量,或調整麥克風的增益,你可以使用 alsamixer 工具。你可以在 Linux alsamixer 手冊頁 上閱讀更多關於此工具的信息。

  4. 如果在播放音頻時出現錯誤,請檢查你在 alsa.conf 文件中設置的 defaults.pcm.card 卡號。