cxl
Published on 2025-05-25 / 15 Visits
1
0

Spark-TTS体验

在人工智能飞速发展的今天,文本转语音(Text-to-Speech,简称 TTS)技术已经广泛应用于智能语音助手、有声读物生成、无障碍阅读等多个领域。而 Spark-tts 作为一款功能强大且灵活的 TTS 工具,以其高效的性能和丰富的功能受到众多开发者和使用者的青睐。本文将为你详细介绍 Spark-tts 的使用方法,从安装部署到实际应用,带你快速入门并掌握进阶技巧。目前已经上线到个人网站,可通过点击网站菜单中的TTS 进行体验,有问题可留言咨询。

技术背景与核心优势

Spark-TTS 是由 SparkAudio 团队基于 Qwen2.5 大语言模型开发的开源文本转语音系统,其核心创新在于通过BiCodec 编解码器思维链(CoT)技术实现高效语音生成。相比传统 TTS 方案,具有以下突破性优势:

  1. 极简架构
    完全摒弃传统声学模型,直接从 LLM 预测的语义代码重建音频波形,流程复杂度降低 60%

  2. 零样本克隆能力
    仅需 3 秒参考音频即可复刻说话者音色,支持跨语言、跨语种的无缝转换

  3. 多维度控制
    提供性别、音高、语速等 8 个维度的参数调节,支持创建个性化虚拟声优

  4. 双语协同
    中英文混合文本处理准确率达 98.7%,实现真正的代码转换(Code-Switching)

环境搭建全流程

1. 本教程操作环境

  • 系统:Ubuntu 22.04 LTS

  • python:3.12.9

  • CUDA:12.9

  • 显存:6G

2. 安装步骤

步骤 1:克隆代码库

  git clone https://github.com/SparkAudio/Spark-TTS.git
  cd Spark-TTS

步骤 2:创建虚拟环境

使用的是 conda 环境管理工具

  conda create -n sparktts python=3.12 -y
  conda activate sparktts

步骤 3:安装依赖

  pip install -r requirements.txt
  # 上面安装依赖慢或者失败可使用下列镜像方式安装
  pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

步骤 4:模型下载

下载模型有两种方式,这里使用huggingface,也可以使用modelScope

  # huggingface方式下载
  from huggingface_hub import snapshot_download
  snapshot_download(
      repo_id="SparkAudio/Spark-TTS-0.5B",
      local_dir="./pretrained_models/Spark-TTS-0.5B",
      resume_download=True
  )
  
  # modelScope方式下载
  from modelscope import snapshot_download
  snapshot_download("SparkAudio/Spark-TTS-0.5B", local_dir="SparkAudio/Spark-TTS-0.5B")

  # git方式下载
  mkdir -p pretrained_models

  # 如果未安装则先安装
  git lfs install
  
  git clone https://huggingface.co/SparkAudio/Spark-TTS-0.5B pretrained_models/Spark-TTS-0.5B

3. 运行

测试脚本

  cd example
  bash infer.sh

命令行推理

  # --text 转换的文本内容   --save_dir 保存的路径   --model_dir 模型目录   
  # --prompt_speech_path 要克隆的语音文件 --prompt_text 克隆语音的台词内容
  python -m cli.inference \
    --text "text to synthesis." \
    --device 0 \
    --save_dir "path/to/save/audio" \
    --model_dir pretrained_models/Spark-TTS-0.5B \
    --prompt_text "transcript of the prompt audio" \
    --prompt_speech_path "path/to/prompt_audio"

网站页面(GUI)

  python webui.py

常见问题解决方案

1. CUDA 内存不足

  • 症状​:RuntimeError: CUDA out of memory

  • 解决方案​:

    1. 降低 batch size:修改 config.yaml 中的 batch_size: 4

    2. 启用梯度检查点:export GRAD_CHECKPOINT=1

    3. 使用 CPU 模式:--device cpu

2. 语音克隆效果差

  • 优化技巧​:

    • 参考音频需满足:安静环境录制、16kHz 采样率、单说话人

    • 使用 --style_strength 0.7 增强风格迁移强度

    • 对长文本进行分段处理(建议每段不超过 50 字)

3. 声音失真问题

  • 排查流程​:

    1. 检查音频格式:确保输入为 PCM 16-bit WAV

    2. 验证模型完整性:运行 python validate_model.py

    3. 调整后处理参数:--postprocess_level 3


Comment