# ai-girlfriend **Repository Path**: mktime/ai-girlfriend ## Basic Information - **Project Name**: ai-girlfriend - **Description**: 一个基于 Vue 3 + Python 开发的 AI 语音助手(虚拟女友),支持语音对话、实时语音识别和语音合成功能。前端使用 Vue 3 构建优雅的用户界面,后端基于 Flask、Deepseek API、阿里巴巴智能语音服务 提供 AI 对话、语音识别和合成服务。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 12 - **Forks**: 0 - **Created**: 2025-03-17 - **Last Updated**: 2025-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI 语音助手 🎙️ 一个基于 Vue 3 + Python 开发的 AI 语音助手,支持语音对话、实时语音识别和语音合成功能。前端使用 Vue 3 构建优雅的用户界面,后端基于 Flask、Deepseek API、阿里巴巴智能语音服务 提供 AI 对话、语音识别和合成服务。 这个项目采用字节跳动的Trae IDE开发,用时仅2天,赞叹使用Trae IDE的效率,和AI对软件行业的冲击。 虽然自己前后端开发略懂一点,但是如果想做一个完整的产品,还是需要很花费时间的,现在有了AI的加持,真的可以很快的完成一个demo。编程真正变成了一件很有意思的事情(AI即将接管程序员,想到如果为此而失业又有点伤心)。 ![演示截图](./video.gif) ## ✨ 功能特点 - 🎤 实时语音识别 - 🤖 AI 智能对话 - 🔊 自然语音合成 - 💬 优雅的对话界面 - 🎯 即时响应机制 ## 🚀 快速开始 ### 环境要求 - Node.js >= 16 (前端项目构建) - Python >= 3.8 (后端服务) - Flask - DeepSpeek API - 阿里云智能语音服务 - 阿里云对象存储服务 ### 运行步骤 1. 克隆项目 ```bash git clone https://gitee.com/mktime/ai-girlfriend.git ``` 2. 添加环境变量到~/.bashrc或~/.zshrc ```bash # deepseek api export DEEPSEEK_API_KEY="sk-xxx" # 阿里云账号AccessKey export ALIYUN_AK_ID="your_ak_id" export ALIYUN_AK_SECRET="your_ak_secret" export ALI_VOICE_APPKEY="your_appkey" export OSS_ENDPOINT="oss-cn-beijing.aliyuncs.com" export OSS_BUCKET_NAME="=your_bucket_name" ``` 其中,`DEEPSEEK_API_KEY` 为 Deepseek API 的密钥,申请地址为 [Deepseek API]([Deepseek API](https://platform.deepseek.com/)。 `ALIYUN_AK_ID` 和 `ALIYUN_AK_SECRET` 为阿里云的 AccessKey ID 和 AccessKey Secret,登录阿里云控制台,点击右上角主账号-->`AccessKey`-->`创建AccessKey`。 `ALI_VOICE_APPKEY` 为阿里云智能语音交互的应用 AppKey,申请地址为 [阿里云智能语音交互]([阿里云智能语音交互](https://nls-portal.console.aliyun.com/overview)。点击【全部项目】-->【创建项目】,项目类型选择【语音识别 + 语音合成 + 语音分析】。创建完成后,点击【项目功能配置】,在【语音合成】中,可以试听不同的音色,可以根据个人喜好,选择合适的音色。 `OSS_ENDPOINT` 和 `OSS_BUCKET_NAME` 为阿里云 OSS 的 Endpoint 和 BucketName。申请地址为 [阿里云 OSS]([阿里云 OSS]( [阿里云 OSS]([阿里云 OSS](https://oss.console.aliyun.com/overview)。点击【Bucket列表】--> 【创建Bucket】完成创建。创建完成后,点击bucket名称,再点击【概览】,页面下方可以看到 Endpoint 和 BucketName。 2. 启动后端服务 ```bash cd server pip install -r requirements.txt # 安装阿里语音合成的SDK https://github.com/aliyun/alibabacloud-nls-python-sdk cd alibabacloud-nls-python-sdk python -m pip install -r requirements.txt python -m pip install . # 启动后端服务 python server.py ``` 3. 启动前端项目 ```bash npm install npm run dev ``` 4. 浏览器运行 ```bash http://localhost:5173/ ``` 大功告成! ## 系统架构 ![演示截图](./architecture.png) ### 系统架构 系统主要分为三层: 1. 前端层 - 使用 Vue 3 构建 - `AudioRecorder` 组件负责录音功能 - 使用 Web Audio API 进行音频采集和处理 - 负责音频录制、发送请求和播放合成语音 2. 后端层 - 基于 Flask 框架 - 提供三个主要 API 接口: - /api/speech-to-text : 语音识别 - /api/chat : AI 对话 - /api/text-to-speech : 语音合成 - 负责文件处理和云服务集成 3. 云服务层 - 阿里云 OSS:音频文件存储 - 阿里云语音识别(ASR):将语音转换为文本 - Deepseek API:提供 AI 对话能力 - 阿里云语音合成(TTS):将文本转换为语音 ### 数据流程 - 用户说话 → 前端录音 → WAV音频文件 - WAV文件 → 上传到后端 → 存储到阿里云OSS - OSS音频URL → 阿里云语音识别 → 文本内容 - 文本内容 → Deepseek AI对话 → AI回复 - AI回复 → 阿里云语音合成 → MP3语音 - MP3语音 → 前端播放 ### 参考链接 - [Deepseek API](- [Deepseek API](platform.deepseek.com- [Deepseek API](https://platform.deepseek.com//) - [阿里云智能语音交互](- [阿里云智能语音交互](help.aliyun.com- [阿里云智能语音交互](https://help.aliyun.com/zh/isi/developer-reference/sdk-for-python-3?spm=a2c4g.11186623.help-menu-30413.d_3_0_2_1_6.2d966d21qq7DmQ&scm=20140722.H_94062._.OR_help-T_cn~zh-V_1) ## 后续开发计划 - 自动识别断句(Voice Activity Detection, VAD) - 关键词唤醒 (Keyword Spotting, KWS) ## 💬 交流讨论 如果你在使用过程中有任何问题或建议,请扫描二维码加入交流群,与其他开发者一起讨论项目相关话题。群内有专人解答使用问题,同时也欢迎贡献你的想法! 欢迎加入我们的微信交流群: ![演示截图](./qrcode.jpg)