CosyVoice语音合成私有化部署

本章节内容为可选阅读,仅供参考。由于不同的硬件配置与部署环境可能存在差异,实际问题也会有所不同。建议按照本文环境及操作步骤执行,如遇异常可随时向 AI 寻求帮助,或咨询 CosyVoice 官方,PIG AI 无法提供支持。

CosyVoice 是由阿里巴巴达摩院开发的开源语音合成(TTS)模型,具有以下特点:

  • 多语言支持:支持中文、英文、日语、粤语、韩语等多种语言
  • 高音质输出:22.05kHz 采样率,自然流畅的语音效果
  • 多种音色:提供丰富的预训练音色(中文男/女、英文男/女等)
  • 快速推理:优化的模型结构,支持实时语音合成
  • 灵活部署:支持本地私有化部署和云端部署

在 PIGX 中的功能

PIGX 平台已集成 CosyVoice,为 AI 知识库提供强大的语音合成能力:

  • 文本转语音(TTS)功能
  • 支持本地私有化部署
  • 优先级策略:本地服务 > 云服务(自动降级)
  • 多音色支持
  • 灵活的音频参数配置

一、CosyVoice 模型安装部署

1.1 系统要求

硬件要求

组件最低配置推荐配置
CPU4 核8 核+
内存8 GB16 GB+
存储10 GB20 GB+
GPU可选NVIDIA GPU(推荐)

软件要求

  • 操作系统:Linux (Ubuntu 20.04+) / macOS / Windows (WSL2)
  • Python:3.10
  • Conda:Miniconda 或 Anaconda
  • FFmpeg:音频处理工具

1.2 环境准备

安装 Conda

如果尚未安装 Conda,请先安装 Miniconda:

# Linux/macOS
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

# 重新加载环境变量
source ~/.bashrc

安装 FFmpeg

# Ubuntu/Debian
sudo apt update
 apt install ffmpeg

验证安装:

ffmpeg -version

1.3 代码克隆

克隆 CosyVoice 仓库(包含子模块):

# 克隆代码
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git

# 进入项目目录
cd CosyVoice

# 如果子模块克隆失败,执行以下命令重试
git submodule update --init --recursive

注意:由于网络原因,子模块可能需要多次执行 git submodule update 命令直到成功。

1.4 依赖安装

创建 Conda 环境

# 创建 Python 3.10 环境
conda create -n cosyvoice -y python=3.10

# 激活环境
conda activate cosyvoice

安装 Python 依赖

# 使用阿里云镜像加速安装(推荐)
pip install -r requirements.txt \
  -i https://mirrors.aliyun.com/pypi/simple/ \
  --trusted-host=mirrors.aliyun.com

# 如果上述命令失败,使用默认源
pip install -r requirements.txt

安装过程可能需要 5-10 分钟,请耐心等待。

1.5 启动服务

方式一:使用预训练模型(推荐)

# 进入 FastAPI 服务目录
cd runtime/python/fastapi/

# 启动服务(自动下载 CosyVoice-300M-SFT 模型)
python server.py --model_dir='iic/CosyVoice-300M-SFT'

首次启动会自动下载模型(约 600 MB),下载完成后服务自动启动。

方式二:使用本地模型

如果已下载模型到本地,可以指定本地路径:

python server.py --model_dir='/path/to/your/model'

启动参数说明

python server.py \
  --model_dir='iic/CosyVoice-300M-SFT' \  # 模型路径或 ModelScope ID
  --port=50000                              # 服务端口(默认 50000)

1.6 验证部署

检查服务状态

服务成功启动后,会看到类似输出:

INFO: Started server process [12345] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:50000 (Press CTRL+C to quit)

二、PIGX 平台配置

2.1 配置文件

在 PIGX 项目中创建或编辑配置文件:

pig:
  ai:
    # CosyVoice 本地语音合成配置(FastAPI 接口)
    cosy-voice:
      # 是否启用 CosyVoice 服务
      enabled: true
      # 是否为私有化部署(true=本地服务,false=云服务)
      is-private: true
      # CosyVoice 服务地址(默认 FastAPI 端口 50000)
      base-url: http://127.0.0.1:50000
      # 默认预训练音色 ID(可选值:中文女、中文男、英文女、英文男、日语男、粤语女、韩语女等)
      # 注意:音色 ID 必须与 CosyVoice 模型支持的音色列表一致
      default-voice: 中文女
      # 音频采样率(Hz),CosyVoice 默认 22050
      # 常见值:16000(电话质量)、22050(默认)、44100(CD质量)、48000(专业音频)
      sample-rate: 22050
      # 音频声道数:1=单声道(默认),2=立体声
      channels: 1
      # 每样本位数(bit depth),通常为 16 位
      bits-per-sample: 16
      # 连接超时时间(秒)
      connect-timeout: 30
      # 读取超时时间(秒,TTS 生成较慢建议设置较长)
      read-timeout: 120

三、使用方式

3.1 前端使用

在 PIGX AI 对话界面中,音频播放按钮会自动调用 CosyVoice 进行语音合成。

操作步骤

  1. 进入 AI 知识库AI 对话 页面
  2. 发送消息后,AI 回复的文本旁边会显示 播放按钮
  3. 点击播放按钮,系统自动调用 CosyVoice 生成语音
  4. 首次播放需要等待几秒钟(语音合成时间)
  5. 生成完成后自动播放音频

音频会缓存在浏览器中,再次播放同一段文本时无需重新生成。