# 带语音克隆的 XTTS

您好!所以您被那些展示 AI 文本转语音技术发展有多远的 Reddit 帖子震惊了吗?

感到兴奋,想给您的机器人妻子/丈夫一个新的闪亮语音调制器?

别担心,这个惊人的突破性技术已经在您本地的 SillyTavern 中可用,您只需要一个简单的...

# 先决条件

  1. 最新版本的 SillyTavern。
  2. 安装了 Miniconda
  3. (Windows) 安装了 Visual C++ Build Tools
  4. 用于克隆的语音片段 WAV 文件(每个文件约 10 秒)。文件要求:PCM、单声道、22050Hz、16 位(通过 Audacity 转换)。
  5. 创建一个包含"speakers"和"output"子文件夹的文件夹。将 WAV 文件放入"speakers"中。

示例文件夹结构:

C:\xtts
  - speakers
    - alice.wav
    - bob.wav
  - output

# 安装

daswer123 制作了一个 API 服务器,在您的计算机上运行 XTTSv2 模型并连接到 SillyTavern 的 TTS 扩展。

它完全独立于 Extras API,并将使用单独的环境。

非常重要: 不要将以下要求安装到您的 Extras 环境或系统 Python 中。 这会破坏您的其他软件包,进行不必要的降级等。

以下说明使用 Miniconda 提供,但您也可以使用 venv(此处未涵盖)。 打开 Anaconda 命令提示符并逐行按照说明操作。

# 启动并运行服务器

  1. 导航到您在先决条件步骤 4 中创建的文件夹。

    cd C:\xtts
  2. 创建一个新的 conda 环境。从现在开始,我们称之为 xtts

    conda create -n xtts
  3. 激活新创建的环境。

    conda activate xtts
  4. 将 Python 3.10 安装到您的环境中。出现提示时用"y"确认。

    conda install python=3.10
  5. 安装 XTTS 服务器及其要求。

    pip install xtts-api-server pydub
  6. 安装 PyTorch。这可能需要一些时间。以下行安装支持 GPU 加速(CUDA)的 PyTorch。 如果您只想使用 CPU 推理,请删除以 --index-url 开头的最后一部分。

    pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
  7. 在默认主机和端口上启动 XTTS 服务器:http://localhost:8020

    python -m xtts_api_server
  8. 在您的第一次启动期间,将下载模型(约 ~2 GB)。 不要忘记非常仔细地阅读 Coqui AI 的法律声明。哈哈,我在开玩笑,再次点击"y"。

# 连接到 SillyTavern

  1. 打开扩展面板,展开 TTS 菜单,并在提供商列表中选择"XTTSv2"。
  2. 在语言下拉列表中选择您的文本转语音语言(如果不是波兰语我会很伤心)。
  3. 验证提供商端点指向 http://localhost:8020,并且"可用声音"显示您的语音样本列表。
  4. 选择任何角色并设置语音样本和角色之间的映射。 如果角色列表为空,请点击"重新加载"几次。
  5. 根据您的偏好配置其余的 TTS 设置。

# 现在您都设置好了!

点击任何消息的上下文操作菜单中的喇叭图标,听听从扬声器发出的美丽克隆声音。生成需要一些时间,即使在高端 RTX GPU 上也不是实时的。

# 流式传输?

可以使用最新版本的 XTTS 服务器进行 HTTP 流式传输,以便在生成的音频可用时立即获取其块!

# 这不适用于 RVC!

音频仍将被生成(假设您使用的是最新版本的 RVC 扩展)并转换,但不会流式传输,因为 RVC 需要在开始转换之前拥有完整的音频文件。流式 RVC 仍在研究中...

# 如何获得流式传输支持?

  1. 将 SillyTavern 更新到最新版本。
  2. 将 XTTS 服务器更新到最新版本。

    conda activate xtts
    pip install xtts-api-server --upgrade
  3. 像往常一样启动并将 XTTS 连接到 ST。
  4. 在 SillyTavern 中启用"流式传输"XTTS 扩展设置。

# 音频断断续续?

尝试增加"块大小"设置。

参考:块大小为 200 时,RTX 3090 可以以略微增加音频延迟为代价产生不间断的音频。

# 如何重新启动 TTS 服务器?

只需按照安装说明中的步骤 1、3 和 7 进行操作。

# Android??

不太可能,它无法运行需要 PyTorch 的应用程序,除非我们提供一些我们不支持的神秘黑魔法。您可以自行尝试,但如果您遇到任何问题,将不提供支持。

您最好的解决方案是在本地网络上将 TTS API 托管在您的 PC 上,只是不要忘记指定要监听的主机和端口 - 参见 README