项目简介 链接到标题

MeloTTS 是清华、MIT 和 MyShell.ai 联合开发的多语言 TTS 库,MIT 协议。

  • 架构:VITS2(基于 VITS、VITS2、Bert-VITS2)
  • 语言:中文(支持中英混合)、英语(美/英/印/澳)、日语、韩语、西班牙语、法语
  • 特点:CPU 可实时推理,GPU 加速效果更好
  • Stars:7.5k

部署方式 链接到标题

一年前用 Docker 部署在 GPU 节点上,分两个容器:

services:
  tts-ui:
    image: marshalw/tts-ui
    container_name: tts-ui
    ports:
      - "7776:80"

  melotts-server:
    image: marshalw/melo-tts-server:latest
    container_name: melotts-server
    ports:
      - "7777:8080"
    environment:
      - DEFAULT_SPEED=1
      - DEFAULT_LANGUAGE=ZH
      - DEFAULT_SPEAKER_ID=ZH
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
  • tts-ui:Web 操作界面,端口 7776
  • melotts-server:推理后端,端口 7777,API 路径 /convert/tts
  • nginx 反向代理将 UI 的 /convert/tts 转发到后端

使用印象 链接到标题

优点:

  • 中文发音自然,多语言支持好
  • CPU 可跑,不需要强 GPU
  • 部署简单,Docker 一键启动

问题:

  • 语音忽大忽小,音量不稳定
  • 同一个句子每次生成音量都可能不同

问题分析 链接到标题

音量不稳定的根源在 VITS2 架构本身。VITS2 对 prosody(韵律)的控制粒度不够细,没有专门的音量归一化层,输出电平随输入文本的韵律特征自然波动。这不是封装或部署能解决的问题,是架构层面的限制。

对比同期试过的 ChatTTS:ChatTTS 有 emotion control,模型更大(1.2GB vs 180MB),但中文发音不如 MeloTTS 自然。

现状 链接到标题

服务一年没用了,这次清理节点时一并移除。记录下配置,以后有需要可以快速恢复。

相关链接 链接到标题

  • 原版仓库:https://github.com/myshell-ai/MeloTTS
  • 社区活跃 fork(更好的封装,模型不变):https://github.com/hangry-labs/MeloTTS
  • GGUF 转换版(97MB,配合 CrispASR):https://huggingface.co/cstr/melotts-en-v2-GGUF