You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/zh/6-consumer/lessons/1-speech-recognition/pi-microphone.md

6.3 KiB

配置麦克风和扬声器 - 树莓派

在本课程的这一部分,您将为树莓派添加麦克风和扬声器。

硬件

树莓派需要一个麦克风。

树莓派没有内置麦克风,您需要添加一个外部麦克风。有多种方式可以实现:

  • 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终端文本编辑器。使用键盘上的箭头键向下滚动,直到找到以下行:

    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保存文件,然后按回车选择文件名。

任务 - 测试麦克风和扬声器

  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卡号是否正确。

免责声明
本文档使用AI翻译服务Co-op Translator进行翻译。尽管我们努力确保准确性,但请注意,自动翻译可能包含错误或不准确之处。应以原始语言的文档作为权威来源。对于关键信息,建议使用专业人工翻译。对于因使用本翻译而引起的任何误解或误读,我们概不负责。