当前位置: 首页 > ops >正文

Spark-TTS 使用

 1.开发背景

        上一章节使用了 MegaTTS3 实现文本转语音,但是后面才发现只能使用官方的语言包,没看到克隆功能,所以重新找了一个可以克隆语音的开源模型。

2.开发需求

        在 Ubuntu 下实现 Spark-TTS 的部署,实现官方语音克隆,根据自定义文本输出语音。

3.开发环境

        Ubuntu20.04 + Conda + Spark-TTS + RTX5060TI

4.实现步骤

4.1 安装环境

# 创建环境 python 版本建议 3.10 以上
conda create -n sparktts python=3.12# 进入环境
conda activate sparktts # 退出环境
conda deactivate

4.2 获取源码

4.2.1 修改网络配置

        如果不修改网络配置可能会导致克隆端口访问失败,可选

sudo vi /etc/resolv.conf
#nameserver 127.0.0.53
options edns0 trust-adnameserver 8.8.8.8
nameserver 8.8.4.4
4.2.2 下载源码
# 克隆开源源码
git clone https://gitee.com/mirrors/Spark-TTS.git

4.3 安装环境

# 进入环境 这个很重要
conda activate sparktts # 进入源码
cd Spark-TTS# 安装相关环境
pip install -r requirements.txt
4.3.1 重装 Pytorch 
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu129

4.4 运行推理

4.4.1 下载模型
# 下载权重文件 注意下载路径
mkdir -p pretrained_models
cd pretrained_models
git clone https://www.modelscope.cn/SparkAudio/Spark-TTS-0.5B.git
4.4.2 官方推理
cd example
bash infer.sh
 4.4.3 克隆推理

        准备一段语音,可以是自己的,这里准备了录音 yjh.wav。照抄 infer.sh 如下

(sparktts) yangjinghui@MICROSO-9VFB07B:~/code/py312/Spark-TTS/example$ cat yjh.sh
#!/bin/bash# Copyright (c) 2025 SparkAudio
#               2025 Xinsheng Wang (w.xinshawn@gmail.com)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.# Get the absolute path of the script's directory
script_dir=$(dirname "$(realpath "$0")")# Get the root directory
root_dir=$(dirname "$script_dir")# Set default parameters
device=0
save_dir='example/results'
model_dir="pretrained_models/Spark-TTS-0.5B"
#text="我都服了你们这群老六了~~~,整天在搞三搞四的,一点正事都不敢,你大爷的!"
text="我觉得吧,您说的也不一定是对的,我是不会听你的。"
prompt_text="我觉得吧,您说得对。我会按照您说的方法去做的,好吧。"
prompt_speech_path="example/yjh.wav"# Change directory to the root directory
cd "$root_dir" || exitsource sparktts/utils/parse_options.sh# Run inference
python -m cli.inference \--text "${text}" \--device "${device}" \--save_dir "${save_dir}" \--model_dir "${model_dir}" \--prompt_text "${prompt_text}" \--prompt_speech_path "${prompt_speech_path}"

        主要修改 text、prompt_text 和 prompt_speech_path,prompt_text 与语音内容保持一致

(sparktts) yangjinghui@MICROSO-9VFB07B:~/code/py312/Spark-TTS/example$ sh yjh.sh
yjh.sh: 37: source: not found
2025-07-26 09:33:51,283 - INFO - Using model from: pretrained_models/Spark-TTS-0.5B
2025-07-26 09:33:51,283 - INFO - Saving audio to: example/results
2025-07-26 09:33:51,359 - INFO - Using CUDA device: cuda:0
/home/yangjinghui/application/anaconda3/envs/sparktts/lib/python3.12/site-packages/torch/nn/utils/weight_norm.py:144: FutureWarning: `torch.nn.utils.weight_norm` is deprecated in favor of `torch.nn.utils.parametrizations.weight_norm`.WeightNorm.apply(module, name, dim)
Missing tensor: mel_transformer.spectrogram.window
Missing tensor: mel_transformer.mel_scale.fb
2025-07-26 09:33:58,138 - INFO - Starting inference...
Setting `pad_token_id` to `eos_token_id`:None for open-end generation.
2025-07-26 09:34:02,434 - INFO - Audio saved at: example/results/20250726093358.wav

        运行效果一般般吧

http://www.xdnf.cn/news/16265.html

相关文章:

  • Caffeine 缓存库的常用功能使用介绍
  • 秋招Day19 - 分布式 - 分布式设计
  • Qt 网络编程进阶:RESTful API 调用
  • setsockopt函数概念和使用案例
  • 以实时语音转文字项目为例,介绍一下如何手动部署python应用到Linux服务器(附脚本)
  • C++:STL中vector的使用和模拟实现
  • 【机器学习-1】特征工程与KNN分类算法
  • CPU(中央处理器)和GPU(图形处理器)的区别
  • 如何理解泊松分布
  • adb 下载并安装
  • 第七章 愿景11 琦琦复盘测试
  • 线段树学习笔记 - 练习题(3)
  • Effective C++ 条款02:尽量以 const, enum, inline 替换 #define
  • 【PyTorch】图像多分类项目部署
  • epoll_event数据结构及使用案例详解
  • 解密负载均衡:如何轻松提升业务性能
  • Qt:qRegisterMetaType函数使用介绍
  • iOS —— 天气预报仿写总结
  • 【日志】unity俄罗斯方块——边界限制检测
  • Zookeeper学习专栏(十):核心流程剖析之服务启动、请求处理与选举协议
  • Java测试题(上)
  • 《设计模式之禅》笔记摘录 - 10.装饰模式
  • gig-gitignore工具实战开发(四):使用ai辅助生成gitignore
  • AI图像编辑能力评测的8大测评集
  • ComfyUI中运行Wan 2.1工作流,电影级视频,兼容Mac, Windows
  • Elasticsearch-9.0.4安装教程
  • 05.原型模式:从影分身术到细胞分裂的编程艺术
  • RAG、Function Call、MCP技术笔记
  • 1 51单片机-C51语法
  • 免模型控制