news 2026/9/10 20:54:59

如何用 tts_with_vc_to_file 让 TTS 单说话人模型输出目标音色?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何用 tts_with_vc_to_file 让 TTS 单说话人模型输出目标音色?

如何用 tts_with_vc_to_file 让 TTS 单说话人模型输出目标音色?

【免费下载链接】TTS🐸💬 - a deep learning toolkit for Text-to-Speech, battle-tested in research and production项目地址: https://gitcode.com/GitHub_Trending/tt/TTS

单说话人 TTS 模型只能合成固定的一个音色,无法直接“克隆”别人声音。Coqui TTS 的 Python API 提供了tts_with_vc_to_file:它先用 TTS 模型把文本合成出来,再用语音转换(voice conversion)模型把合成结果转成speaker_wav指定说话人的音色,最后写入 wav 文件。按照 docs/source/inference.md 的说法,这种方式“can clone voices by using any model in 🐸TTS”。下文以仓库文档中的单说话人示例为准,说明完整的操作路径。

准备条件

先安装 TTS(文档推荐用 PyPI):

pip install TTS

需要准备两样东西:

  1. 一个单说话人 TTS 模型。可以用 CLI 的tts --list_models或 Python 的TTS().list_models()列出可用模型,从列表里挑一个单说话人模型。文档示例使用德语单说话人模型tts_models/de/thorsten/tacotron2-DDC
  2. 一段目标说话人的参考 wav,作为目标音色的参考音频。文档示例中路径写作target/speaker.wav,实际操作时替换成你自己的参考音频路径。

API docstring 中提到“Some models might be too slow on CPU”,如果你有 GPU,可以按文档的模式把模型移到设备上。

这个方法内部做了什么

结合 TTS/api.py 中tts_with_vc的实现,tts_with_vc_to_file执行三步:

  1. 用当前加载的 TTS 模型合成文本,先写入一个临时 wav 文件;
  2. 如果还没有加载语音转换模型,自动加载voice_conversion_models/multilingual/vctk/freevc24,以临时 wav 作为source_wav、以传入的speaker_wav作为target_wav做音色转换;
  3. 把转换后的音频保存到file_path,采样率取自语音转换模型配置中的vc_config.audio.output_sample_rate

注意speaker_wav在这个调用里扮演的是目标音色参考,而不是“要被转换掉的源声音”——源声音是 TTS 模型刚刚合成的那一段。另外,与tts_to_file不同,tts_with_vc_to_file的源码实现中没有返回值,判断是否成功以file_path处的文件是否生成为准。

执行步骤

文档给出的单说话人主路径示例(README.md 与 docs/source/inference.md 内容一致):

from TTS.api import TTS # Init TTS with the target model name tts = TTS("tts_models/de/thorsten/tacotron2-DDC") tts.tts_with_vc_to_file( "Wie sage ich auf Italienisch, dass ich dich liebe?", speaker_wav="target/speaker.wav", file_path="output.wav" )

参数说明(来自 TTS/api.py 的函数签名与 docstring):

  • text(第一个位置参数):要合成的文本。示例使用德语单说话人模型,因此文本是德语。
  • speaker_wav:目标说话人的参考 wav 路径,本场景的必需输入;示例路径target/speaker.wav需替换为你自己的文件。
  • file_path:输出文件路径,默认"output.wav"
  • language:多语言模型的语言代码。对非多语言模型传入该参数会抛出ValueError("Model is not multi-lingual butlanguageis provided.")_check_arguments的检查),所以德语单说话人示例中没有传它。
  • speaker:多说话人模型的说话人名称,单说话人模型不需要。
  • split_sentences:默认True,分句合成再拼接音频;设为False会占用更多显存,并可能触发模型特有的文本长度或显存限制。

首次运行时模型会自动下载,构造函数可用progress_bar参数控制下载进度条的显示(文档其他示例中写作TTS("...", progress_bar=False))。

有 GPU 时可选地把模型移到设备:

import torch device = "cuda" if torch.cuda.is_available() else "cpu" tts = TTS("tts_models/de/thorsten/tacotron2-DDC", progress_bar=False).to(device)

可选分支:fairseq 多语言单说话人模型。名称格式为tts_models/<lang-iso_code>/fairseq/vits,覆盖约 1100 种语言,同样支持该 API:

api = TTS("tts_models/deu/fairseq/vits") api.tts_with_vc_to_file( "Wie sage ich auf Italienisch, dass ich dich liebe?", speaker_wav="target/speaker.wav", file_path="output.wav" )

结果验证与已知限制

  • 调用结束后,检查file_path指定的输出文件是否生成,播放确认音色已转为speaker_wav中的说话人。文档对语音转换模型的描述是“Convert source wav to target speaker”,即输出应带目标参考音频的音色。
  • 输出文件的采样率由语音转换模型配置(vc_config.audio.output_sample_rate)决定,而不是 TTS 模型本身的输出采样率,这是源码中save_wav的实际行为。
  • tts_with_vc_to_file时,语音转换模型固定为自动加载的voice_conversion_models/multilingual/vctk/freevc24;文档没有提供在此调用中更换其他 VC 模型的参数。如果只是想把一段已有音频转成目标音色而不经过 TTS,可以用文档中的独立 APIvoice_conversion_to_file(source_wav=..., target_wav=..., file_path=...),那是另一条调用路径,不属于本场景。
  • 单说话人模型对文本语言有固定性:示例中的tts_models/de/thorsten/tacotron2-DDC对应德语文本。需要其他语言时,用tts --list_models/TTS().list_models()选择对应语言的单说话人模型再走同样的调用。

【免费下载链接】TTS🐸💬 - a deep learning toolkit for Text-to-Speech, battle-tested in research and production项目地址: https://gitcode.com/GitHub_Trending/tt/TTS

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 20:53:38

2026最新AI论文工具排行榜[特殊字符]带表格实测对比!毕设选工具不踩坑

2026高校论文查重AIGC双审机制全面普及&#xff0c;很多同学踩坑&#xff1a;工具AI痕迹过重被判定不合格、查重收费坑钱、绘图排版不规范、文献虚假造假、多工具切换耗时费力。本次整理7款主流AI论文工具&#xff0c;结合最新功能迭代、免费权益、学术适配度、降重绘图能力&am…

作者头像 李华
网站建设 2026/9/10 20:52:08

CANN/ge数据结构和接口

数据结构和接口 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、TensorFlow…

作者头像 李华
网站建设 2026/9/10 20:49:59

CANN/ge:使用改图接口修改Graph

使用改图接口修改Graph 【免费下载链接】ge GE&#xff08;Graph Engine&#xff09;是面向昇腾的图编译器和执行器&#xff0c;提供了计算图优化、多流并行、内存复用和模型下沉等技术手段&#xff0c;加速模型执行效率&#xff0c;减少模型内存占用。 GE 提供对 PyTorch、Ten…

作者头像 李华
网站建设 2026/9/10 20:46:28

Python大数据架构在在线考试系统中的应用实践

1. 项目概述&#xff1a;当大数据遇上在线考试系统去年参与某高校在线考试平台重构项目时&#xff0c;我深刻体会到传统考试系统在面对万人级并发时有多么脆弱。考试开始前5分钟的系统崩溃&#xff0c;监考老师手动记录考生名单的混乱场景至今难忘。这正是我们选择Python大数据…

作者头像 李华