Skip to content

Weitzei/AIlive_stream

Repository files navigation

AI直播系统

基于AI技术的智能直播平台,支持AI主播、声音拟人化、场景搭建和公屏互动等功能。

📚 项目文档

功能特性

-### 核心功能

  • 用户认证系统:登录、注册、充值功能
  • AI主播配置:对接火山引擎、小黄车管理、角色个性设置
  • AI文案生成:基于火山引擎豆包大模型生成直播话术
  • 自动朗读:讯飞 WebAPI TTS + HTML5 播放列队,支持自动播报与播放列表循环
  • 声音克隆(方案一):基于讯飞个性化语音合成,实现训练/查询/合成全链路
  • 声音克隆控制台:提供 /voice-clone 页面上传训练素材、查看任务与克隆朗读
  • 公屏互动:评论获取和AI回复
  • 搭建开播场景(模块4):根据最新排期暂缓实现,仅保留数据库结构与占位接口

技术栈

  • 后端:Flask 3.0.0
  • 数据库:MySQL (pymysql)
  • AI模型:火山引擎(豆包系列)
  • TTS:讯飞 WebAPI TTS + HTML5 Audio
  • 前端:HTML + CSS + JavaScript

快速开始

1. 环境要求

  • Python 3.7+
  • MySQL 5.7+
  • 推荐使用虚拟环境

2. 安装依赖

pip install -r requirements.txt

3. 数据库配置

编辑 test.py,修改数据库连接信息:

host="localhost"
port=3306
user="root"
password="your_password"
database="demo01"

4. 初始化数据库

python init_database.py

5. 配置环境变量(可选)

# Windows PowerShell
$env:VOLCANO_API_KEY="your_volcano_api_key"
$env:VOLCANO_CHAT_MODEL="doubao-1-5-pro-32k"
$env:VOLCANO_CHAT_ENDPOINT="https://ark.cn-beijing.volces.com/api/v3/chat/completions"
$env:XFYUN_APP_ID="your_xfyun_app_id"
$env:XFYUN_API_KEY="your_xfyun_api_key"
$env:XFYUN_API_SECRET="your_xfyun_api_secret"
$env:XFYUN_TTS_DEFAULT_VOICE="xiaoyan"
$env:DEFAULT_CARD_CODE="123456"

可选:通过 XFYUN_TTS_VOICES_JSON 传入 { "zh-CN": [{ "value": "...", "label": "..." }] } 结构,可自定义前端音色下拉列表。

6. 启动应用

python main.py

7. 访问应用

浏览器打开:http://localhost:5000

项目结构

.
├── main.py                 # Flask主应用
├── test.py                 # 数据库连接模块
├── init_database.py        # 数据库初始化脚本
├── requirements.txt        # 依赖包列表
├── templates/              # HTML模板
│   ├── login.html          # 登录页
│   ├── register.html       # 注册页
│   ├── index.html          # 首页
│   ├── live.html           # 开播页
│   ├── ai_anchor.html      # AI主播配置页
│   └── recharge.html       # 充值页
├── uploads/                # 上传文件目录(自动创建)
│   └── videos/             # 视频文件
├── 需求分析文档.md          # 需求文档
├── 测试步骤.md              # 详细测试步骤
└── README.md               # 本文件

主要功能说明

1. 用户认证

  • 登录:支持用户名密码登录,可勾选"记住我"
  • 注册:用户名3-20字符,密码至少6位,且需填写管理员下发的卡密(默认123456,可通过环境变量DEFAULT_CARD_CODE覆盖)
  • 充值:创建充值订单(支付接口待对接)

2. AI主播配置

  • 直播间描述:必需填写,用于生成话术
  • 对接平台:配置火山引擎API密钥和模型接入点
  • 角色个性:可选,设置主播风格和限制
  • 小黄车管理:添加、删除商品,管理橱窗位

3. AI直播功能

  • 文案生成:基于火山引擎豆包模型生成直播话术
  • 连续生成:点击“开始直播”后根据直播间描述持续输出口播内容
  • 自动朗读:生成话术自动推送到火山TTS并播放,可暂停/恢复,并与播放列表循环共用一套播放器
  • 零输入操作:产品信息直接沿用 AI 主播配置中的直播间描述,无需再手动发送

4. 模块4(搭建开播场景)

  • 本模块涉及的视频去重与 OBS 同步能力已根据最新排期暂缓,当前版本仅保留数据库结构与占位接口以便后续扩展。

API接口文档

用户相关

  • POST /login - 用户登录
  • POST /register - 用户注册
  • POST /api/recharge - 创建充值订单

AI相关

  • POST /api/ai-chat - 火山引擎文案生成
  • POST /api/iflytek-tts - 讯飞 WebAPI TTS,返回 Base64 音频用于前端播放
  • GET/POST /api/ai-anchor/config - AI主播配置

自动朗读

  • GET /api/auto-read/list - 获取播放列表
  • POST /api/auto-read/batch - 批量添加内容
  • POST /api/auto-read/clear - 清空列表
  • PUT /api/auto-read/<id> - 更新内容
  • DELETE /api/auto-read/<id> - 删除内容
  • POST /api/auto-read/reorder - 重新排序

小黄车

  • GET /api/shopping-cart/list - 获取商品列表
  • POST /api/shopping-cart/add - 添加商品
  • DELETE /api/shopping-cart/<id> - 删除商品

公屏评论

  • POST /api/comments/fetch - 获取评论
  • POST /api/comments/reply - AI回复评论

数据库表结构

主要数据表

  • login_user - 用户表
  • recharge_orders - 充值订单表
  • ai_anchor_configs - AI主播配置表
  • shopping_cart_items - 小黄车商品表
  • video_uploads - 视频上传表
  • obs_configs - OBS配置表
  • auto_read_items - 自动朗读列表表
  • interaction_rules - 互动规则表
  • comment_queue - 评论队列表

