Skip to main content

NoneBot-Plugin-GPT-SoVITS

介绍

NoneBot-Plugin-GPT-SoVITS 是一个 NoneBot2 插件,用于对接 GPT-SoVITS,并依赖 nonebot-plugin-alconna 支持了多平台适配。该插件实现了 TTS(文本到语音)的功能,并能将语音消息发送到多个平台。

功能

  • 对接 GPT-SoVITS,生成 TTS 语音,并发送语音消息

使用方法

指令说明:

  • {gpt_sovits_command} [text] [-e emotion] [-l language] - 生成语音,支持可选情绪和语言
  • gptsovits帮助 - 显示帮助信息

示例:

  • {gpt_sovits_command} 你好 - 生成语音
  • {gpt_sovits_command} 你好 -e 1 - 使用情绪编号 1 生成语音
  • {gpt_sovits_command} hello -e 1 -l en - 以情绪编号 1 生成一段英文语音

可选语言:中文、英文、日文、中英混合、日英混合、多语种混合

gpt_sovits_command 和 emotion 参数取决于配置文件中的设置

安装方法

通过 nb-cli 安装

在 NoneBot2 项目的根目录下打开命令行,输入以下指令安装插件:

nb plugin install nonebot-plugin-gpt-sovits
通过包管理器安装

在 NoneBot2 项目的插件目录下,打开命令行,根据你使用的包管理器,输入相应的安装命令:

pip
pip install nonebot-plugin-gpt-sovits
pdm
pdm add nonebot-plugin-gpt-sovits
poetry
poetry add nonebot-plugin-gpt-sovits
conda
conda install nonebot-plugin-gpt-sovits

然后,打开 NoneBot2 项目根目录下的 pyproject.toml 文件,在 [tool.nonebot] 部分追加:

plugins = ["nonebot_plugin_gpt_sovits"]

配置

在 .env 文件中添加以下配置:

配置项 默认值 说明
GPT_SOVITS_API_BASE_URL http://127.0.0.1:9880 可选。GPT-SoVITS API 的 URL
GPT_SOVITS_API_V2 True 可选。是否使用 GPT-SoVITS API v2。注意:API 是否为 v2 不取决于你使用的 GPT-SoVITS 模型版本,而是由你运行的 API 脚本决定。api_v2.py 为 API v2,api.py 为 API v1
GPT_SOVITS_COMMAND tts 可选。触发 TTS 的命令,可自定义为 GPT-SoVITS 角色名
GPT_SOVITS_CONVERT_TO_SILK False 可选。是否将生成音频转换为 SILK 格式发送
GPT_SOVITS_EMOTION_MAP 无默认值 必填。配置情感映射
GPT_SOVITS_ARGS 无默认值 可选。传递给 GPT-SoVITS 的额外参数,如 {"temperature": 0.9}

GPT_SOVITS_EMOTION_MAP 示例配置:

[
  {
    "name": "平静",
    "sentences": [
      {"text": "示例文本1", "language": "zh", "path": "路径1"},
      {"text": "示例文本2", "language": "zh", "path": "路径2"}
    ]
  },
  {
    "name": "激动",
    "sentences": [
      {"text": "示例文本3", "language": "zh", "path": "路径3"}
    ]
  }
]

GPT_SOVITS_ARGS 配置说明

一般不需要配置此项,但如果你需要传递额外参数给 GPT-SoVITS,可以展开阅读如何配置。

点击展开
  • 对于使用 api.py(将 GPT_SOVITS_API_V2 设置为 False)的用户,可配置以下参数:

    • cut_punc(str 类型):用于切分句子的标点符号,默认值为 ",。"
    • top_k(int 类型):生成文本的 Top-K,默认值为 10
    • top_p(float 类型):生成文本的 Top-P,默认值为 1.0
    • temperature(float 类型):生成文本的温度,默认值为 1.0
    • speed(float 类型):生成音频的播放速度,默认值为 1.0
  • 对于使用 api_v2.api(将 GPT_SOVITS_API_V2 设置为 True)的用户,可配置以下参数:

    • aux_ref_audio_paths(list 类型):用于生成文本的参考音频路径,默认值为 []
    • top_k(int 类型):生成文本的 Top-K,默认值为 5
    • top_p(float 类型):生成文本的 Top-P,默认值为 1.0
    • temperature(float 类型):生成文本的温度,默认值为 1.0
    • text_split_method(str 类型):切分文本的方法,默认值为 cut3(按中文句号切),可选值:
      • cut0:不切分
      • cut1:四句一切
      • cut2:50字一切
      • cut3:按中文句号切
      • cut4:按英文句号切
      • cut5:按标点符号切
    • batch_size(int 类型):生成文本的 Batch 大小,默认值为 1
    • batch_threshold(float 类型):生成文本的 Batch 阈值,默认值为 0.75
    • split_bucket(bool 类型):是否分割 Batch,默认值为 True
    • speed_factor(float 类型):生成音频的速度因子,默认值为 1.0
    • fragment_interval(float 类型):片段间隔,默认值为 0.3
    • streaming_mode(bool 类型):是否流式返回,默认值为 False
    • seed(int 类型):随机种子,-1 为随机,默认值为 -1
    • parallel_infer(bool 类型):是否使用并行推理,默认值为 True
    • repetition_penalty(float 类型):重复惩罚,默认值为 1.35

额外配置

若启用 GPT_SOVITS_CONVERT_TO_SILK,请进行以下额外配置:

  1. 将 ffmpeg 添加到环境变量
  2. 下载 silk_cli 并放置于 Bot 根目录,重命名为 cli.exe(Windows)或 cli(Linux)
  3. 完成配置

Metadata

Release files for nonebot-plugin-gpt-sovits 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nonebot-plugin-gpt-sovits 0.2.0
File Size Uploaded Provenance Actions
nonebot_plugin_gpt_sovits-0.2.0.tar.gz 7.5 kB Without provenance Details for nonebot_plugin_gpt_sovits-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for nonebot-plugin-gpt-sovits 0.2.0
File Interpreter ABI Platform Actions
nonebot_plugin_gpt_sovits-0.2.0-py3-none-any.whl Python 3 none any Details for nonebot_plugin_gpt_sovits-0.2.0-py3-none-any.whl

Total release size: 16.8 kB

Release files / nonebot_plugin_gpt_sovits-0.2.0.tar.gz

Download URL nonebot_plugin_gpt_sovits-0.2.0.tar.gz
Size 7.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9d1e4f2d1007c3012e07a62ed54f001cbb8c5133ec3c3606f1f1b1e125318514
BLAKE2b-256 checksum
How to use checksums
4b540e7b13085a9258a85cad7af505790d57202f21a72cb5ba2e57f0c4450d82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via pdm/2.18.2 CPython/3.10.12 Linux/6.5.0-1025-azure

Release files / nonebot_plugin_gpt_sovits-0.2.0-py3-none-any.whl

Download URL nonebot_plugin_gpt_sovits-0.2.0-py3-none-any.whl
Size 9.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
43422e574c34cae8b0c81eabf652aa8397d8631eb0e2c4c4804636d042d2c5c2
BLAKE2b-256 checksum
How to use checksums
5b40c7eaf80d6545f49065c55210f872390c775bb70b4eef7681060900f65a2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via pdm/2.18.2 CPython/3.10.12 Linux/6.5.0-1025-azure

Security for nonebot-plugin-gpt-sovits 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page