基於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-ttsnonebot-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-speech api地址 |
Note
請注意你的COMMAND_START以及上述配置項。
| 指令 | 需要@ | 範圍 | 說明 | 權限 |
|---|---|---|---|---|
| xxx說xxx | 根據配置 | all | tts語音生成 | all |
| 語音列表 | 是 | all | 獲取所有角色列表 | all |
| 語音餘額 | 是 | all | 查詢api餘額 | all |
使用前
準備fish-speech
fish-speech倉庫release的代碼( Source code (zip) )下載到本地fish-speech根目錄install_env.bat安裝虛擬環境以及所需依賴start.bat初次啟動API_FLAGS.txt後再次啟動即可啟動API服務
API_FLAGS.txt大致為以下內容,即取消api前面的#號 # --infer
--api
--listen 0.0.0.0:8080 #监听接口
...在API_FLAGS.txt裡可添加的額外參數
--complie ->是否啟動編譯後的模型(更快的生成tts,但啟動較慢)--workers 数字->啟動数字多協程(請務必設置,因為默認一個容易阻塞)--device cpu ->使用cpu生成tts (如果使用gpu,請忽略)--half ->使用半精度生成tts--max-text-length ->輸入文本最大長度