查看: 451|回复: 24
收起左侧

[原创内容] 【Speech TTS】循环调用GPT-SoVITS接口生成AI语音的小工具

[复制链接]

7

主题

1150

帖子

3万

积分

游戏终结者

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
13
贡献
100
猫币
1
精华
0
金元
20544
积分
34094

梦想的开始骨灰玩家游戏天王游戏圣者游戏之神官方群水友

QQ
发表于 2025-3-29 16:49:03 | 显示全部楼层 |阅读模式

马上注册领取绝版勋章

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 cyh406832098 于 2025-4-1 20:14 编辑

界面.png
此工具仅有调用API的功能,必须事先下载GPT-SoVITS 用命令行 运行它的 api_v2.py(v2版本),或者 api.py(v3版本)。
因为我用的是GPT-SoVITS的整合包,没有v3版本的api文件所以目前只测试了v2版本的接口调用
v3版本的调用仅根据文档写了一下,不能保证可靠

csv文件建议直接用
Lazy Voice Finder获取,列的前后顺序无所谓,只需要首行有“File Name”“Dialogue”关键词让程序识别文件名和台词所在列即可。也可以根据标准 自己编辑
*注意:不建议直接用WPS编辑和保存,那会默认存为“GB2312编码”,读取汉字可能会乱码,如果已经用变为“GB2312”编码,用记事本打开文件,另存为的时候编码一栏选择“UTF-8”即可

以下是可用csv文档示例

Lazy Voice Finder导出格式

Lazy Voice Finder导出格式

满足条件的自定义格式

满足条件的自定义格式


我不擅长写前端,更喜欢直接在IDE工具上跑,所以除非这个工具有bug,可能不会更新

如果需要修改或者参考的朋友可以自行下载工程文件去修改,但也希望不要用它去牟利

生成.lip口型文件建议用Runalip,可以批量生成,这个虽然不太易用,但是只要研究明白了也好过用CK一条一条生成大几千条语音的口型

下面是Runalip用例,首先是几点说明:
  • SSE CreationKit Fixes帖子内下载FaceFXWrapper(必要),然后将FaceFXWrapper.exe,放入Runalip\tools文件夹下。
  • 建议直接用命令行调用Runalip,这样在报错的时候可以看到更多错误信息
  1. Runalip -genlips "SSE" "E:\RunalipWorkspace\LazyVoiceFinder_export.csv" "E:\RunalipWorkspace\sound\voice" "E:\RunalipWorkspace\export" -nfuz -hq
复制代码
  • -genlips:无需修改,声明功能<生成lip>
  • "SSE":游戏版本,可选SSE、SLE、FNV、FO4
  • "E:\RunalipWorkspace\LazyVoiceFinder_export.csv":参考.csv文件所在位置,可以是绝对路径(全路径),也可以把文件放到Runalip目录下用相对路径,不明白什么意思用绝对路径,肯定不出问题
  • "E:\RunalipWorkspace\sound\voice":音频文件所在位置*不能直接把音频放在这个路径下,具体结构请参考上一条传入的.csv中的Plugin和Voice Type的内容,比如按照我上方的csv文件用例,就需要这样的结构E:\RunalipWorkspace\sound\voice\skyrim.esm\femalenord\[你的所有音频]
  • "E:\RunalipWorkspace\export":.lip文件的导出位置
  • (命令行可选后缀)-nfuz:生成.lip文件同时直接生成fuz
  • (命令行可选后缀)-nfuz -hq:生成.lip文件同时直接生成HQ质量的fuz
  • *注意(重要):所有路径必须是英文
  • *注意(重要):此处的.csv文件必须是Lazy Voice Finder默认列序的结构,即【State,Plugin,File Name,Voice Type,Dialogue 1,Dialogue 2】
  • *注意(建议):如果是中文语音的话,csv中的Dialogue文本建议转拼音后再生成lip,用中文文本生成的口型文件仅能对上说话的节奏,无法匹配口型。

