通过用户录制声音样本,实现个性化文本转语音(TTS)的网页端应用应用

项目简介

本项目涵盖三款基于网页端应用和云开发的语音克隆产品:小豆配音、加一配音、铭文配音。用户只需录制1-3分钟的声音样本,系统即可提取声音特征,之后输入任意文本,即可生成符合自己音色的语音。

核心功能

  • 声音录制: 录制用户声音样本,提供参考文本指导
  • 语音合成: 输入任意文本,生成个性化语音
  • 音频管理: 查看、播放、分享和下载历史音频
  • 用户中心: 管理声纹档案,查看使用配额

技术特点

  • 前后端分离架构
  • 网页端应用云开发(云函数 + 云数据库 + 云存储)
  • 深度学习语音克隆模型(SV2TTS)
  • 异步任务队列处理
  • 音频质量检测和优化

项目结构

三款产品均采用标准化项目结构,以小豆配音为例:

xiaodou-peiyin-miniapp/ ├── miniprogram/ # 网页端应用前端代码 │ ├── pages/ # 页面文件 │ │ ├── index/ # 首页 │ │ ├── record/ # 录音页面 │ │ ├── synthesize/ # 语音合成页面 │ │ ├── audio-list/ # 音频列表页面 │ │ └── profile/ # 个人中心 │ ├── components/ # 自定义组件 │ ├── utils/ # 工具函数 │ ├── app.js # 网页端应用入口 │ └── app.json # 网页端应用配置 ├── cloudfunctions/ # 云函数 │ ├── login/ # 用户登录 │ ├── upload/ # 文件上传 │ ├── extract/ # 声音特征提取 │ ├── synthesize/ # 语音合成 │ └── query/ # 数据查询 └── 其他配置文档

部署环境说明

重要: 本项目主要在中国大陆部署,网络环境有特殊要求。

部署约束

  • 部署地区: 中国大陆
  • 云服务商: 腾讯云 CVM
  • 操作系统: Debian 12 (bookworm) / Ubuntu 20.04+
  • 网络要求: 需要使用国内镜像源(Docker、PyPI、npm)

关键注意事项

  1. Docker 安装: 必须使用国内加速脚本(使用国内镜像源)
  2. 包管理: 所有依赖安装都应使用国内镜像源
  3. 网络限制: GitHub、Docker Hub 等国外源访问可能不稳定

快速开始

前置要求

  • Node.js >= 14.x
  • Python >= 3.8
  • 网页端应用开发者工具
  • 网页端应用账号(AppID)
  • 中国大陆服务器(推荐腾讯云 CVM)

安装步骤

详细步骤参考各产品专属配置指南。

核心技术栈

前端

  • 网页端应用框架: WXML + WXSS + JavaScript
  • 云开发: 云函数 + 云数据库 + 云存储

后端

  • 云函数: Node.js (wx-server-sdk)
  • 数据库: MongoDB (云开发)
  • 存储: 云对象存储

AI 模型

  • 语音克隆: SV2TTS / YourTTS
  • 深度学习: PyTorch + TorchAudio
  • 音频处理: Librosa + FFmpeg

架构设计

用户录音 → 上传云存储 → 云函数触发特征提取 → 存储声纹特征 用户输入文本 → 调用TTS API → 云端合成音频 → 返回音频URL → 网页端应用播放

开发进度

整体进度: 各产品独立推进,平均进度约29%

MVP 完成度: 单产品MVP完成度约40%

已完成模块

  • 项目初始化和环境搭建
  • 数据库设计和模型定义
  • 云存储配置
  • 用户认证和授权
  • 语音录制模块
  • 音频上传和格式转换
  • 语音克隆模型集成

进行中模块

  • 声音特征提取服务 - 当前重点

后端部署指南

快速部署(腾讯云 CVM)

  1. 连接服务器 ssh root@YOURSERVERIP # 2. 克隆对应产品代码 cd /opt git clone 对应产品仓库地址 # 3. 安装 Docker(使用国内镜像源) chmod +x installdockerchina.sh sudo ./installdockerchina.sh # 4. 配置环境变量 nano .env.production # 修改 APIKEY 和 ALLOWEDORIGINS # 5. 部署应用 docker compose build docker compose up -d # 6. 验证部署 curl

部署文档

文档说明
DEPLOYMENT_CONSTRAINTS.md中国网络环境约束(必读)
SECURITYGROUPGUIDE.md安全组配置指南
TENCENTCLOUDDEPLOYMENT.md完整部署指南
APITESTREPORT.mdAPI 测试报告

数据库设计

主要集合

  1. voice_profiles: 用户声纹档案
  2. tts_tasks: TTS 任务记录
  3. audio_files: 音频文件记录
  4. users: 用户信息

API 接口

核心接口

  • POST /api/voice-profile/upload: 上传录音样本
  • POST /api/voice-profile/extract: 触发特征提取
  • GET /api/voice-profile/:id: 获取声纹档案
  • POST /api/tts/synthesize: 文本转语音
  • GET /api/tts/task/:taskId: 查询TTS任务状态

配额和限制

  • 每日TTS合成次数: 10次/用户
  • 单次文本长度: 1-500字
  • 录音时长: 30秒-5分钟
  • 用户存储空间: 100MB

安全和隐私

  • 所有API调用需要网页端应用用户身份认证
  • 声纹数据与用户ID强绑定,禁止跨用户访问
  • 音频文件使用签名URL,限时访问(24小时)
  • 敏感数据传输使用HTTPS加密
  • 提供数据删除功能,符合隐私保护法规

贡献指南

欢迎各产品的代码贡献!请遵循以下步骤:

  1. Fork 对应仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

许可证

各产品均采用 MIT 许可证 - 查看对应仓库 LICENSE 文件了解详情

联系方式

  • 项目问题: 各仓库 GitHub Issues
  • 功能建议: 各仓库 GitHub Discussions

注意

本项目仅供学习和研究使用,请勿用于非法用途。使用他人声音进行克隆需获得明确授权。