GPT-Sovits联动Koodo自定义AI语音包听书
银河相框
编辑于 2024年12月09日 22:39

前言

本人是完全的小白,针对TTS及语音合成方面、阅读软件的研究都非常浅薄,也只停留在希望解决简单的使用功能的程度,本文章只从本人能力范围想到解决【好看的阅读软件】+【好听的语音合成】的一个方案,并非最优解。如果有任何疑问敬请先阅读官网、github Wiki或其他的博主的视频。如果有大佬请欢迎指教。

安装

  1. Koodo软件  官网:https://www.koodoreader.com/zh  Github:https://github.com/koodo-reader/koodo-reader/releases/tag/v1.7.2

  • 请下载1.7.2(beta)版本,有插件功能

界面更为友好美观,可以自己设置,包含了各种方便的功能

  1. GPT-Sovits  这里用的是 @箱庭XTer 大佬的【AI听书】开源免费!让喜欢的角色给你读书!【API for GPT-SoVITS】

本软件开源地址 https://github.com/X-T-E-R/TTS-for-GPT-soVITS基于@花儿不哭大佬的项目 https://github.com/RVC-Boss/GPT-SoVITS

花儿不哭b站链接:https://www.bilibili.com/video/BV12g4y1m7Uw​

视频中出现的声音系AI生成,版权所属米哈游同时这个语音合成后端程序以MIT协议开源, 作者不对软件具备任何控制力, 使用软件者、传播软件导出的声音者自负全责

  GPT-soVITS-Inference

  文档地址:https://www.yuque.com/xter/zibxlp

  1. 安装:https://www.yuque.com/xter/zibxlp/nqi871glgxfy717e

  2. 下载好解压打开【0 一键启动脚本】

  3. 打开【trained】装一些你喜欢的语音包

  4. 按顺序启动

导入插件

打开Koodo Reader,随便导入一本书(不推荐pdf,暂时没有朗读按钮),打开

打开【开启听书】按钮,点击【添加新语音】,将下面这段代码复制进去:

代码块
JavaScript
自动换行
复制代码
{
  "identifier": "gptsovits-voice-plugin",
  "type": "voice",
  "displayName": "GPT-Sovits",
  "icon": "speaker",
  "version": "1.0.0",
  "config": {},
  "voiceList": [
    {
      "name": "Hutao",
      "gender": "Female",
      "locale": "zh-CN",
      "displayName": "GPT-Sovits",
      "plugin": "gptsovits-voice-plugin",
      "config": {
        "url": "http://127.0.0.1:5000/tts",
        "refer_wav_path": "我说白术,你不会看不出来吧?难不成你师父,忘了教你这门功夫?.wav",
        "prompt_text": "我说白术,你不会看不出来吧?难不成你师父,忘了教你这门功夫?",
        "prompt_language": "zh",
        "text_language": "zh",
        "cut_punc": ",。",
        "voiceFormat": "wav"
      }
    }
  ],
  "scriptSHA256": "b9a14fbd91991099a03321156d85551d54ef159db1f7def9dd210a37a498f57b",
  "script": "const getAudioPath=async(t,e,a,o)=>{let i=require(\"path\"),n=require(\"fs\"),r=new Date().getTime()+\".\"+o.voiceFormat;return n.existsSync(i.join(a,\"tts\"))?(n.writeFileSync(i.join(a,\"tts\",r),await getTTSAudio(t,e,o)),console.log(\"\u6587\u4EF6\u5939\u5DF2\u5B58\u5728\")):(n.mkdirSync(i.join(a,\"tts\")),n.writeFileSync(i.join(a,\"tts\",r),await getTTSAudio(t,e,o)),console.log(\"\u6587\u4EF6\u5939\u521B\u5EFA\u6210\u529F\")),i.join(a,\"tts\",r)},getTTSAudio=async(t,e,a)=>{let o=a.url||\"http://127.0.0.1:9880\",i=a.text_language||\"zh\",n=a.prompt_language||\"zh\",r=a.refer_wav_path||\"\",g=a.prompt_text||\"zh\",s=a.cut_punc||\"\uFF0C\u3002\",u=require(\"axios\");return new Promise((e,a)=>{u.post(o,{refer_wav_path:r,prompt_text:g,prompt_language:n,text:t,text_language:i,cut_punc:s},{responseType:\"arraybuffer\"}).then(t=>{console.log(t),e(t.data)}).catch(t=>{console.log(t),a(\"\")})})};global.getAudioPath=getAudioPath;"
}
复制成功

3.添加完记得再打开一次【开启听书】切换语音包【GPT-Sovits】,然后关闭书籍界面

4.打开GPT-Sovits WebUI界面,切换你要的语音包

5..再一次打开【开启听书】,就可以听到声音了

6.如果后续想要换音源,需要先关闭【开启听书】,然后在GPT-Sovits WebUI界面按照上面④的步骤操作即可更换。