以下是我的测试用的bat文件,如果实在小白,那就按照我的路径建好文件夹并正确放好csv和音频,然后直接用它
Run.bat (152 Bytes, 下载次数: 15)
回复

使用道具 举报

50

主题

2284

帖子

5万

积分

玖大猫MOD汉化组

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
270
贡献
276
猫币
14
精华
0
金元
46496
积分
53360
发表于 2025-3-29 19:00:11 | 显示全部楼层
好好好,很给力
回复

使用道具 举报

50

主题

2284

帖子

5万

积分

玖大猫MOD汉化组

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
270
贡献
276
猫币
14
精华
0
金元
46496
积分
53360
发表于 2025-3-29 20:40:26 | 显示全部楼层
用了没有问题,谢谢大佬,就剩口型文件不会整,不是程序员真的难搞
回复

使用道具 举报

7

主题

1150

帖子

3万

积分

游戏终结者

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
13
贡献
100
猫币
1
精华
0
金元
20544
积分
34094

梦想的开始骨灰玩家游戏天王游戏圣者游戏之神官方群水友

QQ
 楼主| 发表于 2025-3-29 20:55:33 | 显示全部楼层
313175162 发表于 2025-3-29 20:40
用了没有问题,谢谢大佬,就剩口型文件不会整,不是程序员真的难搞

口型用Runalip批量来,在CK里生成太慢了
回复

使用道具 举报

3

主题

3128

帖子

27万

积分

游戏VIP联动部

Rank: 16Rank: 16Rank: 16Rank: 16

点赞
489
贡献
287
猫币
2
精华
0
金元
234524
积分
271907
发表于 2025-3-30 01:03:50 | 显示全部楼层
支持,这个意思是可以用自己想要的音色来直接生成mod里的语音的意思吗?
回复

使用道具 举报

7

主题

1150

帖子

3万

积分

游戏终结者

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
13
贡献
100
猫币
1
精华
0
金元
20544
积分
34094

梦想的开始骨灰玩家游戏天王游戏圣者游戏之神官方群水友

QQ
 楼主| 发表于 2025-3-30 02:39:06 | 显示全部楼层
徒惹春风笑 发表于 2025-3-30 01:03
支持,这个意思是可以用自己想要的音色来直接生成mod里的语音的意思吗?

这个只是用来批量调用,节省工作量的。真正发挥作用的是GPT-SoVITS,作者有现成的整合包分享,完全免费,就是有一定的显卡门槛,不过我觉得玩上古卷轴的基本是能满足那点配置的
回复

使用道具 举报

50

主题

2284

帖子

5万

积分

玖大猫MOD汉化组

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
270
贡献
276
猫币
14
精华
0
金元
46496
积分
53360
发表于 2025-3-30 10:28:38 | 显示全部楼层
cyh406832098 发表于 2025-3-29 20:55
口型用Runalip批量来,在CK里生成太慢了

说要先转拼音,不会整。
为什么你导出的csv文档,一列是english。另一列是chinese。但是我导出的文档两列都是English的
回复

使用道具 举报

50

主题

2284

帖子

5万

积分

玖大猫MOD汉化组

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
270
贡献
276
猫币
14
精华
0
金元
46496
积分
53360
发表于 2025-3-30 10:49:38 | 显示全部楼层
发现个网站批量转拼音https://www.oktoolbox.com/zh/app/pinyin
回复

使用道具 举报

50

主题

2284

帖子

5万

积分

玖大猫MOD汉化组

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
270
贡献
276
猫币
14
精华
0
金元
46496
积分
53360
发表于 2025-3-30 11:56:27 | 显示全部楼层
点击Runalip生成lip一直是0%,是不是这样的
屏幕截图(22).png
回复

使用道具 举报

7

主题

1150

帖子

3万

积分

游戏终结者

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
13
贡献
100
猫币
1
精华
0
金元
20544
积分
34094

梦想的开始骨灰玩家游戏天王游戏圣者游戏之神官方群水友

QQ
 楼主| 发表于 2025-3-30 12:13:01 | 显示全部楼层
