# 使用语音克隆的 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 并且"Available voices"显示您的语音样本列表。
  4. 选择任何角色并设置语音样本和角色之间的映射。 如果角色列表为空,多点击几次"Reload"。
  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 中启用"Streaming" XTTS 扩展设置。

# 音频断断续续?

尝试增加"chunk size"设置。

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

# 如何重启 TTS 服务器?

只需执行安装说明中的步骤 1、3 和 7。

# Android??

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

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