请选择 进入手机版 | 继续访问电脑版

使用GPT-SoVITS快速制作多角色朗读小说

[复制链接]
查看163 | 回复0 | 2024-9-15 17:40:30 | 显示全部楼层 |阅读模式
用AI写了一个程序接入的UP制作的整合包中的API
选项卡1

选项卡1

选项卡1

可进行基本的文本转语音


选项卡2

选项卡2

选项卡2

左侧为文本排版转换和预处理,处理中文排版的小说的时候四个复选框都要勾上,日语排版的小说的时候勾上后两个即可,第二个可勾可不勾。


第一栏为自动分章,可自动识别以下八种章节标号并按对应的标号进行分章以及可设置几个章节一切
可识别的章节标号格式:“第一章”,“第一话”,“第1章”,“第1话”,“第01章”,“第01话”,“第001章”,“第001话”
可识别的章节数量为999章以内

第二栏为辅助AI标记角色
1.需要将分好章的文档(对于使用ChatGPT来说分好章的文档的行数最好控制在300行以内)的内容复制给ChatGPT一类的大语音模型AI并在内容前面加上以下前缀:

以下故事中使用「」符号表示角色说的话,对以下故事按如下标准进行标注:判断用「」符号括起来的行是哪个角色说的话并在行前以
”角色名@:「对话内容」“
的格式标注他的名称或代称,不要落下”我“说的话(在”我“说的话前面把”我“作为角色名),没有名字的角色标注职业或其他角色对其的称呼或路人等名称并用相同的格式在行前标注。不要落下任何被「」符号括起来的内容。删除没被「」符号括起来的内容。
使用以上前缀基本上AI的第一次回答就能有7到8成的准确率不满意的话可以多让AI回答几次,注意文章中不要包含违禁词或相关场景的描写,有的话可能导致生成失败。
2.AI生成出大致满意的内容后把回答的文本复制到一个新建的文档中并保存,在程序中”未标注角色名路径“选择章节原文,”对话标注角色名文本路径“选择刚才保存的包含AI生成内容的文档,点击开始标注后会把AI标注的角色名添加到原文中并保存到”未标注角色名路径“下原文后面加”marked“的文档中。用AI标记很难做到百分比准确,要求比较高的话在标记完后可以手动校对一下。

第三栏为生成各角色要读的文档和顺序表在导入完成标记的文档之前需要检查一下这几个符号使用的是否正确”@“,”“,”“,”“以下为示例文本:
刹那@:「嗯。刹那很期待。」
最好使用notepad++一类的软件的替换功能把完成标记的文档中上述4种符号都分别替换为示例文本中使用的符号,这4个符号在源代码中也能找到。
不在同一段中添加分句符“功能勾上的情况生成大段的速度更快但容易出现读错的情况且一定要在生成时选择一种分句内切割方式否则生成大段文字时会出现部分内容没读的情况

选项卡3

选项卡3(无角色)

选项卡3(无角色)

选项卡4(载入角色列表)

选项卡4(载入角色列表)

使用选项卡3前需要先把选项卡2右第三栏生成的各角色要读的文档和顺序表文件单独放到一个空文件夹内,其中不要包含多余的.txt文档。在选项卡3中选择该文件夹后会自动列出其中的各个角色和对应的参数选项可以对每个角色分别设置模型和对应的参数。在开始设置各个角色的参数前先要刷新模型,注意角色数量过多或电脑比较卡的话不要点击刷新所有模型,请先刷新默认项的模型在选择了默认项的模型后点击确认模型的按钮,之后依此填写之后的各个选项然后点击应用默认值,现在正常的话应该已经把默认值都应用到每个选项了,在这种情况下你就可以要调整哪个角色的配置就刷新哪个角色的模型然后修改即可。都改完后最好导出一下配置,这样就算出问题了重启完程序也能一键导入配置不用再填一遍了,完成上述操作后即可点击”生成所有角色语音按钮“(注意不是”合并语音“)来生成一个包含每个角色进行分角色朗读的音频文件。如果电脑很卡或角色数量特别多(几十个甚至更多)可能会出现生成出的内容没有完全按照设置的配置来生成,如果发现这种情况你可能需要调整选项卡2第二栏生成出的内容比如分成500行以内的小文档重新交给选项卡2第三栏处理然后再到选项卡3合成音频。当然如果你非要一次性合成一个超大的文档的话也可以再导出完配置后重启一下程序重新选择文件夹之后导入配置然后一个一个角色点击生成角色语音,最后点击”合并语音“。最后生成出来的语音文件如果有哪个角色不满意需要调整可以单独调整该角色然后单独生成该角色语音最后点击合并语音即可单独调整完整音频中一个角色的语音

最后附上打包好的程序和源码,欢迎各位大佬修改源码,因为是AI生成的有不少的错误,效率也比较低,但以我目前的能力很难再继续优化了

链接: https://pan.baidu.com/s/1M54G6yWarap_s20jtUFWYg?pwd=6ise 提取码: 6ise


另外听我一同学说这两个函数是导致选项卡3效率低下和容易出问题原因,因为会导致create_options函数产生很多多余的只有默认值的frame但他也不会改,如果有那位大佬懂的话可以帮忙改一下谢谢
屏幕截图 2024-09-15 173623.png




回复

使用道具 举报

2

主题

1

回帖

10

积分

初出茅庐

积分
10