313175162 发表于 2025-3-30 10:28
说要先转拼音,不会整。
为什么你导出的csv文档,一列是english。另一列是chinese。但是我导出的文档两 ...

Runalip是否需要转拼音这点我有些存疑,因为Runalip的原作者是俄罗斯人,他的帖子里有俄文的文本示例,帖子下也有很多其他国家的人发的评论,而我本人亲测,用纯日文文本来给塔尼亚这个日语随从生成口型文件似乎问题不大,每次张嘴都是在有音节的时候,唯一问题就是口型匹配度不如英文。
所以我推测其实口型的主要依据是音频,而不是文本。我不知道语音文本在其中发挥了什么作用,但想想仅靠文本就想生成就是绝对不靠谱的,因为文本最多只能做口型的参照,而做不了语速的参照。我平时做游戏开发或者找github上的这类AI模型玩的时候,从来都是通过语音对口型或者视频对口型,没遇到过文本对口型的
回复

使用道具 举报

7

主题

1150

帖子

3万

积分

游戏终结者

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
13
贡献
100
猫币
1
精华
0
金元
20544
积分
34094

梦想的开始骨灰玩家游戏天王游戏圣者游戏之神官方群水友

QQ
 楼主| 发表于 2025-3-30 12:29:36 | 显示全部楼层
313175162 发表于 2025-3-30 11:56
点击Runalip生成lip一直是0%,是不是这样的

一直是0%八成是不对的,看看CPU占用吧,应该都没在跑,正常不会这么慢的。建议去作者的帖子看看,我也说不好具体问题出在哪,很多人遇到过不同问题
回复

使用道具 举报

7

主题

1150

帖子

3万

积分

游戏终结者

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
13
贡献
100
猫币
1
精华
0
金元
20544
积分
34094

梦想的开始骨灰玩家游戏天王游戏圣者游戏之神官方群水友

QQ
 楼主| 发表于 2025-3-30 14:13:30 | 显示全部楼层
313175162 发表于 2025-3-30 11:56
点击Runalip生成lip一直是0%,是不是这样的

我更新了以下帖子,放上了Runalip测试用例,如果还没研究出来的话可以看看
回复

使用道具 举报

50

主题

2284

帖子

5万

积分

玖大猫MOD汉化组

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
270
贡献
276
猫币
14
精华
0
金元
46496
积分
53360
发表于 2025-3-30 15:23:43 | 显示全部楼层
Error the file "F:\SkyrimSE1597\SkyrimSE\Tools\Runalip\tools\FaceFXWrapper.exe" does not fit.
The file "maleyoungeager utf8TTT222.csv" reading started.
        Removing harmful characters...
        Parsing the file structure...
        2342 lines found...
                Warning: Line 2341 has less than 6(1) columns and will be omitted.
                Warning: Line 2342 has less than 6(1) columns and will be omitted.
        Total 2339 record(-s) initialized.

The file "maleyoungeager utf8TTT222.csv" was successfully opened.
The path "F:\maleyoungeager\" where the audio files are located.
100% [XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX] 2339 / 2339
F:\SkyrimSE1597\SkyrimSE\Tools\Runalip>pause
Press any key to continue . . .

FaceFXWrapper.exe does not fit.不知道怎么回事

回复

使用道具 举报

7

主题

1150

帖子

3万

积分

游戏终结者

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
13
贡献
100
猫币
1
精华
0
金元
20544
积分
34094

梦想的开始骨灰玩家游戏天王游戏圣者游戏之神官方群水友

QQ
 楼主| 发表于 2025-3-30 15:37:06 | 显示全部楼层
313175162 发表于 2025-3-30 15:23
Error the file "F:\SkyrimSE1597\SkyrimSE\Tools\Runalip\tools\FaceFXWrapper.exe" does not fit.
The f ...

看起来是没有找到FaceFXWrapper.exe文件,你看Runalip用例最前面那一条说明,这个东西是必须的,而且必须放在Runalip\Tools文件夹内
回复

使用道具 举报

50

主题

2284

帖子

