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

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.dtcms.com/a/299287.html

相关文章:

  • CPU 为什么需要缓存?揭开速度与效率的底层逻辑
  • 网安-中间件-Redis未授权访问漏洞
  • Flutter控件归纳总结
  • 解决VSCode中Github Copilot无法登陆的问题
  • 从零开始的云计算生活——第三十六天,山雨欲来,Ansible入门
  • Windows 平台源码部署 Dify教程(不依赖 Docker)
  • 电脑开机后网络连接慢?
  • Rust嵌入式开发实战
  • 垃圾回收算法与垃圾收集器
  • 数字迷雾中的安全锚点:解码匿名化与假名化的法律边界与商业价值
  • 深入解析三大Web安全威胁:文件上传漏洞、SQL注入漏洞与WebShell
  • MySQL 8.0 OCP 1Z0-908 题目解析(37)
  • Qt 异步编程模式与应用
  • LeetCode——1717. 删除子字符串的最大得分
  • JVM参数
  • 7月26日京东秋招第一场第二题
  • sssss
  • python面向对象编程详解
  • 机器学习的工作流程
  • JVM-GC 相关知识
  • 配置DNS正反向解析
  • 深度学习(鱼书)day03--神经网络(后两节)
  • 【教程】无需迁移IDE!Augment原生插件实现Cursor无缝平替 Claude-4无限用
  • ClickHouse高性能实时分析数据库-消费实时数据流(消费kafka)
  • Flutter开发实战之路由与导航
  • Redis面试精讲 Day 5:Redis内存管理与过期策略
  • HTTP 协议的基本格式和 fiddler 的用法
  • 15.6 DeepSpeed+Transformers实战:LLaMA-7B训练效率提升210%,显存直降73%
  • Spring Boot 项目启动自动执行逻辑的最佳实践:掌握 CommandLineRunner
  • Windows11下和Vmware中的Ubuntu22.04设置samba服务遇到的一个问题- valid users和guest设置冲突