Jarvis-Desktop-Voice-Assistant指令识别机制全解析:从关键词匹配到扩展自定义语音命令

发布时间:2026/10/20 23:45:49
Jarvis-Desktop-Voice-Assistant指令识别机制全解析:从关键词匹配到扩展自定义语音命令 【免费下载链接】Jarvis-Desktop-Voice-AssistantA python based desktop voice assistant capable of executing system-level commands, integrating speech recognition and text-to-speech, and handling asynchronous user interactions.项目地址https://gitcode.com/gh_mirrors/ja/Jarvis-Desktop-Voice-Assistant点击查看免费下载Jarvis-Desktop-Voice-Assistant 是一个基于 Python 的桌面语音助手它通过语音识别把麦克风输入转成文本再用关键词匹配的方式识别指令并执行查时间、开网页、放音乐、截图等系统级操作。本文将带你完整拆解它的指令识别机制从takecommand()语音转文本、if/elif关键词分发到如何扩展自定义语音命令新手也能快速读懂并魔改这个开源项目。️ 30 秒认识这个语音助手这个项目虽然代码量不大核心只有一个 jarvis.py但功能相当完整能力说明️ 语音交互麦克风收音 Google 语音识别结果自动转小写 文本朗读基于pyttsx3离线语音合成无需联网⚙️ 系统级指令查时间日期、打开网站、播放音乐、截图、开关机 知识查询通过wikipedia库总结并朗读词条安装运行步骤一键上手git clone https://gitcode.com/gh_mirrors/ja/Jarvis-Desktop-Voice-Assistant cd Jarvis-Desktop-Voice-Assistant python -m venv .venv pip install -r requirements.txt python Jarvis/jarvis.py依赖清单见 requirements.txtpyttsx3、wikipedia、PyAutoGUI、SpeechRecognition、pyjokes。 指令识别整体流程语音 → 文本 → 关键词分发Jarvis 的指令识别没有用复杂的 NLP而是三段式流水线非常直观麦克风输入 → takecommand() 语音转文本 → while 主循环 if/elif 关键词匹配 → 调用对应函数第一步takecommand() 完成语音转文本所有识别逻辑的入口是 takecommand() 函数它做了四件关键的事创建识别器sr.Recognizer()并打开麦克风sr.Microphone()限时监听r.listen(source, timeout5)5 秒内没说话就抛出sr.WaitTimeoutError语音提示Timeout occurred后返回None语音识别调用r.recognize_google(audio, languageen-in)把音频转成文本归一化处理返回query.lower()——转成小写是关键词匹配能生效的前提。第二步主循环用 if/elif 做关键词分发程序启动时先调用 wishme() 按时间段问候用户随后进入while True主循环jarvis.py#L149-L201。每一轮先调用takecommand()取指令若为None听不清/超时直接continue重新监听拿到文本后用一连串if/elif判断句子中是否包含某个关键词命中哪个就执行对应功能函数。这正是它指令识别机制的本质不解析语义只匹配关键词。好处是零依赖、好理解、易扩展代价是一句指令只能触发一个功能。✅ Jarvis 内置语音命令清单以下是 主循环 中内置的全部指令按触发关键词整理语音指令示例触发关键词执行动作What is the time?time语音播报当前时间What is the date?date语音播报当前日期Search on Wikipedia about machine learningwikipedia去除关键词后剩余部分作为词条总结 2 句并朗读Play musicplay music从~\Music随机挑一首播放Open YouTube / Open Googleopen youtube/open google调用webbrowser打开网站Change your namechange your name重新命名助手写入assistant_name.txtTake a screenshotscreenshot截屏保存到Pictures目录Tell me a joketell me a joke用pyjokes随机讲一个笑话Shutdown / Restartshutdown/restart执行系统关机 / 重启命令Go offline / Exitoffline/exit语音道别并退出程序几个细节值得新手学习参数提取wikipedia和play music两条指令不是有就行而是先query.replace(wikipedia, ).strip()把关键词剔除剩下的文字当作参数搜索词条 / 歌曲名再传给功能函数顺序即优先级if/elif从上到下短路判断time比date优先写自定义指令时要注意关键词不要互相包含。实测效果——语音问时间和日期语音查询 Wikipedia 词条并朗读摘要语音播放本地音乐语音触发截图指令️ 容错机制听不清、超时、服务不可用怎么办语音助手的指令识别必须有兜底否则一环境嘈杂程序就崩了。takecommand() 中针对三类异常分别做了处理异常触发场景Jarvis 的反应sr.WaitTimeoutError5 秒内没检测到有效人声语音提示Timeout occurred返回Nonesr.UnknownValueError听到了声音但识别不出内容语音提示I did not understand that返回Nonesr.RequestError语音识别服务不可用网络问题语音提示服务不可用返回None主循环里if not query: continue让助手在失败后自动进入下一轮监听而不是退出这就是异步响应用户交互的核心体验——永远在等你下一次开口。 如何扩展自定义语音命令理解了关键词 函数的模式扩展新指令只需要三步写好功能函数比如想加一个打开 VS Code指令就写一个调用os.startfile()打开编辑器的函数在主循环加一个elif分支放在 if/elif 链 中合适的位置elif open vscode in query: os.startfile(rC:\Program Files\Microsoft VS Code\Code.exe) speak(Opening Visual Studio Code.)跑起来测试python Jarvis/jarvis.py对着麦克风说 open vscode 即可命中。扩展技巧关键词尽量用短语open vscode而非单独的vscode避免误触发带参数的指令如播放某首歌参考play music的写法先replace掉关键词再取剩余文本涉及系统安全操作关机、重启的指令建议加二次确认防止误触发。 关键文件路径速查文件作用Jarvis/jarvis.py核心源码语音识别、关键词匹配、全部功能函数Jarvis/README.md模块说明与功能演示文档Jarvis/data.txt记事功能写入的备忘文件requirements.txt依赖版本清单Images/功能演示截图目录小结Jarvis-Desktop-Voice-Assistant 的指令识别机制可以概括为一句话takecommand()负责把声音变成小写文本主循环的if/elif链负责把文本匹配成动作。这套语音转文本 关键词匹配的模式足够简单却完整覆盖了聆听、识别、容错、执行全链路是学习语音助手开发的一个极佳起点。掌握它之后你只需几行elif就能为它扩展自己的自定义语音命令。赞分享【免费下载链接】Jarvis-Desktop-Voice-AssistantA python based desktop voice assistant capable of executing system-level commands, integrating speech recognition and text-to-speech, and handling asynchronous user interactions.项目地址https://gitcode.com/gh_mirrors/ja/Jarvis-Desktop-Voice-Assistant点击查看免费下载相关推荐Jarvis-Desktop-Voice-Assistant如何听懂你的话SpeechRecognitionpyttsx3语音识别原理全解Jarvis Desktop Voice Assistant如何听懂你的话SpeechRecognitionpyttsx3语音识别原理全解 Jarvis DESP-SR MultiNet 命令词识别模型选择、命令词自定义与离线识别实战ESP SR MultiNet 命令词识别模型选择、命令词自定义与离线识别实战 ESP SR 的 MultiNet 模型是乐鑫在 ESP32 系列芯片上离线实语音音频人工智能嵌入式物联网Kedro 命令行接口CLI完全指南从命令参考到自定义扩展Kedro 命令行接口CLI完全指南从命令参考到自定义扩展 本篇技术指南系统讲解 Kedro 框架的命令行接口CLI涵盖 Shell 自动补全配置、数据工程工作流自动化上一篇为 Cargo 编写 RFC从提案到稳定化的全流程与清单设计指南下一篇gitignore.io用户行为分析优化产品体验创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询