# CosyVoice-Enhanced **Repository Path**: RemoteBridge_admin/CosyVoice-Enhanced ## Basic Information - **Project Name**: CosyVoice-Enhanced - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: deploy - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-05 - **Last Updated**: 2025-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🎙️ CosyVoice 增强版 [![SVG Banners](https://svg-banners.vercel.app/api?type=origin&text1=CosyVoice🤠&text2=OpenAI%20兼容%20TTS%20API&width=800&height=210)](https://github.com/FunAudioLLM/CosyVoice)

Python Version Docker Ready OpenAI Compatible CUDA Support Streaming Support

## 🌟 增强版特性 此增强版基于官方 [FunAudioLLM/CosyVoice](https://github.com/FunAudioLLM/CosyVoice) 构建,为生产部署添加了专业级功能: ### 🎯 **OpenAI 兼容 API** - **完全 OpenAI TTS API 兼容** - 可直接替换 OpenAI 的 `/v1/audio/speech` 端点 - **多种音频格式**:MP3、WAV、FLAC、AAC、Opus、PCM(24kHz 16位) - **语音映射**:与 OpenAI 语音名称(alloy、echo、fable 等)无缝集成 - **生产就绪**:使用 Flask 和 Waitress 构建,提供高性能服务 ### 🎨 **增强 Web 界面** - **现代 Material Design UI**,支持深色/浅色主题 - **多语言支持**(中文/英文),配备 i18n 框架 - **高级语音管理**:上传、管理和组织语音库 - **实时音频转录**,集成外部 API - **模型切换**:在 CosyVoice 1.0/2.0 模型间无缝切换 - **批量处理**:使用队列管理生成多个语音 ### 🐳 **生产级 Docker 部署** - **一键部署**,使用 Docker Compose - **GPU 加速**:完整的 NVIDIA CUDA 和 TensorRT 支持 - **VLLM 集成**:自动检测和优化 CosyVoice2 - **健康监控**:内置健康检查和日志记录 - **环境灵活性**:通过环境变量配置 ### ⚡ **性能优化** - **流式推理**:低延迟实时合成 - **模型缓存**:智能模型加载和内存管理 - **VLLM 加速**:CosyVoice2 推理速度提升多达 3 倍 - **音频处理**:集成音量标准化和格式转换 --- ## 🚀 快速开始 > [!IMPORTANT] > 本项目包含 `Matcha-TTS` 作为子模块。为确保正确克隆,请在使用 `git clone` 时添加 `--recursive` 标志: > ```bash > git clone --recursive https://github.com/EitanWong/CosyVoice-Enhanced.git > ``` > 如果您已经克隆了仓库但未包含子模块,可以运行以下命令来初始化它: > ```bash > git submodule update --init --recursive > ``` ### 方案 1:Docker 部署(推荐) ```bash # 克隆仓库 git clone --recursive https://github.com/EitanWong/CosyVoice-Enhanced.git cd CosyVoice # 下载模型(选择您偏好的模型) python scripts/download.py --model CosyVoice2-0.5B # 或者:python scripts/download.py --model CosyVoice-300M-SFT # 使用 Docker Compose 启动 cd docker docker-compose up -d # 检查服务状态 docker-compose logs -f cosyvoice-api ``` **🎯 API 地址**:`http://localhost:9996` **🌐 Web UI 地址**:`http://localhost:9996/webui` ### 🖱️ 一键脚本(Windows) 为 Windows 用户,我们在 `scripts/` 目录中提供了便捷的批处理脚本: ```bash # 首先导航到项目根目录 cd CosyVoice # 然后使用以下任一一键脚本: scripts\docker-compose-up.bat # 在后台启动服务 scripts\docker-compose-stop.bat # 停止服务(容器保留) scripts\docker-compose-restart.bat # 重启所有服务 scripts\docker-compose-down.bat # 停止并删除容器 ``` **📋 脚本特性:** - **🔍 自动检测**:如需要会自动检测并启动 Docker Desktop - **⏱️ 智能等待**:在继续之前等待 Docker 准备就绪 - **📊 状态反馈**:清晰的进度指示器和错误消息 - **🛡️ 错误处理**:优雅的故障处理和有用的消息 **⚠️ 重要提示:** - 从**项目根目录**运行脚本(不是从 `scripts/` 文件夹) - 脚本自动导航到正确的 `docker/` 目录 - 首次启动可能需要 2-3 分钟进行 Docker Desktop 初始化 - 使用这些脚本前请确保已安装 Docker Desktop ### 方案 2:本地安装 ```bash # 创建 conda 环境 conda create -n cosyvoice python=3.10 -y conda activate cosyvoice # 安装依赖 pip install -r requirements.txt # 下载模型 python scripts/download.py --model CosyVoice2-0.5B # 启动 API 服务器 python api/api.py --model pretrained_models/CosyVoice2-0.5B --port 9996 # 启动 Web UI(在另一个终端中) python api/webui.py --model_dir pretrained_models/CosyVoice2-0.5B --port 7860 ``` --- ## 📚 使用示例 ### 🔌 OpenAI 兼容 API 无缝替换您的 OpenAI TTS 调用为 CosyVoice: ```python from openai import OpenAI # 指向您的 CosyVoice 服务器 client = OpenAI( api_key="dummy-key", # 不必需但 OpenAI 客户端需要 base_url="http://localhost:9996/v1" ) # 生成语音(与 OpenAI API 相同) response = client.audio.speech.create( model="tts-1", voice="中文女", input="您好!这是 CosyVoice 增强版的高质量语音合成。", response_format="mp3" ) # 保存音频 with open("speech.mp3", "wb") as f: f.write(response.content) ``` ### 🌐 cURL 示例 ```bash # 基本语音生成 curl -X POST "http://localhost:9996/v1/audio/speech" \ -H "Content-Type: application/json" \ -d '{ "model": "tts-1", "input": "你好,这是CosyVoice增强版的语音合成测试。", "voice": "中文女", "response_format": "mp3" }' \ --output speech.mp3 # 流式响应 curl -X POST "http://localhost:9996/v1/audio/speech" \ -H "Content-Type: application/json" \ -d '{ "model": "tts-1", "input": "实时流式合成演示。", "voice": "中文女", "response_format": "mp3", "stream": true }' \ --output streaming_speech.mp3 ``` ### 🎨 Web 界面功能 1. **🎯 模型管理**:在 CosyVoice 1.0/2.0 模型间即时切换 2. **🎤 语音库**:上传和管理自定义语音样本 3. **🌍 多语言**:生成中文、英文、日文、韩文语音 4. **📝 智能转录**:为语音克隆自动转录上传的音频 5. **⚡ 批量处理**:使用不同语音生成多个音频文件 6. **🎨 主题支持**:专业的深色/浅色模式界面 --- ## 🏗️ 架构与模型 ### 📊 模型比较 | 模型 | 大小 | 语言 | 特性 | 最适用于 | |-------|------|-----------|----------|------------| | **CosyVoice2-0.5B** | 500M | 5+ 语言 | 流式、VLLM、超低延迟 | **生产 API** | | **CosyVoice-300M-SFT** | 300M | 5+ 语言 | 零样本克隆 | **语音克隆** | | **CosyVoice-300M-Instruct** | 300M | 5+ 语言 | 自然语言控制 | **创意合成** | ### 🎯 支持的语言 - **中文**(普通话 + 方言:粤语、四川话、上海话等) - **英文**(美式/英式口音) - **日文**(标准日语) - **韩文**(标准韩语) - **跨语言合成**和代码切换 ### 🔧 性能特性 #### **CosyVoice2 增强功能** - ⚡ **150ms 首个词元延迟**用于流式传输 - 🎯 **发音错误减少 30-50%**(相比 v1.0) - 🔊 **5.53 MOS 评分**(相比 v1.0 的 5.4) - 🚀 **VLLM 加速**自动检测 #### **生产优化** - 📊 **自动音量标准化**(-23 LUFS) - 🎵 **多格式音频转换**(MP3、WAV、FLAC 等) - 💾 **智能模型缓存**和内存管理 - 🐳 **容器化部署**配备健康监控 --- ## 🐳 Docker 配置 ### 环境变量 ```env # API 配置 API_HOST=0.0.0.0 API_PORT=9996 MODEL_DIR=pretrained_models/CosyVoice2-0.5B # 性能选项 LOAD_JIT=false # TorchScript JIT 编译 LOAD_TRT=false # TensorRT 优化(仅限 Linux) FP16=false # 半精度推理 USE_FLOW_CACHE=false # 流模型缓存 # VLLM 加速(仅 CosyVoice2) LOAD_VLLM=auto # auto|true|false NO_AUTO_VLLM=false # 禁用自动 VLLM 检测 # GPU 配置 CUDA_VISIBLE_DEVICES=all NVIDIA_VISIBLE_DEVICES=all ``` ### 卷挂载 ```yaml volumes: # 模型文件(必需) - ./pretrained_models:/workspace/CosyVoice/pretrained_models:ro # 日志和临时文件 - ./logs:/workspace/CosyVoice/logs - ./tmp:/workspace/CosyVoice/tmp # 自定义配置(可选) - ./config:/workspace/CosyVoice/config:ro ``` --- ## 🛠️ 高级配置 ### 📁 脚本目录概览 `scripts/` 目录包含用于不同部署场景的各种实用脚本: #### 🐳 **Docker 管理脚本(Windows)** | 脚本 | 用途 | 使用方法 | 说明 | |--------|---------|-------|-------| | `docker-compose-up.bat` | 启动服务 | 双击或从根目录运行 | 在后台启动容器 | | `docker-compose-stop.bat` | 停止服务 | 双击或从根目录运行 | 停止容器,保留数据 | | `docker-compose-restart.bat` | 重启服务 | 双击或从根目录运行 | 重启所有容器 | | `docker-compose-down.bat` | 删除容器 | 双击或从根目录运行 | 停止并删除容器 | #### 🚀 **部署和设置脚本** | 脚本 | 用途 | 平台 | 描述 | |--------|---------|----------|-------------| | `deploy.sh` | 生产部署 | Linux/macOS | 高级 Docker 部署配备健康检查 | | `setup.bat` | 环境设置 | Windows | 安装依赖项并配置环境 | | `download.py` | 模型下载器 | 跨平台 | 从 ModelScope 下载预训练模型 | #### 🖥️ **开发脚本(Windows)** | 脚本 | 用途 | 使用方法 | 描述 | |--------|---------|-------|-------------| | `run-api.bat` | 启动 API 服务器 | 双击 | 快速本地 API 服务器启动 | | `run-webui.bat` | 启动 Web UI | 双击 | 快速本地 Web UI 启动 | **🔧 使用指南:** - **Windows 脚本**:从项目根目录运行,而不是从 `scripts/` 文件夹 - **跨平台脚本**:可从任何目录运行 - **自动检测**:脚本自动检查依赖项和 Docker 状态 - **错误处理**:所有脚本包含全面的错误检查和用户反馈 **⚠️ 先决条件:** - **Docker 脚本**:需要 Docker Desktop 安装 - **Python 脚本**:需要 Python 3.10+ 和 conda 环境 - **模型脚本**:需要互联网连接进行下载 ### API 服务器选项 ```bash python api/api.py \ --model pretrained_models/CosyVoice2-0.5B \ --host 0.0.0.0 \ --port 9996 \ --load-vllm \ # 启用 VLLM 加速 --fp16 \ # 使用半精度 --load-jit # 启用 JIT 编译 ``` ### Web UI 选项 ```bash python api/webui.py \ --model_dir pretrained_models/CosyVoice2-0.5B \ --port 7860 \ --language zh \ # UI 语言(zh/en) --share \ # 创建公共 Gradio 链接 --transcription_url "https://api.openai.com/v1/audio/transcriptions" \ --transcription_key "your-api-key" ``` ### 模型训练和微调 对于高级用户,提供训练脚本: ```bash cd examples/libritts/cosyvoice bash run.sh # 完整训练流水线 ``` --- ## 📖 API 参考 ### 语音生成端点 **POST** `/v1/audio/speech` ```json { "model": "tts-1", // 模型标识符 "input": "要合成的文本", // 输入文本(最多 4096 字符) "voice": "中文女", // 语音选择 "response_format": "mp3", // 音频格式 "speed": 1.0, // 播放速度(0.25-4.0) "stream": false // 启用流式响应 } ``` ### 健康检查 **GET** `/health` - 返回服务状态和模型信息 --- ## 🔧 故障排除 ### 常见问题 1. **CUDA 内存不足** ```bash export CUDA_VISIBLE_DEVICES=0 # 使用 FP16 模式:--fp16 ``` 2. **VLLM 安装问题** ```bash # 为 VLLM 创建单独环境 conda create -n cosyvoice_vllm --clone cosyvoice conda activate cosyvoice_vllm pip install vllm==0.9.0 ``` 3. **音频质量问题** ```bash # 安装 sox 以获得更好的音频处理 sudo apt-get install sox libsox-dev # Ubuntu brew install sox # macOS ``` 4. **Docker 权限问题** ```bash # 将用户添加到 docker 组 sudo usermod -aG docker $USER ``` ### 性能调优 - **CPU 推理**:使用 `--fp16` 和 `--load-jit` - **GPU 推理**:启用 `--load-vllm`(仅 CosyVoice2) - **生产环境**:使用 Docker 配备健康检查和适当的资源限制 --- ## 📊 基准测试 ### 延迟比较(CosyVoice2-0.5B) | 配置 | 首个词元 | 总时间(10秒音频) | |---------------|-------------|-------------------------| | 标准 | 800ms | 2.1s | | + JIT | 600ms | 1.8s | | + VLLM | **150ms** | **0.9s** | | + VLLM + FP16 | **120ms** | **0.7s** | ### 质量指标 - **MOS 评分**:5.53(CosyVoice2)vs 5.4(CosyVoice1) - **字符错误率**:相比 v1.0 减少 30-50% - **语音相似度**:零样本克隆 95%+ --- ## 🤝 贡献 我们欢迎贡献!此增强版专注于: - 🔧 **生产稳定性**和性能优化 - 🌐 **API 兼容性**符合行业标准 - 🎨 **用户体验**改进 - 🐳 **部署简化** --- ## 📄 许可证与引用 此项目基于 FunAudioLLM 团队的原始 CosyVoice。请引用原始论文: ```bibtex @article{du2024cosyvoice, title={CosyVoice 2: Scalable streaming speech synthesis with large language models}, author={Du, Zhihao and Wang, Yuxuan and Chen, Qian and others}, journal={arXiv preprint arXiv:2412.10117}, year={2024} } @article{du2024cosyvoice, title={Cosyvoice: A scalable multilingual zero-shot text-to-speech synthesizer based on supervised semantic tokens}, author={Du, Zhihao and Chen, Qian and Zhang, Shiliang and others}, journal={arXiv preprint arXiv:2407.05407}, year={2024} } ``` --- ## 🔗 链接与资源 - **🏠 原始仓库**:[FunAudioLLM/CosyVoice](https://github.com/FunAudioLLM/CosyVoice) - **📊 模型中心**:[ModelScope](https://www.modelscope.cn/studios/iic/CosyVoice2-0.5B) | [HuggingFace](https://huggingface.co/spaces/FunAudioLLM/CosyVoice2-0.5B) - **🎵 在线演示**:[CosyVoice2 演示](https://funaudiollm.github.io/cosyvoice2/) - **📚 文档**:[官方文档](https://funaudiollm.github.io) - **💬 社区**:[GitHub Issues](https://github.com/FunAudioLLM/CosyVoice/issues) ---

🎉 用 ❤️ 为 AI 社区构建
Claude 增强版 - 让 AI 语音合成人人可用

## ⚠️ 免责声明 此增强版仅供学术和研究目的使用。原始 CosyVoice 模型和核心算法由 FunAudioLLM 团队开发。部分示例可能来源于互联网 - 如有任何内容侵犯您的权利,请联系我们。