
在上一课,我们让电脑听到了人说话,但Tyree 说:“它光是听,听完就没了,能不能让它听完之后真的干点什么事?比如我说‘打开浏览器’,它就真的把浏览器打开。”
这个是可以实现的。只要把‘识别出文字’和‘执行动作’连在一起就行了。今天咱们就做这个。
他立马坐好:“那你快教教我吧。”
今天我们就来做一个最简单的语音命令执行器:你对电脑说“打开浏览器”,它就真的把浏览器打开。
01. 安装必要的库
除了之前的`SpeechRecognition`,本课还需要一个能控制系统行为的模块:`webbrowser`。它是 Python 自带的,不需要额外安装。
pip install SpeechRecognition

如果需要麦克风,还需要`pyaudio`(安装方法见第46课)。`webbrowser` 是 Python 内置模块,不用装。
02. 什么是 `webbrowser` 模块?
`webbrowser` 是 Python 自带的一个模块,它的作用是用系统默认的浏览器打开一个网址。
你只需要告诉它“打开这个网址”,它就会自动调用你电脑上的默认浏览器(Chrome、Edge、Firefox 等)。

运行上面这两行代码,你的默认浏览器会自动打开百度首页。
为什么用它呢?
因为它最简单。你不需要知道浏览器装在哪个文件夹,不需要写复杂的系统命令,一行代码就能搞定。
03. 第一个完整程序:说“打开浏览器”,它就打开浏览器
下面我们来看看这个程序怎么写的,看下面代码截图:

运行后,就会提示你说话,然后执行命令打开网站
代码解释:
`webbrowser.open("https://www.baidu.com")` 是核心动作,它会用系统默认浏览器打开百度。
-`if "打开浏览器" in text:` 判断用户说的话里是否包含“打开浏览器”这几个字。
如果包含,就执行打开浏览器的操作。注意,这里用的是 `in`,不是 `==`。这意味着用户说“帮我打开浏览器”或“打开浏览器吧”也能触发,只要包含关键词即可。
-如果用户说的话里没有“打开浏览器”,程序会打印“未识别到命令”,然后结束。
04. 循环“监听”:持续等待命令
单次识别只能执行一次命令,如果想持续“监听”,把它放进循环里:


上图中框起来的持续“监听“的代码。
- `while True` 使程序一直运行,直到用户说“退出”才会结束。
- `elif` 用来扩展多个命令。如果你想增加“打开记事本”或“打开计算器”,就在 `elif` 后面继续添加。
- `break` 在识别到“退出”时跳出循环,结束程序。
- `timeout=5` 和 `phrase_time_limit=8` 的作用与第46课相同(分别控制等待时间和单次录音长度)。
05. 增加更多命令:打开不同网站
我们还可以把命令扩展成多个,让电脑做不同的事:

每添加一个`elif`,程序就多听懂一个命令。
为什么要用`elif` 而不是多个 `if`?
因为`elif` 是“否则如果”,一旦有一个条件匹配,后面的就不会再判断。
而多个 `if` 会逐个判断,即使第一个匹配了,后面的也会继续判断,浪费性能。在这个场景下没有功能差异,但 `elif` 更高效。
06. 如果要打开其他软件怎么办?
`webbrowser` 只能打开网址,不能直接打开电脑上的软件(如记事本、计算器)。
如果要打开本地软件,需要用
Python 的 `os.system` 或 `subprocess` 模块。

或者:

但不同操作系统的命令不同,
Windows 用 `notepad.exe`,
Mac 用 `open -a TextEdit`。
08. 今天学到了什么
- `webbrowser.open(url)`:用默认浏览器打开指定网址。
- `if "关键词" in text:`:判断用户说的话里是否包含某个关键词。
- `elif` 扩展多个命令。
- 从“识别”到“执行”的完整链路:麦克风录音 → 识别文字 → 关键词判断 → 执行动作。
好了,今天就到这里啦!
下一课我们学习:调用AI大模型接口——用 `requests` 调用DeepSeek等大模型,问它问题,让它回答。
————热门推荐————
少儿自学编程第40课:打包游戏成exe文件——把你用Python做的作品发给朋友
少儿自学编程第42课:用摄像头识别物体——让电脑“看见”世界
自学编程第7课:turtle画图入门(画一个正方形,五角形,螺旋形,三角形)
自学编程第2课:用input让电脑问你名字(做一个打招呼程序)
自学编程第一步:安装Python和Thonny(零基础图文教程)
(本系列教程每天更新,欢迎关注收藏)