jarvis-ai-assistant
钢铁侠式的本地语音AI助手,支持对话、拍照识别、WhatsApp自动化和AI图片生成
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
钢铁侠式的本地语音AI助手,支持对话、拍照识别、WhatsApp自动化和AI图片生成
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
试想这样一个场景:深夜里你正忙着赶一个deadline,手指在键盘上飞舞,突然想起需要给妈妈发条消息——不必中断工作,只需对着电脑说一声「 Jarvis,给妈妈发微信说我今晚会晚点回去」,你的私人AI助手便自动完成一切。这不是科幻电影,而是印度开发者 Anubhav Chaturvedi 用 Python 打造的真实工具。
图1:J.A.R.V.I.S 项目在 GitHub 上的主界面

J.A.R.V.I.S(全称 Just A Rather Very Intelligent System)这个名称直接取自《钢铁侠》系列电影中托尼·斯塔克的AI管家。开源社区对这一IP的热情从未消退——GitHub上以「J.A.R.V.I.S」命名的项目至少有上百个,但大多数只是概念验证或代码片段,能够真正落地使用的少之又少。
Anubhav Chaturvedi 的版本不同寻常:它不是一个纯代码练习项目,而是一个功能完整的本地AI助手,作者还配套运营着 YouTube 频道 NetHyTech,录制了详细的安装与使用教程。这种「项目+内容」的组合模式,使它在 GitHub 上积累了 258 颗星,获得了相当一批个人开发者和学生用户的关注。
J.A.R.V.I.S 的代码组织采用模块化插件架构,各功能域相互独立,通过统一的入口文件 jarvis.py 和核心调度器 co_brain.py 串联协作。这种结构的好处是:添加新功能只需新建一个模块文件,不需要修改核心逻辑。
项目的完整目录结构如下:
Brain/ — AI 大脑核心,调用 PhindSearch 引擎处理自然语言对话Features/ — 辅助功能集:文件创建、IP查询、笑话获取、麦克风/扬声器健康检测、音量控制、亮度调节等Automation/ — 系统自动化模块:打开应用、浏览器自动化、网页搜索、音乐播放(YouTube/Spotify)、媒体控制、截屏滚动等Vision/ — 计算机视觉模块:调用 OpenCV 摄像头拍照 + LLaVA 1.5 模型识别图片内容TextToSpeech/ — 语音合成:通过 StreamElements API 将文字转为语音,支持 Matthew 等多种嗓音NetHyTechSTT/ — 语音识别:基于 Selenium 模拟浏览器语音搜索实现语音输入TextToImage/ — 图片生成:调用 api.airforce (基于 FLUX) 的免费接口生成AI图片Weather_Check/ — 天气查询:通过爬取 Google 搜索结果获取实时天气Whatsapp_automation/ — WhatsApp 自动发消息Time_Operations/ — 闹钟与日程管理Data/ — 对话数据与提示语存储图2:项目作者 Anubhav Chaturvedi 的 GitHub 头像

语音交互是 J.A.R.V.I.S 最有意思的部分,但实现方式相当「野路子」:它并没有使用 Whisper、Kaldi 等专业语音识别库,而是通过 Selenium 模拟浏览器操作,在 Google 搜索框中触发 Chrome 的语音输入功能(--use-fake-ui-for-media-stream 参数),将用户语音转为文字后写入共享文件 input.txt,再由主循环读取并解析。
这种方式的优势是完全零依赖专业ASR模型,但代价是:必须有图形界面、必须打开Chrome浏览器、麦克风权限必须授予Chrome——也就是说,这个助手本质上是一个「有眼睛和耳朵的浏览器脚本」。
语音合成(TTS)则相对正规:使用 StreamElements 提供的免费语音 API(api.streamelements.com/kappa/v2/speech),支持选择不同嗓音,将AI回复的文字转为语音播放。播放由 playsound 库完成,Windows 端还用了 winotify 做系统通知。
核心对话能力由 webscout 库的 PhindSearch 提供——Phind 是一个面向开发者的 AI 搜索引擎,背后可能接入了 GPT-4 或 Claude 等模型。在 Brain/brain.py 中,每条用户消息都会被写入 chat_hystory.txt 作为上下文存档,Main_Brain() 函数负责调用 Phind 并返回回复。
这种「AI即服务」的架构使项目本身不需要训练任何模型,但也意味着:没有网络连接,AI对话功能完全失效。离线模式下,J.A.R.V.I.S 只能执行预置的系统自动化任务。
Vision/Vbrain.py 实现了拍照识别功能:通过 OpenCV 调用本地摄像头拍摄图片,将图像 base64 编码后,以多模态消息形式发送给 DeepInfra 的 llava-hf/llava-1.5-7b-hf 接口,询问图片中的文字内容。这是一个真正基于开源多模态模型的视觉理解能力,而非简单的 OCR。
TextToImage/gen_image.py 提供了 AI 图片生成功能:调用 api.airforce/v1/imagine2 接口,这是一个免费且无认证的 FLUX 模型推理端点。用户说出「生成一张赛博朋克风格的都市夜景」,助手就会生成并保存图片。这个功能完全依赖第三方免费接口,稳定性无法保证。
J.A.R.V.I.S 不是那种「下载即用」的傻瓜工具。从 GitHub 安装后,用户需要:
portaudio-dev,PyCAW (Windows 音频控制) 只支持 Windowswebscout)、DeepInfra(llava-hf)、StreamElements(TTS)、api.airforce(图片生成)——这些都是第三方服务,有的免费有的限流因此,这个项目最适合以下用户:
J.A.R.V.I.S 的局限性相当明显:
1. 高度依赖外部服务 所有核心功能(AI对话、语音识别、语音合成、图片生成)都依赖第三方在线 API,一旦网络中断或第三方服务变更,项目可能直接瘫痪。
2. 隐私风险
WhatsApp 自动化模块中硬编码了作者的真实手机号(被部分遮罩为 +919****8280),且语音输入通过 Google 浏览器发送,用户的所有语音指令实际上都经过了 Google 的服务器。
3. 平台锁定
代码中存在大量 Windows 特有路径写法(如反斜杠 \\)、Windows 专有库(winotify、wmi、comtypes、pycaw),Linux/macOS 支持基本是纸上谈兵。
4. 安全问题
wa.py 中直接明文存储手机号,co_brain.py 中日志直接追加写入本地文件(潜在文件写入攻击面),缺少任何输入验证机制。
J.A.R.V.I.S 代表着开源 AI 助手领域的一个有趣分支——不追求大模型微调,而是利用现有免费 API 快速组装一个功能完整的个人助手。这种「胶水代码」式开发模式,虽然在工程深度上不如 LangChain、AutoGPT 等框架,但在降低 AI 助手入门门槛方面效果显著。
近年来,随着 GPT-4o、CLaaS 等多模态模型的成熟,类似的「本地小模型 + 在线大模型」混合架构正在成为主流。J.A.R.V.I.S 的模块化设计思路(语音输入 → AI处理 → 系统执行 → 语音输出)为这一方向提供了一个不错的参考模板。
对于想要入门的开发者,建议以此项目为起点,逐步将各模块替换为更可靠的本地方案:
platform 模块判断 OS,逐步消除 Windows 硬编码