IoT-For-Beginners 实战:为虚拟 IoT 设备配置麦克风与扬声器,开启语音识别之旅
【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners
在《IoT-For-Beginners》课程的 "Recognize speech with an IoT device"(语音识别)一课中,学习者既可以使用 Wio Terminal、Raspberry Pi 等真实硬件,也可以使用运行在普通计算机上的**虚拟 IoT 设备(Virtual IoT device)**完成全部实验。本指南对应课程中的 "Configure your microphone and speakers" 环节(原文档位于 translations/de/6-consumer/lessons/1-speech-recognition/virtual-device-microphone.md,以下统称「虚拟设备音频配置」),讲解如何为虚拟 IoT 设备准备麦克风与扬声器环境。完成本环节后,你将具备在 Windows / macOS / Linux 上搭建语音采集与语音转文本(Speech-to-Text)实验环境的能力,并理解该环节在后续「智能厨房定时器」项目中的衔接关系。
为什么虚拟 IoT 设备需要独立的音频配置
虚拟 IoT 设备是课程提供的一种开发替代方案:当你不具备 Wio Terminal 或 Raspberry Pi 硬件时,可以用安装了 Python 的普通计算机模拟 IoT 设备的行为。与真实硬件需要外接 Grove 传感器不同,虚拟 IoT 设备直接使用连接到计算机的麦克风和扬声器作为"传感器"与"执行器"——麦克风扮演音频传感器的角色(把声波转换为电信号),扬声器则负责输出音频反馈。
这一点与课程 README 中对麦克风的定位一脉相承:麦克风是典型的模拟传感器,空气中的振动引起内部组件微小位移,进而引起电信号的微小变化,这些变化经放大后形成电输出。在虚拟设备方案中,这个"传感器"就是计算机上的麦克风硬件,后续课程会用 AI 服务把采集到的语音转换为文本,从而实现语音控制。
因此,在开始写代码之前,必须先确认或补齐计算机的音频硬件,这正是本环节要解决的问题。
前提条件:计算机的麦克风与扬声器
虚拟 IoT 设备运行在计算机上,其语音识别流程依赖两块音频硬件:
- 麦克风:负责采集语音,供后续语音转文本使用;
- 扬声器:用于输出音频反馈(后续课程中会用语音播报定时器状态,同时在当前课程中用于验证麦克风采集是否正常)。
如果你的计算机已经内置麦克风和扬声器(如大多数笔记本),则无需额外操作,直接进入后续 虚拟设备音频采集 环节即可。
硬件选型清单
如果你的计算机没有内置麦克风和扬声器,则必须使用自有硬件连接,原文档给出的可选方案如下:
- USB 麦克风(USB microphone):即插即用,是最常见的外接方案;
- USB 扬声器(USB speakers):通过 USB 供电并传输音频;
- 显示器内置扬声器,经 HDMI 连接(Speakers built into your monitor and connected over HDMI):利用显示器作为音频输出设备;
- 蓝牙耳机/耳麦(Bluetooth headset):同时提供麦克风与扬声器功能。
提示:与 Raspberry Pi 方案中「蓝牙麦克风兼容性不佳」的注意事项不同,虚拟设备运行在桌面操作系统上,上述设备在 Windows、macOS 和 Linux 下均可按操作系统标准的音频设备机制工作。
安装与配置步骤
原文档明确要求:参照硬件制造商的说明完成所选设备的安装与配置。虽然不同厂商、不同接口(USB / HDMI / 蓝牙)的配置细节各异,但整体遵循以下通用检查流程:
- 按制造商说明将设备连接到计算机(插入 USB 接口、连接 HDMI 线或完成蓝牙配对);
- 确认操作系统已识别该设备——在 Windows 的"声音设置"、macOS 的"声音"偏好设置或 Linux 的音频设置中检查输入/输出设备;
- 将目标设备设为默认输入(麦克风)与默认输出(扬声器);
- 用系统自带的录音/播放功能做一次快速回环测试,确认采集与回放均正常。
如果你使用 Raspberry Pi 而非虚拟设备,可参考课程中更详尽的 pi-microphone.md,其中包含arecord -l、aplay -l、修改/usr/share/alsa/alsa.conf默认声卡等 Linux 特有的配置命令。
验证音频环境并衔接后续实验
完成硬件配置后,虚拟设备方案在音频采集上几乎无需额外代码——课程文档 virtual-device-audio.md 明确说明:
本课程稍后将用于把语音转换为文本的 Python 库,在 Windows、macOS 和 Linux 上都内置了音频采集能力,你在这里不需要做任何事。
也就是说,后续实验使用的语音服务 Python SDK 会自动调用操作系统默认的音频输入设备,读取你在上一节中配置好的麦克风。这一步验证通过后,就可以进入 虚拟设备语音转文本 环节编写代码。
语音转文本示例:虚拟设备如何用上麦克风
课程为虚拟设备提供了完整的可运行示例,位于 code-speech-to-text/virtual-iot-device/smart-timer/app.py。其核心流程展示了麦克风采集到的语音如何被转换为文本:
import time from azure.cognitiveservices.speech import SpeechConfig, SpeechRecognizer speech_api_key = '<key>' location = '<location>' language = '<language>' recognizer_config = SpeechConfig(subscription=speech_api_key, region=location, speech_recognition_language=language) recognizer = SpeechRecognizer(speech_config=recognizer_config) def process_text(text): print(text) def recognized(args): process_text(args.result.text) recognizer.recognized.connect(recognized) recognizer.start_continuous_recognition() while True: time.sleep(1)运行前需要安装语音服务 SDK:
pip install azure-cognitiveservices-speech如果安装时报错ERROR: Could not find a version that satisfies the requirement azure-cognitiveservices-speech,先执行pip install --upgrade pip升级 Pip 后重试。
从代码结构可以看出虚拟设备方案的几个关键设计:
SpeechConfig通过订阅密钥、区域(region)与识别语言(如en-GB英语、zh-HK粤语)完成语音服务配置;SpeechRecognizer在后台线程持续监听麦克风,按音频电平自动切分语音块,在语句结束时触发识别;recognized回调把识别结果打印到控制台,验证麦克风链路是否打通。
其中"监听麦克风"正是本环节配置的音频硬件在发挥传感器作用——这也是把"配置麦克风"作为独立环节放在语音转文本之前的根本原因。课程 README 还强调,语音识别模型能够结合上下文修正同音词(如 "two / to / too"),这正是识别引擎的能力,而非麦克风硬件本身。
更多参考
- 课程主文档:6-consumer/lessons/1-speech-recognition/README.md——涵盖麦克风类型(动圈、铝带、电容、MEMS)、数字音频采样(PCM)、语音转文本模型原理与隐私话题;
- 音频采集说明:virtual-device-audio.md;
- 语音转文本完整代码:virtual-device-speech-to-text.md 与 app.py;
- 真实硬件对照方案:pi-microphone.md(Raspberry Pi)、wio-terminal-microphone.md(Wio Terminal)。
至此,虚拟 IoT 设备的音频硬件已就绪,你可以开始用语音与计算机对话,构建属于自己的语音控制智能定时器了。
【免费下载链接】IoT-For-Beginners12 Weeks, 24 Lessons, IoT for All!项目地址: https://gitcode.com/GitHub_Trending/io/IoT-For-Beginners
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考