基于GPT-SoVITS少样本语音转换的实时交互TTS

本文介绍了GPT-SoVITS-WebUI项目,它是一个封装了文本转语音功能的命令行程序,支持多模型切换、音频设备选择以及实时播放控制。用户可以通过命令行输入文本并快速转换为语音,提供了灵活的配置选项和播放控制功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目地址:https://github.com/DLW3D/GPT-SoVITS
该项目基于 RVC-Boss/GPT-SoVITS-WebUI

前言

GPT-SoVITS-WebUI 实现了使用WebUI的简易小样本语音模拟和文本转语音所需的完整流程,包括数据清洗、文本标注、模型微调、文本转语音。

该项目是对 GPT-SoVITS-WebU 中文本转语音功能的一个封装,提供了一个命令行程序,实现了实时输入文本播放语音的高效交互。

介绍

在这里插入图片描述
该项目提供一个命令行交互程序,实现如下功能:

  • 在命令行中直接输入文本并点击回车,将在后台开启一个线程基于配置文件中指定的模型将该文本转为语音,转换完成后立即在指定的音频输出设备播放。
    • 文本转语音和语音播放将使用后台线程进行,在这过程中可以输入下一条文本。
    • 可以随时切换不同的模型。
    • 可以随时切换不同的音频输出设备。
  • 在命令行中输入[配置序号]:切换配置。配置文件中可包含多个配置,每个配置可以指定不同的声音模型和播放设备。
    • 配置文件支持热重载
  • 在命令行中输入单字指令可控制语音播放,如选择上一句、选择下一句、暂停、继续、重播等。

项目配置

  1. 下载项目文件

  2. 在windows下按照GPT-SoVITS-WebUI官方文档进行配置,确保通过官方测试用例。

  3. 在你使用的python环境中安装 pyaudio 库 pip install pyaudio

  4. 编辑模型配置文件cmd/model.yaml,指定使用中可切换的模型、参考音频以及声音输出设备。

    0:
      name: 默认配置1
      device:
      sovits_path: GPT_SoVITS/pretrained_models/s2G488k.pth
      gpt_path: GPT_SoVITS/pretrained_models/s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt
      ref_wav_path: ref_wav/ref_wav1.wav
      prompt_text: ref_wav1.wav 对应的文本
      prompt_language: 中文
      text_language: 中英混合
    1:
      name: 默认配置2
      device: CABLE Input
      sovits_path: SoVITS_weights/Sample_e8_s144.pth
      gpt_path: GPT_weights/Sample-e15.ckpt
      ref_wav_path: ref_wav/ref_wav2.wav
      prompt_text: ref_wav2.wav 对应的文本
      prompt_language: 中英混合
      text_language: 中英混合
    
  5. 其中device留空为使用系统默认播放设备。若需指定输出设备,则执行下述python代码检查系统中的音频输出设备,并选择其一填入。

    import pyaudio
    
    pyAudio = pyaudio.PyAudio()
    all_device = [pyAudio.get_device_info_by_index(i) for i in range(pyAudio.get_device_count())]
    output_device_name_1 = [i['name'] for i in all_device if i['maxOutputChannels']>0 and i['hostApi']==0]
    print('----------------------------')
    print('\n'.join(output_device_name_1))
    print('----------------------------')
    output_device_name_2 = [i['name'] for i in all_device if i['maxOutputChannels']>0 and i['hostApi']>0]
    print('\n'.join(output_device_name_2))
    print('----------------------------')
    
  6. 如需将音频输出转为输入(播放的声音映射到麦克风中),安装虚拟音频设备 VB-CABLE Virtual Audio Device 然后配置文件中指定device: CABLE Input

操作说明

启动根目录下的 tts.bat。程序初始化完成后,最后一行出现输入:后即可输入需要TTS的文本。

输入文本后敲击回车,会开启一个线程在后台将其转换为音频,并立即播放到指定设备。在这过程中用户可以输入下一条文本并提交下一个TTS任务。

输入可查看当前选择的模型、配置可用的模型和用于播放控制的命令。

