lclichen / LiteLoaderQQNT-TTS

TTS plugin for LiteLoaderQQNT.
GNU General Public License v3.0
35 stars 0 forks source link

LiteLoaderQQNT-TTS


LiteLoaderQQNT 文本转语音

基于TTS接口(vits、GPT-SoVITS等),将输入字符转为语音发送。

安装 | Installation

需为LiteLoaderQQNT安装 Euphony 依赖。

手动安装(从 Releases 中下载稳定版)

完成后的目录结构应该如下:

plugins (所有的插件目录)
└── text_to_speech (此插件目录)
    ├── src/ (主要代码文件夹)
    ├── .../ (其他文件夹文件夹)
    ├── manifest.json (插件元数据)
    └── ... (其他文件)

使用 LiteLoaderQQNT-PluginInstaller 插件安装

1. 通过 URL Schemes 跳转 QQ 安装插件

2. 在 PluginInstaller 插件内安装

https://github.com/lclichen/LiteLoaderQQNT-TTS/blob/main/manifest.json

使用 | Usage

  1. TTS功能:打开一个对话界面,在编辑框中键入所希望进行转换的文本,点击编辑框上方的TTS按钮,默认将自动发送转换后的语音。
  2. TTS发送前预览:在设置中启用TTS预览,生成后将出现一个预览界面(由于前端解码的限制,如果后端返回的音频格式在 wavoggmp3 以外,可能无法被播放。)
  3. 音频发送功能:(Copy From Audio-Sender)点击编辑框上方的语音图标,切换到发送语音界面,直接将音频文件拖入聊天窗口即可。

注意事项 | Notes

建议用户自行填写TTS接口地址,目前支持类似于simple-vits-api类型的,在请求中发送文本,直接获取音频文件的响应。

例如,gptsovits的接口格式根据GPT-SoVITS/api.py中的推理格式构建,请按照该文件中的使用方式启用GPT-SoVITS后端API接口(接口更新请自行同步,目前GPT-SoVITS并没有稳定的接口)。

如果向后端请求的音频格式在silk以外,则需要配置ffmpeg,用于格式转换。 注意,source_key参数用于标记文本所对应的键值,在修改配置时需要保留 注意,format参数用于标记后端返回的音频格式,即使后端不解析本参数,也需要保留用于模块解析

依赖 | Requirements

  1. 需安装Euphony插件,用于消息发送。
  2. ffmpeg (包括 ffprobe) 添加至环境变量,用于将非silk格式音频转换到pcm格式,便于后续编码。

致谢 | Acknowledgment

  1. 整体结构参考了DeepL插件
  2. 格式转换参考了Audio-Sender插件

ChangeLog

  1. 配置文件结构更新,支持快速配置切换
  2. 增加音频发送前预览功能

TODO

  1. 支持调用Windows系统语音
  2. Mac上的ffmpeg相关问题解决
  3. 更人性化的设置界面
  4. 开放TTS接口,允许其他插件调用

自建TTS后端注意事项 | Notes for TTS Server

如果向后端请求的音频格式设置为silk的话:

  1. python环境下如果使用graiax-silkcoder的话建议安装本人修改并重新编译的版本,以支持QQNT的silk格式,并适应音频格式判断方式。
  2. 其他环境请保证接口支持QQNT版本的silk格式输出,否则建议采用其他格式。

交流反馈

点击链接加入群聊【TTS问题反馈与接口交流 857365160】:https://qm.qq.com/q/jMGb3zgiHu