本文首发地址 https://h89.cn/archives/528.html
项目方案地址 https://gitee.com/chenjim/tts-hexgrad-kokoro
一款开源、高质量、支持中英文的文本转语音服务,完全免费,可本地部署。

前言

在 AI 语音合成领域,商业 API(如 Azure、AWS Polly)虽然效果出色,但成本较高。而开源方案中,Kokoro-82M 以其轻量级(仅 8200 万参数)和高质量脱颖而出,成为个人开发者和中小企业的理想选择。

本文将详细介绍如何在国内网络环境下,使用 Docker 快速部署 Kokoro TTS 服务。


Kokoro 简介

Kokoro-82M 是由 hexgrad 开发的开源 TTS 模型,具有以下特点:

  • 轻量高效:8200 万参数,推理速度快
  • 音质优秀:媲美大型商业模型
  • 多语言支持:英文(美式/英式)、中文(普通话)
  • 多种音色:20+ 种英文音色、8 种中文音色
  • 中英混合:支持在中文文本中插入英文单词
  • 时间戳支持:可返回每句话的时间戳,适合字幕生成
  • 完全免费:Apache 许可证,可商用

部署方案

方案对比

方案 优点 缺点
Docker 本地部署(本文) 完全免费、数据隐私、可离线使用 需要本地算力
HuggingFace API 无需部署、即开即用 需要网络、有调用限制
商业 API 稳定性高、效果有保障 按量付费、成本较高

为什么选择 Docker 部署?

  1. 完全免费:无 API 调用费用
  2. 数据隐私:文本和音频都在本地处理
  3. 可离线使用:部署后无需网络连接
  4. 易于扩展:可集成到现有系统中

快速部署

环境要求

  • Docker 和 Docker Compose
  • 约 2GB 磁盘空间(模型文件)
  • 4GB+ 内存(推荐 8GB)

一键部署

# 1. 克隆项目
git clone https://gitee.com/chenjim/tts-hexgrad-kokoro
cd tts-hexgrad-kokoro

# 2. 运行自动部署脚本
./setup.sh

脚本会自动完成:

  • 下载 Kokoro-82M 主模型(313MB)
  • 下载配置文件和音色文件
  • 下载 spaCy 英文模型(13MB)
  • 构建 Docker 镜像
  • 启动服务并进行健康检查

国内镜像加速

针对国内网络环境,本项目已内置镜像加速:

  • Docker 镜像:使用 docker.1ms.run 镜像源
  • apt 源:阿里云 Debian 镜像
  • pip 源:阿里云 PyPI 镜像
  • 模型下载:使用 hf-mirror.com 镜像站

无需额外配置,开箱即用。

项目结构

.
├── setup.sh              # 自动部署脚本
├── Dockerfile            # Docker 镜像定义
├── docker-compose.yml    # Docker Compose 配置
├── main.py              # FastAPI 服务主程序
├── test.py              # Python 测试脚本
├── models/              # 模型文件目录
│   ├── kokoro-v1_0.pth  # Kokoro 主模型
│   └── voices/          # 音色文件
└── tmp/                 # 临时文件目录

核心特性:基于 FastAPI 框架提供 RESTful API 接口,支持:

  • /tts - 基础文本转语音
  • /dialogue - 双音色对话合成
  • /dialogue/timestamps - 带时间戳的对话合成
  • /voices - 获取可用音色列表
  • /health - 健康检查

功能演示

1. 基础文本转语音

英文示例

curl -X POST http://localhost:18765/tts \
  -H "Content-Type: application/json" \
  -d '{"text": "Hello world", "voice": "af_heart", "format": "mp3"}' \
  -o output.mp3

中文示例

curl -X POST http://localhost:18765/tts \
  -H "Content-Type: application/json" \
  -d '{"text": "你好世界", "voice": "zf_xiaoxiao", "lang_code": "z", "format": "mp3"}' \
  -o output.mp3

2. 中英混合

curl -X POST http://localhost:18765/tts \
  -H "Content-Type: application/json" \
  -d '{
    "text": "人工智能 AI 正在改变世界。Machine Learning 技术发展迅速。",
    "voice": "zf_xiaoxiao",
    "lang_code": "z",
    "format": "mp3"
  }' \
  -o output.mp3

3. 时间戳分段

适合生成字幕:

curl -X POST http://localhost:18765/tts \
  -H "Content-Type: application/json" \
  -d '{
    "text": "第一句话。第二句话。",
    "voice": "zf_xiaoxiao",
    "lang_code": "z",
    "return_timestamps": true
  }'

返回

{
  "segments": [
    {"index": 0, "text": "第一句话。", "startTime": 0, "endTime": 3675},
    {"index": 1, "text": "第二句话。", "startTime": 3675, "endTime": 7275}
  ]
}

4. 双音色对话

支持 [A] [B] 标记实现对话效果:

curl -X POST http://localhost:18765/dialogue \
  -H "Content-Type: application/json" \
  -d '{
    "text": "[A] 你今天过得怎么样? [B] 我今天过得很开心!",
    "voice_a": "zf_xiaoxiao",
    "voice_b": "zm_yunxi",
    "lang_code": "z"
  }' \
  -o dialogue.mp3

性能测试

基于 Intel CPU(无 GPU)的测试结果:

语言 文本长度 音频时长 生成时间 文件大小
英文 85 词 27.3 秒 9.2 秒 546 KB
中文 100 字 21.9 秒 8.3 秒 438 KB

结论:CPU 即可流畅运行,无需 GPU。


可用音色

中文音色(推荐 xiaoxiao)

女声

  • zf_xiaoxiao - 小晓(推荐,自然流畅)
  • zf_xiaoni - 小妮
  • zf_xiaobei - 小贝
  • zf_xiaoyi - 小怡

男声

  • zm_yunxi - 云溪
  • zm_yunyang - 云扬
  • zm_yunjian - 云健
  • zm_yunxia - 云霞

英文音色

女声(推荐 af_heart)

  • af_heart - Heart(A 级,情感丰富)
  • af_bella - Bella(A- 级,稳定性好)
  • af_nicole - Nicole(B- 级,适合长文本)

男声

  • am_michael - Michael(C+ 级,男声最佳)
  • am_fenrir - Fenrir(C+ 级)
  • am_puck - Puck(C+ 级)

应用场景

  1. 有声读物:将电子书转换为有声书
  2. 视频配音:为短视频、课件生成配音
  3. 智能客服:语音交互系统
  4. 辅助阅读:帮助视障人士阅读文字
  5. 语言学习:发音练习、听力训练

总结

Kokoro-82M 是一款性价比极高的开源 TTS 方案,特别适合:

  • 预算有限的个人开发者
  • 注重数据隐私的企业
  • 需要离线部署的场景
  • 对中英文混合支持有需求的用户

通过 Docker 部署,你可以快速搭建一个免费的、高质量的语音合成服务,完全掌控自己的数据。


参考资源


本文基于 Kokoro-82M v1.0 版本撰写,部署方案已针对国内网络环境优化。


本文链接:免费 TTS 方案:国内基于 Docker 部署 Kokoro - https://h89.cn/archives/528.html

版权声明:原创文章 遵循 CC 4.0 BY-SA 版权协议,转载请附上原文链接和本声明。

标签: docker, tts, Kokoro, hf-mirror

添加新评论