5万

积分

玖大猫MOD汉化组

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
270
贡献
276
猫币
14
精华
0
金元
46496
积分
53360
发表于 2025-3-30 18:47:37 | 显示全部楼层
cyh406832098 发表于 2025-3-30 15:37
看起来是没有找到FaceFXWrapper.exe文件,你看Runalip用例最前面那一条说明,这个东西是必须的,而且必须 ...

有这个啊,但是部生效,你的没有问题吗
回复

使用道具 举报

50

主题

2284

帖子

5万

积分

玖大猫MOD汉化组

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
270
贡献
276
猫币
14
精华
0
金元
46496
积分
53360
发表于 2025-3-30 19:46:42 | 显示全部楼层
是我路径设定有问题,必须设定到F:\SkyrimSE1597\MO244\mods\maleyoungeager\sound\voice类似的才行,现在能用了
示例
chcp 1251
Runalip -genlips SSE "maleyoungeagerALLCN.csv" "F:\SkyrimSE1597\MO244\mods\maleyoungeager\sound\voice" "F:\lip"
pause
但好像要拼音,因为看窗口在跑全是乱码
回复

使用道具 举报

50

主题

2284

帖子

5万

积分

玖大猫MOD汉化组

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
270
贡献
276
猫币
14
精华
0
金元
46496
积分
53360
发表于 2025-3-30 19:53:20 | 显示全部楼层
你要不要去哔站出个教程,或者我去出一个?
回复

使用道具 举报

7

主题

1150

帖子

3万

积分

游戏终结者

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
13
贡献
100
猫币
1
精华
0
金元
20544
积分
34094

梦想的开始骨灰玩家游戏天王游戏圣者游戏之神官方群水友

QQ
 楼主| 发表于 2025-3-31 00:30:28 | 显示全部楼层
313175162 发表于 2025-3-30 19:53
你要不要去哔站出个教程,或者我去出一个?

你如果想的话可以出一个教程,我其实懒得很,做这个工具是因为有个朋友告诉我Lazy Voice Finder可以批量导出语音名和台词的关联,解决了我最大的问题,而他又需要这类工具,我就做了,不然我都懒得做这个,现在帖子上的流程看起来已经足够完善了,那后续我估计不会再冒头了。
回复

使用道具 举报

7

主题

1150

帖子

3万

积分

游戏终结者

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
13
贡献
100
猫币
1
精华
0
金元
20544
积分
34094

梦想的开始骨灰玩家游戏天王游戏圣者游戏之神官方群水友

QQ
 楼主| 发表于 2025-3-31 00:40:30 | 显示全部楼层
313175162 发表于 2025-3-30 19:46
是我路径设定有问题,必须设定到F:\SkyrimSE1597\MO244\mods\maleyoungeager\sound\voice类似的才行,现在 ...

非英文文本确实会出现乱码,但是文件还是照常生成了,并且实测能在游戏中正常使用,张嘴的节奏也能对上发音。要测试拼音是否更好的话,那得拿一份中文和一份拼音的对比,然后进游戏里看口型匹配程度,如果拼音明显更匹配的话那就说明这些文字起到了作用,如果拼音也不怎么匹配的话,那说明主要参考依据是音频。当然,不过不介意口型匹配度,只介意张没张嘴的话,那不管也行
回复

使用道具 举报

50

主题

2284

帖子

5万

积分

玖大猫MOD汉化组

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

点赞
270
贡献
276
猫币
14
精华
0
金元
46496
积分
53360
发表于 2025-3-31 14:43:48 | 显示全部楼层
cyh406832098 发表于 2025-3-31 00:30
你如果想的话可以出一个教程,我其实懒得很,做这个工具是因为有个朋友告诉我Lazy Voice Finder可以批量 ...

(⊙o⊙)…就是我在N网回复,谢谢大佬的工具很好用。
我研究一下看看要不要出个视频教程,有点繁琐,总一套流程走下来还是很伤脑筋的

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|玖大猫论坛

GMT+8, 2025-7-8 18:18

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.