模型选择

在交互界面中,输入[num]: [text],使用第[num]个模型将[text]转为语音并立即播放。例如:

输入:1: 测试测试,一二三四

也可输入[num]:切换模型,再直接输入[text]进行TTS:

输入:1: 测试一 (使用模型1播放:测试一)
输入:2:
输入:测试二 (使用模型2播放:测试二)
输入:测试三 (使用模型2播放:测试三)
输入:3:测试四 (使用模型3播放:测试四)
输入:测试五 (使用模型3播放:测试五)

播放控制

可以使用单字命令进行播放控制,也可选择之前播放的语音进行重播。

  • s: 暂停播放
  • r: 恢复播放
  • d: 重播
  • c: 关闭(删除该条语音)
  • q: 选择前一句
  • w: 选择最后一句
  • e: 选择后一句
输入:1: 测试一 (模型1播放:测试一)
输入:2: 测试二 (模型2播放:测试二)
输入:测试三 (模型2播放:测试三)
输入:d (模型2播放:测试三)
输入:q
选择:测试二
输入:q
选择:测试一
输入:d (模型1播放:测试一)
输入:e
选择:测试二
输入:d (模型2播放:测试二)
参考资源链接:[利用Python和1分钟语音数据快速训练TTS模型](https://wenku.youkuaiyun.com/doc/amjoav7bey?utm_source=wenku_answer2doc_content) 在尝试快速训练文本到语音TTS)模型并实现语音克隆时,Python提供了一个强大的平台来完成这项任务。这里将向您展示如何仅使用1分钟的语音样本,来快速训练一个TTS模型,并进行语音克隆的步骤。 首先,您需要准备环境和依赖。在Python环境中安装必要的库,如TensorFlow或PyTorch,以及专门用于语音处理的库,例如SpeechBrain或ESPnet。 接着,进行数据预处理。将1分钟的语音样本分割为单个的音频文件,为每个文件创建对应的文本标签,并确保所有音频文件都有相同的采样率和格式。 然后,构建模型架构。可以使用现成的模型如Tacotron 2或WaveNet作为基线,但为了快速训练,使用更轻量级的模型如FastSpeech可能是更佳的选择。这将帮助您在有限的计算资源和时间内获得可接受的结果。 在训练模型之前,您可能需要使用数据增强技术来增加样本的多样性,这对于小样本学习尤其重要。然后,使用预处理后的数据训练模型。通常,训练过程会涉及到迭代多个周期,不断调整模型参数,直到模型的损失函数达到一个满意的水平。 一旦模型训练完成,您可以进行语音克隆。通过输入特定人的语音样本,让模型学习其说话方式和特征。然后,用模型生成新的语音片段,这些片段将具有与原始样本相同的发音和语调特点。 为了使整个过程更加高效,可以考虑使用如GPT-SoVITS这样的模型。GPT-SoVITS可能是一个专门用于快速训练和语音克隆的模型,或者是一个提供了特定优势和优化的框架。在实际应用中,您需要根据模型的具体要求来调整数据格式和参数设置。 最后,当模型表现令人满意时,进行模型评估和优化,确保其在各种不同的文本输入下都能生成高质量的语音输出。您可能还需要对生成语音进行后期处理,以改善听感并消除可能的噪音或不自然之处。 推荐您查看《利用Python和1分钟语音数据快速训练TTS模型》这一资源,它可能包含了更多关于如何使用有限的语音数据快速训练TTS模型的详细步骤和技巧,以及如何进行语音克隆的方法。此资源不仅针对快速训练,还可能涉及如何处理小样本数据,如何优化模型以适应少量的训练数据,以及如何实现高质量的语音克隆技术。通过学习这些内容,您将能够掌握如何利用Python和有限的数据资源来构建和训练TTS模型,并实现语音克隆,这对于开发个性化语音应用和增强型交互系统具有重要的价值。 参考资源链接:[利用Python和1分钟语音数据快速训练TTS模型](https://wenku.youkuaiyun.com/doc/amjoav7bey?utm_source=wenku_answer2doc_content)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值