astrbot_plugin_index_tts
前言
本插件是基于index-tts对AstrBot的语音转文字(TTS)补充
建议使用 Conda 构建本插件的虚拟环境
需要FFmpeg在系统路径下
性能要求
建议显卡显存大于4Gib(IndexTTS 1, 1.5),或12Gib(IndexTTS 2)
[!TIP]
建议AMD用户使用WSL或Linux以使用torch-ROCm
环境配置
根据Index TTS 官方文档配置环境
...配置虚拟环境...
建议使用官方提供的方式安装
uv sync --extra webui --default-index "https://mirrors.aliyun.com/pypi/simple"
[!IMPORTANT]
目前还不知道怎么将两个uv的环境合并故建议如果出现问题先转用分隔式服务
如果发生版本冲突,以报错为准去下载合适版本的库
[!TIP]
若使用uv配置环境,则需使用cd /path/to/AstrBot uv pip install xxx现已不推荐使用
Conda作为虚拟环境
[!WARNING]
本插件目前仅在python3.10上测试,如果为Python >=3.11&& <=3.12,可能不稳定
AstrBot 内配置
添加OpenAI的tts适配器
apikey默认1145141919810
超时建议30~`60`s
其他默认便可
插件自定义
插件目前可自定义:apikey、音频输入文件
音频输入文件在path/to/the/plugin/sounds下,自定义时仅用填文件全名即可
如需修改端口号,可在 main.py 和 service.py 中 找到port = xxx
字样,更改即可,但注意不要更改 port 的 数据类型
使用
正常使用
开启/关闭TTS功能:
/tts
更换源语音文件:
/tts_cfg_it set voice xxx.wav
[!NOTE]
此处/为你的自定义唤醒词,会根据你的自定义而改变此处使用的
xxx.wav不需要带文件路径
作为 LLM Tool 调用
建议在提示词之中加入对于使用LLM Tool(A.K.A. Function Calling) 的提示
其余便不用管了
[!NOTE]
Index TTS目前仅支持中英两种语言,不支持俄语和日语及其他如有跨语言需求,请使用其他的TTS模型
后记
时间原因,文档写的较潦草,如有不懂或报错,请issue
本次(1.0.4)更新属实匆忙,如果偶遇任何bug,请issue
如果有想法,也欢迎issue
如果你认为这个插件对你有帮助,请star
版本历史
1.0.0 -> 1.0.1:
(1)添加了LLM工具
(2)使用了线程池进行语音生成
(3)优化逻辑
1.0.1 -> 1.0.2:
(1)添加了随机TTS功能
(2)添加命令以实时更改语音源文件
1.0.2 -> 1.0.3:
(1)添加了预加载模型的功能
(2)优化异步与传参
(3)优化仓库下载逻辑
(4)添加去除emoji和分段的功能
(5)更改临时文件储存地址
1.0.3 -> 1.0.4:
(1)添加了对IndexTTS的支持
[!NOTE]
对于每次更新,建议将原先版本的配置文件删除后再更新,以防出现错误
TODO
添加GitHub代理
添加对vllm版本的快捷使用