注:video_uploadsobs_configs 等表用于模块4的后续实现,当前版本暂不启用相关业务逻辑。

详细表结构请参考 init_database.py

配置说明

AI模型配置

当前版本固定对接火山引擎(豆包):

  1. 在“AI主播配置”页面填写 API Key、模型接入点与直播间描述
  2. 或通过环境变量 VOLCANO_API_KEY / VOLCANO_CHAT_MODEL 统一下发
  3. 点击“开始直播”后将自动以直播间描述为提示词,连续生成口播文案

提示:原智谱 / Deepseek / OpenAI 通道已暂停,待后续恢复再开放开关。

自动朗读配置

  • 朗读调用讯飞 WebAPI TTS,需要配置 XFYUN_APP_ID / XFYUN_API_KEY / XFYUN_API_SECRET
  • 音色下拉来源于环境变量 XFYUN_TTS_VOICES_JSON(未配置时使用示例音色)
  • 速度 / 音调 / 音量滑块映射到讯飞参数 speed / pitch / volume(0-100)
  • 开始直播 会自动推送口播到 TTS,右侧播放列表与自动播报共用一套播放器,可暂停/恢复/停止

声音克隆(讯飞一句话复刻标准版)

  1. 环境变量:沿用 XFYUN_APP_ID / XFYUN_API_KEY / XFYUN_API_SECRET,并支持以下可选覆盖:
    • VOICE_CLONE_UPLOAD_DIR:素材缓存目录(默认 uploads/voice_clone
    • XFYUN_CLONE_AUTH_URL:鉴权地址,默认 http://avatar-hci.xfyousheng.com/aiauth/v1/token
    • XFYUN_CLONE_TRAIN_BASE_URL:训练接口根路径,默认 http://opentrain.xfyousheng.com/voice_train
    • XFYUN_CLONE_WS_HOST / XFYUN_CLONE_WS_PATH:合成 WebSocket 地址(默认 cn-huabei-1.xf-yun.com + /v1/private/voice_clone
    • VOICE_CLONE_POLL_INTERVAL / VOICE_CLONE_POLL_RETRY:训练状态轮询频率与最大次数
  2. 依赖安装:执行 pip install -r requirements.txt,需本地安装 ffmpeg 以支持 pydub
  3. 数据准备POST /api/voice-clone/trainmultipart/form-data)上传多段音频,服务端完成 16kHz 单声道归一化并打包,通过 /task/add + /task/submitWithAudio 对接讯飞训练接口。
  4. 训练查询GET /api/voice-clone/status/<task_id>,内部调用 /task/result,返回 voice_idprogresserror_msg 等字段,状态枚举 processing/success/failed
  5. 克隆合成POST /api/voice-clone/synthesize,经由 ws://cn-huabei-1.xf-yun.com/v1/private/voice_clone 流式获取音频。JSON 体示例:
    {
      "voice_id": "clone_voice_id",
      "text": "家人们看过来!",
      "emotion": "happy",
      "speed": 55,
      "pitch": 60
    }
    返回字段 audio_base64 可直接传给前端播放器(audio/mpeg)。
  6. 避坑提示
    • 单条语音建议 4-8 秒,整体不少于 30 分钟,背景噪声明显的片段需提前清理
    • 训练失败多因素材过短/压缩包损坏/情感标签非法,必要时结合 /voice_train/task/result 返回的错误信息排查
    • 需确保所有音频拥有合法授权,谨防侵权

UI 提示:登录后访问 http://localhost:5000/voice-clone,可通过可视化界面完成“上传→训练→朗读”全流程。

更多 step-by-step 细节参见 VOICE_CLONE_GUIDE.md,接口说明参考 讯飞一句话复刻(标准版)文档

注意事项

安全提示

  1. ⚠️ SQL注入风险:当前代码使用字符串拼接SQL,建议升级为参数化查询
  2. ⚠️ 密码明文存储:建议使用bcrypt哈希加密
  3. ⚠️ API密钥安全:使用环境变量管理,不要提交到代码仓库

功能限制

  1. 搭建开播场景:本模块暂缓实现,相关视频去重与 OBS 同步能力不在当前交付范围
  2. 支付功能:充值订单创建成功,但支付接口未对接
  3. 公屏评论:当前返回模拟数据,需要对接真实直播平台API
  4. 外部模型/语音:智谱与 Deepseek 仍未恢复,当前使用火山引擎豆包模型生成文案 + 讯飞 TTS 朗读

开发计划

已完成 ✅

  • 用户认证系统
  • AI主播配置
  • AI文案生成
  • 自动朗读功能
  • 公屏评论基础能力
  • 数据库表结构

待完善 🔄

  • 声音拟人化(音频上传、声音克隆)
  • 公屏评论对接(真实API)
  • 系统设置功能
  • 支付接口对接
  • 搭建开播场景(视频去重 + OBS 同步)

测试

详细测试步骤请参考 测试步骤.md

快速测试:

# 1. 初始化数据库
python init_database.py

# 2. 启动应用
python main.py

# 3. 访问 http://localhost:5000
# 4. 注册/登录账户
# 5. 测试各个功能模块

问题反馈

如遇到问题,请检查:

  1. 数据库连接配置是否正确
  2. 依赖包是否全部安装
  3. 环境变量是否配置
  4. 查看控制台错误信息

许可证

本项目仅供学习和研究使用。

更新日志

v1.0.0 (2024-01-01)

  • 初始版本发布
  • 实现核心功能模块
  • 完成基础测试

祝使用愉快!如有问题,请参考测试步骤文档或查看代码注释。

About

AI直播 全自动

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors