ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

IoT-For-Beginners 实战:在 Raspberry Pi 上配置麦克风与扬声器,为语音识别智能定时器铺路

IoT-For-Beginners 实战:在 Raspberry Pi 上配置麦克风与扬声器,为语音识别智能定时器铺路 IoT-For-Beginners 实战在 Raspberry Pi 上配置麦克风与扬声器为语音识别智能定时器铺路【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners本篇技术指南基于微软开源课程项目IoT-For-Beginners中消费者物联网 · 语音识别一课课程主页的 Raspberry Pi 硬件配置环节系统讲解如何为树莓派连接并配置麦克风与扬声器包括硬件选型、ALSA 声卡枚举arecord -l/aplay -l、默认声卡切换alsa.conf以及录制/回放验证。完成本文后你将能搭建一套可用的树莓派音频输入输出环境为后续按下按钮录音 → 语音转文字的智能厨房定时器项目打好硬件基础。背景为什么要给树莓派配麦克风与扬声器在6-consumer/lessons/1-speech-recognition这一课中你将构建一个支持语音控制的智能厨房定时器按下按钮说话树莓派采集音频再借助 Azure Speech Service认知服务把语音转成文字并打印到控制台。整条链路的第一步就是让树莓派能听麦克风与能说扬声器用于在测试阶段回放验证录音。树莓派本身没有内置麦克风必须外接但它带有 3.5mm 耳机输出口可连接耳机、耳麦或音箱。本文档translations/cs/6-consumer/lessons/1-speech-recognition/pi-microphone.md英文原版见 6-consumer/lessons/1-speech-recognition/pi-microphone.md正是该课程中针对单板计算机Raspberry Pi的硬件配置子章节。硬件选型麦克风的五种接法树莓派没有板载麦克风需要外接常见方案有USB 麦克风即插即用最常见USB 耳麦带麦克风的 USB 耳机USB 一体式会议扬声器speakerphone同时具备麦克风与扬声器USB 音频适配器 3.5mm 接口麦克风适合手头有传统模拟麦克风的情况ReSpeaker 2-Mics Pi HATSeeed 出品直接以 HAT 形式插在树莓派 GPIO 上自带双麦克风、一个 Grove 按钮和 3.5mm/JST 音频输出。蓝牙麦克风不推荐树莓派对蓝牙麦克风支持并不完整若使用蓝牙麦克风或蓝牙耳麦可能遇到配对困难或无法录音的问题。扬声器的五种接法树莓派自带 3.5mm 耳机输出口可直接接耳机、耳麦或音箱此外还可通过以下方式外接扬声器HDMI 音频通过显示器或电视输出声音USB 音箱USB 耳麦USB 一体式会议扬声器ReSpeaker 2-Mics Pi HAT将扬声器接到其 3.5mm 接口或 JST 端口。连接并配置麦克风第 1 步物理连接用合适的方式连接麦克风例如插入任意一个 USB 口。第 2 步可选使用 ReSpeaker 2-Mics Pi HAT如果你选用 ReSpeaker HAT可以取下原来的 Grove Base HAT换上 ReSpeaker HAT本课后续录音需要用到 Grove 按钮而该 HAT 上已内置一个按钮因此可以不再需要 Grove Base HAT。装好 HAT 后还需要按 Seeed 官方入门说明安装驱动。⚠️ Seeed 的安装说明依赖git克隆仓库。若你的树莓派未安装 git可先执行sudo apt install git --yes第 3 步枚举已连接的麦克风在树莓派本机终端或通过 VS Code Remote-SSH 连接后的终端中执行arecord -l该命令会列出所有可用的录音Capture硬件设备输出形如piraspberrypi:~ $ 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记下卡片号card number后续 Python 录音代码需要用到。以上输出中卡片号为1。 建议只保留一个麦克风Linux 下多麦克风配置较繁琐只插一个、拔掉其余是最省事的做法。连接并配置扬声器第 1 步物理连接用合适的方式连接扬声器3.5mm 耳机口、USB 或 HDMI。第 2 步枚举已连接的扬声器执行aplay -l输出形如piraspberrypi:~ $ 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 ... card 1: M0 [eMeet M0], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0其中card 0: Headphones总是存在它是树莓派内置的 3.5mm 耳机输出口若你还接了 USB 音箱等额外设备它们也会出现在列表中。第 3 步把外接扬声器设为默认如果你使用的是外接扬声器而非接在内置耳机口上的音箱/耳机需要把它设为 ALSA 的默认播放设备sudo nano /usr/share/alsa/alsa.conf用方向键向下滚动找到defaults.pcm.card 0把0改为上一步aplay -l输出中对应声卡的卡片号。例如输出中有card 1: M0 [eMeet M0], device 0: USB Audio [USB Audio]要使用它则改为defaults.pcm.card 1用方向键定位到数字删除后输入新数字即可。第 4 步保存并退出按Ctrlx按y确认保存再按Enter确认文件名。这一defaults.pcm.card值非常重要——课程后续录音代码 code-record/pi/smart-timer/app.py 中的speaker_card_number扬声器卡片号就与该配置保持一致若回放报错首先检查这里。测试麦克风与扬声器录制 5 秒音频arecord --formatS16_LE --duration5 --rate16000 --file-typewav out.wav命令运行期间对着麦克风说话、唱歌或制造任何声音。参数说明参数含义本课取值--formatS16_LE16-bit 小端序 PCM 采样有符号整数S16_LE--duration5录制时长秒5--rate16000采样率 16KHz对语音转文字足够16000--file-typewav输出未压缩 WAV 文件wav16KHz、16-bit 单声道音频每秒约 32KB16,000 样本/秒 × 2 字节/样本这也是语音识别模型常用的输入规格。回放验证5 秒后录制自动结束执行aplay --formatS16_LE --rate16000 out.wav声音应通过扬声器播放出来必要时调节扬声器音量。调节音量与增益如需调节内置麦克风口音量或麦克风增益可使用alsamixer工具其用法详见 Linux 的 alsamixer man 手册。若回放时出现错误请再次检查alsa.conf中defaults.pcm.card是否指向了正确的卡片。与项目代码的衔接从录音到语音转文字完成本文的硬件配置后接下来课程会引导你完成两步采集音频pi-audio.md安装pyaudio依赖sudo apt install libportaudio0 libportaudio2 libportaudiocpp0 portaudio19-dev libasound2-plugins --yes再pip3 install pyaudio用代码把本文记录到的microphone_card_number/speaker_card_number填入 app.pymicrophone_card_number 1 # arecord -l 查到的卡片号 speaker_card_number 1 # alsa.conf 中 defaults.pcm.card 的卡片号 rate 48000 # 采样率报 Invalid sample rate 时可改 44100 或 16000语音转文字pi-speech-to-text.md用requests先向 Azure Speech Service 获取访问令牌令牌约 10 分钟过期再把 WAV 音频缓冲区 POST 到语音识别 REST API将识别文本打印到控制台。完整实现见 code-speech-to-text/pi/smart-timer/app.py其中录音回调逻辑与本文配置的采样率rate严格对应请求头Content-Type中的samplerate{rate}。由此可见本文中的arecord -l/aplay -l卡片号、alsa.conf默认声卡设置以及 16KHz 采样率是整个智能定时器按下按钮说话 → 云端识别链路正确运行的地基。常见问题排查回放报错优先检查/usr/share/alsa/alsa.conf中defaults.pcm.card是否与aplay -l输出一致。OSError: [Errno -9997] Invalid sample rate运行课程代码时若出现该错误把rate改为44100或16000。创建 PyAudio 实例时的 ALSA 警告类似Unknown PCM cards.pcm.front的报错来自树莓派上未连接的音频设备配置可忽略。蓝牙设备无法录音换用 USB 或有线方案。小结通过本文你已完成树莓派语音识别的硬件准备选型并连接麦克风/扬声器、用arecord -l与aplay -l确认声卡、在alsa.conf中指定默认播放设备、并用arecord/aplay完成录制回放自检。这套环境接下来将直接服务于 IoT-For-Beginners 消费者项目中的智能定时器——按下按钮采集语音交给云端 AI 转为文字构建一个属于自己的语音交互设备。【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表