小样本TTS,通过调用在线或本地api发送TTS语音
Project description
nonebot-plugin-fishspeech-tts
⭐基于Nonebot2的调用在线fish-audio或离线fish-speech api⭐
⭐文本生成语音tts插件⭐
中文简体 | English
⭐ 介绍
仅需一条5秒语音素材,就可完美优秀克隆素材本音呐!
只需要准备好你想克隆的角色语音,并对其语音进行文件名的标注(见下文),就可以快速生成语音。
或者使用官方在线api -> fish-audio即可享受快速云端的语音生成。
📜 免责声明
[!CAUTION] 本插件仅供学习和研究使用,使用者需自行承担使用插件的风险。作者不对插件的使用造成的任何损失或问题负责。请合理使用插件,遵守相关法律法规。 使用本插件即表示您已阅读并同意遵守以上免责声明。如果您不同意或无法遵守以上声明,请不要使用本插件。
💿 安装
安装
pipx 安装
pipx install nonebot-plugin-fishspeech-tts -U
[!note] 在nonebot的pyproject.toml中的plugins = ["xxx"]添加此插件
nb-cli安装
nb plugin install nonebot-plugin-fishspeech-tts -U
git clone安装(不推荐)
- 命令窗口
cmd下运行
git clone https://github.com/Cvandia/nonebot-plugin-fishspeech-tts
- 在窗口运行处
将文件夹
nonebot-plugin-fishspeech-tts复制到bot根目录下的src/plugins(或创建bot时的其他名称xxx/plugins)
注意
推荐镜像站下载
清华源https://pypi.tuna.tsinghua.edu.cn/simple
阿里源https://mirrors.aliyun.com/pypi/simple/
⚙️ 配置
在.env中添加以下配置
| 基础配置 | 类型 | 必填项 | 默认值 | 说明 |
|---|---|---|---|---|
| tts_is_online | bool | 是 | True | 是否使用云端api |
| tts_chunk_length | literal | 否 | "normal" | 请求时音频分片长度,默认为normal,可选:short, normal, long |
| tts_max_new_tokens | int | 否 | 800 | 最大音频长度,默认为800,设置为0则为不限制 |
| tts_audio_path | str | 否 | "./data/参考音频" | 语音素材路径,默认为"./data/参考音频" |
| tts_prefix | str | 否 | None | 触发前缀,默认为None |
注:参考音频的文件名格式为:[角色名]音频对应的文字标签.[音频后缀名]
点击这里可选择下载推荐参考音频reference_audio.zip,解压并把音频并放入bot文件目录的data/参考音频下即可
! 支持同一角色的不同语音 !
音频后缀目前支持有详见files.py中的AUDIO_FILE_SUFFIX
如果你想使用官方的api,请将配置项tts_is_online设置为True并配置以下
| 配置项 | 类型 | 必填项 | 默认值 | 说明 |
|---|---|---|---|---|
| online_api_url | str | 否 | "https://api.fish-audio.cn" | 官网api地址,可选https://api.fish.audio(被墙)或者默认值 |
| online_authorization | str | 是 | "xxxxx" | 官网api鉴权秘钥,详见链接 |
| online_model_first | bool | 否 | True | 如果你想调用官方模型,通过自己的参考音频,定制角色音色,将此项设为False。当然,如果你没有准备参考音频,也会调用官网已经有的音色,具体详见链接 |
| online_api_proxy | str | 否 | None | 代理地址,如:http://127.0.0.1:7890 |
如果你想使用自搭或者其他的fish-speech项目的api,请将配置项tts_is_online设置为Fasle并配置以下
| 配置项 | 类型 | 必填项 | 默认值 | 说明 |
|---|---|---|---|---|
| offline_api_url | str | 是 | "http://127.0.0.1:8080" | 你的fish-speechapi地址 |
⭐ 使用
[!note] 请注意你的
COMMAND_START以及上述配置项。
指令:
| 指令 | 需要@ | 范围 | 说明 | 权限 |
|---|---|---|---|---|
| xxx说xxx | 根据配置 | all | tts语音生成 | all |
| 语音列表 | 是 | all | 获取所有角色列表 | all |
| 语音余额 | 是 | all | 查询api余额 | all |
🌙 Todo
- 添加更多配置项
- 暂无计划
💝 特别鸣谢
- nonebot2: 本项目的基础,非常好用的聊天机器人框架。
- fish-speech:零样本 & 小样本 TTS:输入 10 到 30 秒的声音样本即可生成高质量的 TTS 输出
⭐ 额外帮助
windows离线搭建简略教程
使用前
- CUDA toolkit 使用前确保安装正确版本的CUDA
准备fish-speech
- 1.将
fish-speech仓库release的代码(Source code (zip))下载到本地 - 2.解压到本地
- 3.打开
fish-speech根目录 - 4.运行
install_env.bat安装虚拟环境以及所需依赖 - 5.运行
start.bat初次启动 - 6.修改
API_FLAGS.txt后再次启动即可
启动API服务
- 1.修改
API_FLAGS.txt大致为以下内容,即取消api前面的#号
# --infer
--api
--listen 0.0.0.0:8080 \ #监听接口
...
在API_FLAGS.txt里可添加的额外参数
- 1.
--complie->是否启动编译后的模型 (更快的生成tts,但启动较慢) - 2.
--workers 数字->启动数字个多协程 (请务必设置,因为默认一个容易阻塞) - 3.
--device cpu->使用cpu生成tts (如果使用gpu,请忽略) - 4.
--half->使用半精度生成tts - 5.
--max-text-length->输入文本最大长度
linux离线搭建fish-speech
- 更多参考官方文档
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nonebot_plugin_fishspeech_tts-0.3.9.tar.gz.
File metadata
- Download URL: nonebot_plugin_fishspeech_tts-0.3.9.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdcfaccfa0eb8c3ba21b1054c4909a83e1e5cfa15b7958ce3cf0922950e953f8
|
|
| MD5 |
e3f95ad87400be2f6eae84fd02e9a6f7
|
|
| BLAKE2b-256 |
e6cb5da940eb4775b5af7ab70c6848d5f8df1dae57d53a23a9ab61e820510150
|
File details
Details for the file nonebot_plugin_fishspeech_tts-0.3.9-py3-none-any.whl.
File metadata
- Download URL: nonebot_plugin_fishspeech_tts-0.3.9-py3-none-any.whl
- Upload date:
- Size: 15.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e811a5c7c5047c22ba16eb0bddc8e967c0d5e9ce9b979b01f09acaf88ef6a4b
|
|
| MD5 |
9242106ecb77223acdb53b23e85b70e4
|
|
| BLAKE2b-256 |
3ef9a989bc179e027e4c20415dc30c1fe0e5cdaee0ce18f0ddad8a2323c3ddc7
|