功能一览

  • 切换pdf路径,下次打开同一个pdf
  • 根据字体和字号筛选pdf内文本内容(视图1的列表内信息是:字体、字号、pdf内此字体字号的所有字符数,以字符数从大到小排序)
  • 在上述筛选的结果下,根据页号、该block内筛选后的最少文字数,进行进一步筛选
  • 一键推理,生成语音
  • 界面内语音自动连播
    • pdf的结构是:page-block-line-span-char

使用方法

1

https://github.com/RVC-Boss/GPT-SoVITS 这个仓库下载GPT-SoVITS项目(windows版在这里有整合包),并使用它自带的webui,用你自己的音频素材,完成模型的训练 推荐教程:https://www.bilibili.com/video/BV1P541117yn/

若不使用整合包,自己配置环境,应该修改server/app.pyPopen函数对应的调用的GPTSoVITS的python环境

2

克隆本项目,在合适的文件夹下,打开cmd执行:

git clone https://github.com/Dusk-Hermit/pdf_voice_inference_webui.git

3

使用conda虚拟环境,创建新环境,并安装依赖 如果不是使用该名称的conda虚拟环境,则需要修改run.py的对应地方

conda create -n pdf_voice_webui python=3.10
conda activate pdf_voice_webui
pip install -r requirements.txt

4

用cmd进入client文件夹,并npm install。需要在机器上安装好nodejs

cd client
npm install

5

server/write_config.py中,修改其中的config_list变量,并用任意python解释器执行以下该脚本python write_config.py,以更新server/config.json 需要修改的包括

  • GPT_SoVITS项目的根目录地址
  • 默认选择用来进行推理的GPT和SoVITS权重
  • 作为当次推理的参考音频,应在3-10s内;以及它的对应文本和语言
  • 默认打开的pdf文件目录(如果这是无效地址会启动失败……)
  • 其他选项是可以不用特殊指定,有默认值的

6

在你的GPT_SoVITS项目根目录中,进入GPT_SoVITS文件夹,复制inference_webui.py一份,重命名为inference_webui_copy.py该名称在本项目中被引用,不应乱改,然后这样修改inference_webui_copy.py

  1. 找到文件中的以下代码,并把这两行注释掉(这两行行首加上#)。本项目通过对参考音频做音频时间处理,来实现推理语速控制
if (wav16k.shape[0] > 160000 or wav16k.shape[0] < 48000):
    raise OSError(i18n("参考音频在3~10秒范围外,请更换!"))
  1. 从最后看,找到with gr.Blocks(title="GPT-SoVITS WebUI") as app:这一行,把这一行及以下所有代码删掉。不同版本的GPT_SoVITS项目的该文件代码会有些许差别,因此请用自己下载的版本的该文件,并进行修改

6

双击run.bat即启动,然后再浏览器中输入http://localhost:51877打开webui页面 修改端口号,需修改client/src/main.js,以及用write_config.py修改config.json

演示视频

https://www.bilibili.com/video/BV1iD42177Vz/

权重示例

这是用琴柳中文语音训练了一会会的语音,可以直接下载进行推理使用 链接:https://pan.baidu.com/s/1cvQ4MbyatudMpIK7JYeLCw?pwd=7bip

致谢

https://github.com/RVC-Boss/GPT-SoVITS

gptsovits换成了GPT-SoVITS-beta0306fix2这个版本的整合包,也能用