平时因为学业问题,有时可能会回复得比较慢,请见谅。
vits的nonebot的本地化插件,使用已训练好的模型,按照配置要求,使机器人发送文本对应的语音
(PS: 语音生成比较吃配置,生成过程花费时间可能会比较长,且大文本量会占用较大内存,过大会导致机器人进程 killed ,请留意)
nb-cli安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装nb plugin install nonebot-plugin-tts-gal
pip安装
pip install nonebot_plugin_tts_gal
data
文件夹中的nonebot_plugin_tts_gal
会存储与插件有关的文件
可以安装完插件后运行一次自动建立再退出
也可以按照该页面的data
文件夹进行手动建立
具体的资源下载示例请查看例子示例
ffmpeg的安装
Windows
在ffmpeg官网下载,选择对应的版本,下载后解压,并将位于bin
目录添加到环境变量中
其他具体细节可自行搜索
Linux
Ubuntu下
apt-get install ffmpeg
或者下载源码安装(具体可搜索相关教程)
配置项 | 必填 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
tts_gal | 是 | Dict[Tuble[str],List[str]] | {():[""]} | 生成指定角色语音的关键配置,具体可见tts_gal的配置要求 |
auto_delete_voice | 否 | Bool | True | 是否自动删除生成语音,True 为是,False 为否 |
decibel | 否 | int | -10 | 发送语音相对生成的分贝数 (原生成的音频音量可能比较大,因此通过此项来降低,负数为降,整数位升) |
tts_gal_is_at | 否 | Bool | True | 使用该功能是否需要@机器人 |
tts_gal_prefix | 否 | str | ""(空) | 使用该插件时的触发匹配前缀,减少冲突 |
tts_gal_priority | 否 | int | 3 | 该插件的优先级大小 |
tts_gal_tran_type | 否 | List[str] | ["youdao"] | 文本翻译使用项,默认为有道翻译("youdao"),可支持百度翻译("baidu")和腾讯翻译("tencent"),填写顺序为翻译调用优先级,若填写百度和腾讯翻译后需填写对应的配置项 |
baidu_tran_appid | 否 | str | ""(空) | 百度翻译接口对应的appid,可在百度翻译控制台获取 |
baidu_tran_apikey | 否 | str | ""(空) | 百度翻译接口对应的apikey,可在百度翻译控制台获取 |
tencent_tran_region | 否 | str | "ap-shanghai" | 腾讯翻译接口对应的地域,可在地域列表获取 |
tencent_tran_secretid | 否 | str | ""(空) | 腾讯翻译接口对应secretid,可在云API密钥获取 |
tencent_tran_secretkey | 否 | str | ""(空) | 腾讯翻译接口对应secretkey,可在云API密钥获取 |
tencent_tran_projectid | 否 | int | 0 | 腾讯翻译接口对应projectid,该项可以根据控制台-账号中心-项目管理中的配置填写,如无配置请填写默认项目ID:0或不填 |
群聊和私聊仅有细微差别,其中下面语句中,name
为合成语音的角色,text
为转语音的文本内容(根据模型配置文件中的language
会自动翻译为对应语言),具体的相关功能解释可查看这里
指令 | 可使用者 | 说明 |
---|---|---|
[name]说[text] 或 [name]发送[text] |
所有人 | 生成语音, 若配置了 tts_gal_is_at 为true 和tts_gal_prefix 不为空,那么分别要@机器人和在 name 前添加配置的前缀,如设置前缀 tts ,那么使用时为 tts[name]说[text] |
禁用翻译 xxx | 超级用户(SUPERUSER) | 禁用名为xxx的翻译项,在启用前都不会使用xxx的翻译 |
启用翻译 xxx | 超级用户(SUPERUSER) | 启用名为xxx的翻译项,将会使用xxx的翻译(按原来配置设置的优先级) |
查看翻译 | 超级用户(SUPERUSER) | 查看插件目前调用的翻译项 |
查看禁用翻译 | 超级用户(SUPERUSER) | 查看插件目前禁用的翻译项 |
例如:
- 宁宁说おはようございます.
- 禁用翻译 baidu
- 启用翻译 baidu
- 查看翻译
- 查看禁用翻译
添加更多的模型
添加更多的翻译选项
安装pyopenjtalk
如果出现如下错误
可能由于缺少cmake和MSVC造成的,需要在本机安装
在Visual Studio的官网下载安装器,VS2022点击此处下载
下载社区版,即Visual Studio Community
下载后点击,进入如图所示先点击修改,然后选择如图所示的项目
下载好后,在安装目录中找到cmake和MSVC的bin目录
下面是参考目录,前面的目录即为之前强调的路径
E:\Program Files (x86)\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin
E:\Program Files (x86)\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.32.31326\bin\Hostx86\x64
将这两个目录添加到环境变量中
这样,windows安装pyopenjtalk的前置依赖便解决了
Linux如出现以下情况
原因为缺少cmake工具,可以使用apt命令下载安装
sudo apt install cmake
安装好后便可安装pyopenjtalk
无法生成语音
如果出现下载open_jtalk的错误信息,可以再次尝试,如果实在不行,可以使用pip install openjtalk
- 部分代码参考自nonebot-plugin-petpet
- CjangCjengh:g2p转换,适用于日语调形标注的符号文件及分享的柚子社多人模型
- luoyily:分享的ATRI模型
2023.4.19 version 0.3.11:
fix bug #41
2023.4.18 version 0.3.10:
修改部分代码
2023.4.9 version 0.3.9:
支持添加生成symbols的代码,以便添加更多的symbols,详见Usage.md
fix bug #39
2023.1.12 version 0.3.8:
修复regex的匹配问题
2023.1.11 version 0.3.7:
支持百度翻译和腾讯翻译的api使用,增加是否需要@机器人、自定义前缀、自定义插件priority等配置
2022.12.9 version 0.3.3:
自动读取已加载的角色模型,可通过PicMenu插件进行显示可使用的角色;对代码进行相关优化
2022.10.27 version 0.3.2:
修改正则表达式,避免文本出现"说/发送"而造成name的匹配错误
2022.10.21 version 0.3.1:
修复对配置项auto_delete_voice的判断bug
2022.10.19 version 0.3.0:
支持添加中文模型,优化相关代码,增添更多提示
2022.10.7 version 0.2.3:
适配nonebot2-rc1版本,并添加部分报错信息提醒
2022.9.28 version 0.2.2:
添加中文逗号替换成英文逗号
version 0.2.1:
将pyopenjtalk依赖更新为0.3.0,使python3.10也能使用
2022.9.25 version 0.2.0:
优化修改代码逻辑,支持自行添加vits模型,简单修复了一下有道翻译的翻译问题,启动时自动检测所需文件是否缺失
2022.9.21 version 0.1.1:
修改依赖