我的AI女友

260 阅读3分钟

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!

video.gif

✨ 功能特点

  • 🎤 实时语音识别
  • 🤖 AI 智能对话
  • 🔊 自然语音合成
  • 💬 优雅的对话界面
  • 🎯 即时响应机制

🚀 快速开始

环境要求

  • Node.js >= 16 (前端项目构建)
  • Python >= 3.8 (后端服务)
  • Flask
  • DeepSpeek API
  • 阿里云智能语音服务
  • 阿里云对象存储服务

运行步骤

  1. 克隆项目
git clone https://gitee.com/mktime/ai-girlfriend.git
  1. 添加环境变量到~/.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 APIALIYUN_AK_IDALIYUN_AK_SECRET 为阿里云的 AccessKey ID 和 AccessKey Secret,登录阿里云控制台,点击右上角主账号-->AccessKey-->创建AccessKey

ALI_VOICE_APPKEY 为阿里云智能语音交互的应用 AppKey,申请地址为 [阿里云智能语音交互](阿里云智能语音交互。点击【全部项目】-->【创建项目】,项目类型选择【语音识别 + 语音合成 + 语音分析】。创建完成后,点击【项目功能配置】,在【语音合成】中,可以试听不同的音色,可以根据个人喜好,选择合适的音色。

OSS_ENDPOINTOSS_BUCKET_NAME 为阿里云 OSS 的 Endpoint 和 BucketName。申请地址为 [阿里云 OSS]([阿里云 OSS]( [阿里云 OSS](阿里云 OSS。点击【Bucket列表】--> 【创建Bucket】完成创建。创建完成后,点击bucket名称,再点击【概览】,页面下方可以看到 Endpoint 和 BucketName。

  1. 启动后端服务
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
  1. 启动前端项目
npm install
npm run dev
  1. 浏览器运行
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语音 → 前端播放

参考链接

后续开发计划

  • 自动识别断句(Voice Activity Detection, VAD)
  • 关键词唤醒 (Keyword Spotting, KWS)