Spark-TTS 是一款由多所高校与企业联合开源的文本转语音模型,支持中英文双语的TTS。 相比传统AI语音,它更自然、更可控,且支持低配电脑CPU推理。
安装 Spark-TTS
Spark-TTS 支持 Mac、Windows。Mac 的安装教程为 Mac 的安装流程,Windows 的安装流程为 Windows 的安装流程。这里以 windows 的安装流程为例:
安装 Conda
Conda 是一个开源的包管理和环境管理工具,用于安装和管理 Spark-TTS-0.5B 的依赖项。下载地址为 Anaconda Documentation - Anaconda,下载完成后,双击安装程序(.exe 文件),按照安装向导的提示进行操作,在安装过程中务必勾选 "Add Conda to PATH" 选项,这样才能在命令提示符中方便地使用 Conda。安装完成后,打开命令提示符,输入conda --version,若显示版本号,则说明安装成功。
下载 Spark-TTS 项目文件
有两种方式下载 Spark-TTS 项目文件,一种是使用 git 下载。代码示例如下:
bash
git clone https://github.com/SparkAudio/Spark-TTS.git
第二种是下载项目的 zip 包,然后解压缩。
创建 Conda 环境
进入 Spark-TTS 项目文件夹,打开命令提示符,运行 conda create -n sparktts -y python=3.12
,这将创建一个名为sparktts的 Conda 环境,并安装 Python 3.12 版本。创建完成后,运行conda activate sparktts
激活该环境,此时命令提示符的前缀会变为(sparktts),表示你已成功进入该环境。
安装依赖项
在 Spark-TTS 项目文件夹中,使用命令行运行 pip install -r requirements.txt
,该命令会自动安装项目所需的各种依赖项,如 torch、torchvision、torchaudio 等
安装 PyTorch
PyTorch 是由 Facebook 于 2016 年发布的开源深度学习框架,专门用于机器学习和深度学习。Spark-TTS-0.5B 是基于 PyTorch 开发的,所以需要安装 PyTorch。
在 Spark-TTS 项目文件夹中,运行pip install torch torchvision torchaudio --index-url https://pytorch.org/get-started/previous-versions/
,PyTorch 会根据你的系统配置自动检测并安装合适的 CUDA 版本(如果你的机器支持 CUDA)。
若安装过程中出现问题,或者你的机器没有 GPU 卡,需要切换为 CPU 模式,可访问
https://pytorch.org/get-started/previous-versions/
,根据自己机器的实际情况选择合适的安装命令。
下载模型
获取 Spark-TTS-0.5B 模型文件有两种方式。一是使用 Python 代码下载,在 Spark-TTS 项目文件夹中创建一个名为download_model.py的新文件,将以下代码粘贴到其中:
python
from huggingface_hub import snapshot_download
import os
# Set download path
model_dir = "pretrained_models/Spark-TTS-0.5B"
# Check if model already exists
if os.path.exists(model_dir) and len(os.listdir(model_dir)) > 0:
print("Model files already exist. Skipping download.")
else:
print("Downloading model files...")
snapshot_download(
repo_id="SparkAudio/Spark-TTS-0.5B",
local_dir=model_dir,
resume_download=True # Resumes partial downloads
)
print("Download complete!")
然后运行 python download_model.py
即可开始下载模型文件。
其次是使用 Git 下载(前提是已安装 Git 和 git-lfs),运行 mkdir -p pretrained_models
创建模型文件存放目录,再运行git lfs install
安装 git-lfs,最后运行git clone https://huggingface.co/SparkAudio/Spark-TTS-0.5B pretrained_models/Spark-TTS-0.5B
下载模型文件。
使用
WebUI 使用
运行 python webui.py
会启动本地的TTS服务,启动完成后可以http://localhost:7860/
来访问 Web UI,如下图所示:
命令行使用
命令行使用方式:进入example目录,运行bash infer.sh可以进行简单的语音合成演示。也可以直接在命令行中进行推理,使用以下命令:
css
python -m cli.inference \
--text "要合成的文本内容" \
--device 0 \
--save_dir "音频保存路径" \
--model_dir pretrained_models/Spark-TTS-0.5B \
--prompt_text "参考音频的文本转录内容" \
--prompt_speech_path "参考音频路径"
其中,--text指定要合成语音的文本内容;--device指定使用的设备,0 表示使用第一块 GPU,若没有 GPU 可改为cpu;--save_dir指定合成音频的保存路径;--model_dir指定模型文件所在目录;--prompt_text和--prompt_speech_path用于零样本语音克隆,分别指定参考音频的文本转录内容和参考音频路径。例如,运行以下命令可以将 "你好,欢迎使用 Spark-TTS-0.5B!" 合成为语音并保存到output目录下:
css
python -m cli.inference \
--text "你好,欢迎使用Spark-TTS-0.5B!" \
--device 0 \
--save_dir "output" \
--model_dir pretrained_models/Spark-TTS-0.5B \
--prompt_text "" \
--prompt_speech_path ""