AI 语音助手 🎙️
一个基于 Vue 3 + Python 开发的 AI 语音助手,支持语音对话、实时语音识别和语音合成功能。前端使用 Vue 3 构建优雅的用户界面,后端基于 Flask、Deepseek API、阿里巴巴智能语音服务 提供 AI 对话、语音识别和合成服务。
这个项目采用字节跳动的Trae IDE开发,用时仅2天,赞叹使用Trae IDE的效率,和AI对软件行业的冲击。
虽然自己前后端开发略懂一点,但是如果想做一个完整的产品,还是需要很花费时间的,现在有了AI的加持,真的可以很快的完成一个demo。编程真正变成了一件很有意思的事情(AI即将接管程序员,想到如果为此而失业又有点伤心)。
代码已开源:gitee.com/mktime/ai-g… 欢迎star!
✨ 功能特点
- 🎤 实时语音识别
- 🤖 AI 智能对话
- 🔊 自然语音合成
- 💬 优雅的对话界面
- 🎯 即时响应机制
🚀 快速开始
环境要求
- Node.js >= 16 (前端项目构建)
- Python >= 3.8 (后端服务)
- Flask
- DeepSpeek API
- 阿里云智能语音服务
- 阿里云对象存储服务
运行步骤
- 克隆项目
git clone https://gitee.com/mktime/ai-girlfriend.git
- 添加环境变量到~/.bashrc或~/.zshrc
# 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。
ALIYUN_AK_ID 和 ALIYUN_AK_SECRET 为阿里云的 AccessKey ID 和 AccessKey Secret,登录阿里云控制台,点击右上角主账号-->AccessKey-->创建AccessKey。
ALI_VOICE_APPKEY 为阿里云智能语音交互的应用 AppKey,申请地址为 [阿里云智能语音交互](阿里云智能语音交互。点击【全部项目】-->【创建项目】,项目类型选择【语音识别 + 语音合成 + 语音分析】。创建完成后,点击【项目功能配置】,在【语音合成】中,可以试听不同的音色,可以根据个人喜好,选择合适的音色。
OSS_ENDPOINT 和 OSS_BUCKET_NAME 为阿里云 OSS 的 Endpoint 和 BucketName。申请地址为 [阿里云 OSS]([阿里云 OSS]( [阿里云 OSS](阿里云 OSS。点击【Bucket列表】--> 【创建Bucket】完成创建。创建完成后,点击bucket名称,再点击【概览】,页面下方可以看到 Endpoint 和 BucketName。
- 启动后端服务
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
- 启动前端项目
npm install
npm run dev
- 浏览器运行
http://localhost:5173/
大功告成!
系统架构
系统架构
系统主要分为三层:
- 前端层
- 使用 Vue 3 构建
AudioRecorder组件负责录音功能- 使用 Web Audio API 进行音频采集和处理
- 负责音频录制、发送请求和播放合成语音
- 后端层
- 基于 Flask 框架
- 提供三个主要 API 接口:
- /api/speech-to-text : 语音识别
- /api/chat : AI 对话
- /api/text-to-speech : 语音合成
- 负责文件处理和云服务集成
- 云服务层
- 阿里云 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
- [阿里云智能语音交互](- [阿里云智能语音交互](help.aliyun.com- 阿里云智能语音交互
后续开发计划
- 自动识别断句(Voice Activity Detection, VAD)
- 关键词唤醒 (Keyword Spotting, KWS)