AI Jarvis 是一个功能丰富的智能助手项目,集成了语音识别、文本转语音、视觉识别、网页阅读、天气查询、文件操作等多种功能,为用户提供全方位的智能交互体验。
完整软件安装包链接:start_AI2.0安装包
AI Jarvis提供以下核心功能模块:
- 语音交互:语音识别和文本转语音功能,支持中英文交流
- 视觉识别:屏幕截图识别和图像分析
- 网页阅读与控制:自动提取并阅读当前网页内容,支持网页操作
- 天气查询:获取指定城市的天气信息和未来天气预报
- 文件操作:创建、编辑和打开各类文档,支持格式转换
- 手势识别:通过手势控制系统功能
- 窗口管理:获取和激活活动窗口,控制窗口大小和位置
- 应用启动:快速启动常用应用程序
- 系统控制:执行Windows系统快捷键操作
- 多媒体控制:控制音乐播放、截图和录屏等
这是软件的主界面文件,使用PyQt5开发的图形用户界面,提供以下功能:
- API密钥管理:配置阿里云API和秘塔AI搜索API密钥
- AI性格设置:自定义AI助手的性格和交互风格
- 声音设置:选择男声/女声,开启/关闭语音对话
- 自定义头像:上传和自定义悬浮球头像
- 服务控制:启动、重启和监控后端服务进程
- 设置保存:将所有配置保存到相应的配置文件中
界面采用选项卡设计,包含"API密钥管理"和"设置"两个主要标签页,支持高DPI显示。
后端服务启动文件,负责初始化和启动AI助手的核心服务,主要功能包括:
- 环境配置:加载API密钥和系统设置
- 服务启动:启动MCP服务,提供API接口
- 模型集成:初始化和配置AI模型
- 图像编码:实现图像到base64的编码转换
- 进程管理:确保服务稳定运行
这是项目的核心功能文件,定义了各种FastMCP工具函数和API接口。主要功能模块包括:
- 天气查询:获取实时天气和未来7天预报
- 网页功能:打开网页、读取网页内容、控制网页
- 视觉识别:截图识别、屏幕内容分析
- 代码处理:生成代码、解释代码、代码优化
- 文件分析:读取和分析文件内容,生成摘要
- 文档转换:Markdown转Word、Markdown转Excel
- 办公软件控制:操作Word、Excel、PPT、PDF等文档
- 系统操作:打开文件夹、启动应用程序
- 媒体控制:控制网易云音乐播放
- 手势控制:启动和停止手势识别
- 剪贴板操作:获取剪贴板内容
- Windows快捷键:执行系统快捷键操作
- 文件夹管理:在活动目录中创建文件夹
文本转语音功能模块,使用DashScope API实现高质量语音合成:
- 语音生成:将文本转换为自然语音
- 声音配置:支持男声/女声选择
- 语速控制:调整语音播放速度
- 实时语音输出:立即播放生成的语音
语音识别功能模块,基于DashScope API实现语音到文本的转换:
- 语音识别:将用户语音转换为文本
- 实时转录:提供回调机制处理识别结果
- 多语言支持:支持中英文语音识别
图像识别功能模块,利用AI模型分析图像内容:
- 图像分析:识别图像中的物体、场景和文本
- 截图分析:分析屏幕截图内容
- 视觉理解:提供图像内容的语义理解
网页内容读取模块,自动提取和处理网页信息:
- 内容提取:从网页中提取主要文本内容
- 格式处理:清理和格式化网页文本
- 阅读准备:为语音阅读准备优化的文本内容
git clone <repository-url>
cd AI_jarvis_2_package项目使用Python编写,需要安装以下依赖包:
pip install -r requirements.txt对于PyQt5相关依赖,可以单独安装:
pip install -r requirementspyqt5.txt项目使用以下API服务:
- 阿里云DashScope API:用于语音识别和文本转语音功能
- 秘塔AI搜索API:用于增强搜索功能
需要在根目录创建.env文件并配置API密钥:
ALIBABA_CLOUD_ACCESS_KEY_ID=your_api_key_here
METASO_API_KEY=your_metaso_api_key_here直接运行start_AI.py启动图形界面:
python start_AI.py在界面中可以:
- 配置API密钥
- 启动/重启后端服务
- 管理AI助手的各项设置
- 自定义AI性格和声音
- 更换悬浮球头像
如果不需要图形界面,可以直接运行后端服务:
python mcp_agent_and_server_start.py通过语音或文本指令查询指定城市的天气信息,支持:
- 获取实时天气状况
- 查询未来7天天气预报
- 获取温度、湿度、风向等详细信息
示例指令:"查询北京今天天气"、"上海未来三天天气如何"
- 打开网页:通过URL或关键词打开指定网页
- 阅读网页:自动提取并阅读当前网页的主要内容
- 网页控制:对网页进行信息提取、内容转换等操作
示例指令:"打开百度"、"阅读当前网页"、"提取这个网页的关键信息"
- 截图识别:截取屏幕内容并进行分析
- 屏幕内容理解:识别屏幕上的文本、图像和UI元素
- 场景分析:理解屏幕内容的上下文和含义
示例指令:"分析当前屏幕"、"截图并解释这个界面"
- 生成代码:根据需求生成各类编程语言的代码
- 解释代码:解释代码的功能和工作原理
- 代码优化:提供代码改进建议
示例指令:"生成一个Python爬虫代码"、"解释这段代码的功能"
- 文件内容分析:读取并分析各类文件内容
- 格式转换:Markdown转Word、Markdown转Excel等
- 文档操作:编辑Word、Excel、PPT、PDF等文档
示例指令:"将这个Markdown转换为Word"、"分析这个PDF文件"、"修改Excel表格中的数据"
- 应用管理:启动和控制各类应用程序
- 窗口操作:控制窗口大小、位置和状态
- 系统快捷键:执行Windows系统快捷键
- 手势控制:通过手势识别控制系统
示例指令:"打开微信"、"最小化所有窗口"、"启动手势控制"、"播放下一首音乐"
项目使用以下配置文件保存用户设置:
ai_setting.txt:AI助手的性格和行为设置tts_sound.txt:文本转语音的声音设置("male"或"female")sound_on.txt:控制语音对话开关状态("True"或"False").env:存储API密钥和敏感配置信息downloads/圆AI.png:自定义悬浮球头像
- "查询[城市]天气"
- "[城市]今天天气如何"
- "[城市]未来几天天气"
- "打开[网站名称]"
- "在[网站名称]搜索[关键词]"
- "阅读当前网页"
- "提取网页关键信息"
- "打开微信"
- "启动网易云音乐"
- "打开Word"
- "截图"
- "分析当前屏幕"
- "最小化所有窗口"
- "显示桌面"
- "创建新文件夹"
- "将Markdown转换为Word"
- "读取这个PDF文件"
- "播放/暂停"
- "下一首"
- "上一首"
- "音量增大"
- "启动手势控制"
- "停止手势控制"
语音唤醒功能使用Vosk语音识别库,支持以下唤醒词组合:
- "hello t"
- "hello c"
- "hello d"
- "hello j"
- "hello h"
可以直接通过喊:"hello jarvis"唤醒(因为这个模型的识别准确率太低了,所以用上面的唤醒词组合来实现唤醒😜)
系统会使用正则表达式进行模糊匹配,识别到正确的唤醒词后会触发相应操作。
- Python 3.7+
- Windows操作系统(项目包含Windows特定的功能如窗口管理)
- 麦克风和扬声器(用于语音交互)
- 网络连接(用于API调用和在线服务)
- 确保正确配置API密钥,否则语音识别和文本转语音功能将无法使用
- 首次运行需要下载语音模型文件(Vosk模型)
- 部分功能可能需要管理员权限才能正常工作
语音唤醒功能(voice_wake.py)需要Vosk模型支持。请按照以下步骤下载并配置模型:
访问Vosk官方网站下载小型英语模型:
- 下载地址:vosk-model-small-en-us-0.15
- 或者使用以下命令直接下载(Windows PowerShell):
# 创建模型目录(如果不存在)
New-Item -ItemType Directory -Force -Path ".\vosk-model-small-en-us-0.15"
# 下载模型文件
Invoke-WebRequest -Uri "https://alphacephei.com/vosk/models/vosk-model-small-en-us-0.15.zip" -OutFile "vosk-model-small-en-us-0.15.zip"
# 解压模型文件(需要安装7-Zip或使用Windows内置解压工具)
Expand-Archive -Path "vosk-model-small-en-us-0.15.zip" -DestinationPath "."下载完成后,确保模型目录与voice_wake.py在同一文件夹下,或修改voice_wake.py中的模型路径:
# 修改为您的实际模型路径
model = Model('path/to/vosk-model-small-en-us-0.15')voice_wake.py使用正则表达式识别以"hello"开头的唤醒词,支持模糊匹配。当识别到正确的唤醒词组合时,将触发相应操作。
本项目仅供个人学习和使用。