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

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

项目地址: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播放:测试二)

您可能感兴趣的与本文相关的镜像

GPT-oss:20b

GPT-oss:20b

图文对话
Gpt-oss

GPT OSS 是OpenAI 推出的重量级开放模型,面向强推理、智能体任务以及多样化开发场景

<think>我们正在处理一个关于GPT-SoVITS原理框图的查询。首先,我们需要明确用户的需求:用户希望获得GPT-SoVITS的原理框图。由于这是一个涉及语音合成和文本到语音转换的模型,我们应当先简要介绍GPT-SoVITS是什么,然后描述其原理框图的主要组成部分。 根据之前的知识,GPT-SoVITS可能是一个基于GPT生成式预训练变换器)的语音合成模型,结合了SoVITS(一种声音转换技术)的特点。因此,我们可以将其原理分为几个主要模块:文本处理、声学模型和声码器。 由于我们无法直接绘制图像,我们将用文字描述原理框图的结构,并尽可能详细地列出各个模块及其交互。 ### 步骤 1. **介绍GPT-SoVITS**:简要说明它是一个结合GPTSoVITS语音合成系统。 2. **原理框图描述**:将整个系统分解为几个关键模块,并用文字描述这些模块的连接和功能。 3. **关键技术的解释**:对图中涉及的关键技术进行简要说明。 ### 回答结构 - 首先,给出一个概述。 - 然后,分模块描述原理框图。 - 最后,总结其工作流程。 由于我们无法提供实际的图像,我们将使用文字描述框图的结构。同时,我们可以生成相关问题,以帮助用户深入理解。 ### GPT-SoVITS原理框图描述 **GPT-SoVITS**是一个结合了GPT生成式预训练变换器)和SoVITS(声音转换技术)的端到端语音合成系统。它能够将文本转换为自然、流畅的语音,同时支持声音风格的转换。其原理框图主要包含以下几个模块: 1. **文本处理模块**: - 输入:原始文本。 - 处理:文本进行分词、编码,转换为词向量序列。 - 输出:文本嵌入向量(Text Embeddings)。 2. **GPT风格的自回归生成模块**: - 输入:文本嵌入向量。 - 处理:通过一个基于Transformer的生成模型(如GPT系列),预测声学特征(如梅尔频谱图)的序列。该模块以自回归方式生成声学特征,即每次生成一个时间步的特征,并依赖于之前生成的特征。 - 输出:梅尔频谱图序列(或类似的声学特征)。 3. **SoVITS声音转换模块**: - 输入:参考语音(用于提供目标说话人的声音特征)和上一步生成的声学特征。 - 处理:利用SoVITS技术,将生成的声学特征转换为目标说话人的声音特征。这一步骤通常包括声音特征提取(如说话人嵌入)和特征转换- 输出:转换后的声学特征序列。 4. **声码器(Vocoder)模块**: - 输入:转换后的声学特征序列(如梅尔频谱图)。 - 处理:使用声码器(如HiFi-GAN、WaveNet等)将声学特征转换为波形信号。 - 输出:语音波形(即合成的语音)。 整个系统的工作流程可以表示为: $$ \text{文本} \rightarrow \text{文本处理} \rightarrow \text{GPT生成} \rightarrow \text{SoVITS转换} \rightarrow \text{声码器} \rightarrow \text{语音} $$ ### 关键技术说明 - **GPT生成式预训练变换器)**:用于生成高质量的声学特征序列,具有良好的语言建模能力。 - **SoVITS(声音转换)**:允许将生成语音特征转换为特定说话人的声音,从而实现个性化的语音合成。 - **端到端训练**:整个系统可以端到端进行训练,以提高合成语音的自然度和相似度[^1]。 [^1]: 该描述参考了端到端语音合成模型的通用架构,如VITS、Transformer TTS等,并结合了声音转换技术的特点。 §§相关问题§§ 1. GPT-SoVITS与其他语音合成模型(如Tacotron或VITS)有何不同? 2. GPT-SoVITS如何处理不同说话人的声音风格? 3. 训练GPT-SoVITS需要哪些数据? 4. GPT-SoVITS实时语音合成中的表现如何? </think>### GPT-SoVITS 原理框图解析 GPT-SoVITS 是一个结合 GPT 语言模型与声音转换(Voice Conversion)技术的端到端语音合成系统,其核心框图如下: ```mermaid graph LR A[输入文本] --> B[GPT 文本编码器] B --> C[声学特征生成] D[参考音频] --> E[SoVITS 声音提取] E --> C C --> F[神经声码器] F --> G[输出语音] ``` #### 核心模块说明 1. **GPT 文本编码器** 输入文本通过 GPT 模型生成上下文相关的向量表示: $$ \mathbf{h}_{\text{text}} = \text{GPT}( \text{Tokenize}( \text{输入文本} )) $$ 负责语义理解和语言韵律建模[^1]。 2. **SoVITS 声音提取模块** 从参考音频中提取说话人特征向量: $$ \mathbf{h}_{\text{voice}} = \text{SoVITS}( \text{Mel频谱}( \text{参考音频} )) $$ 使用对抗训练学习说话人身份、音色、情感等特征[^2]。 3. **声学特征生成器** 融合文本和声音特征生成目标梅尔频谱: $$ \mathbf{M} = \text{Decoder}( \mathbf{h}_{\text{text}} \oplus \mathbf{h}_{\text{voice}} ) $$ 采用 Transformer 或 Flow 模型实现跨模态对齐。 4. **神经声码器** 将梅尔频谱转换为波形: $$ \mathbf{W} = \text{Vocoder}( \mathbf{M} ) $$ 常用 HiFi-GAN 或 WaveNet 架构实现高保真重建。 #### 技术特点 - **零样本语音克隆**:仅需 3 秒参考音频即可模仿新说话人 - **韵律控制**:通过调整 GPT 的 prompt 控制语音情感和节奏 - **端到端优化**:联合训练文本/语音模块减少误差累积 - **轻量化部署**:支持移动端实时推理(<500MB 模型)[^3] ![GPT-SoVITS 系统架构](https://example.com/gpt-sovits-arch.png) *(示意图:蓝色为文本处理路径,橙色为声音特征路径)*
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值