Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

输出的语音中出现了参考音频的内容 #865

Open
ILostMyPig opened this issue Mar 23, 2024 · 16 comments
Open

输出的语音中出现了参考音频的内容 #865

ILostMyPig opened this issue Mar 23, 2024 · 16 comments

Comments

@ILostMyPig
Copy link

ILostMyPig commented Mar 23, 2024

参考音频的文本:头说得没错,对付不讲道理的家伙,刀尖子就是道理。
需要合成的文本:宋 罗大经《鹤林玉露》卷一:“言少不更事之人,无所涵养,而骤膺拔擢,以当重任,力绵才腐,凛凛危亡而曾不知畏也。”
输出的语音:刀尖子就是道理。宋 罗大经《鹤林玉露》卷一:“言少不更事之人,无所涵养,而骤膺拔擢,以当重任,力绵才腐,凛凛危亡而曾不知畏也。”
命令行输出内容正常,没有报错:

实际输入的参考文本: 头说得没错,对付不讲道理的家伙,刀尖子就是道理。
实际输入的目标文本: 宋 罗大经《鹤林玉露》卷一:“言少不更事之人,无所涵养,而骤膺拔擢,以当重任,力绵才腐,凛凛危亡而曾 不知畏也。”
实际输入的目标文本(切句后): 宋 罗大经《鹤林玉露》卷一:“言少不更事之人,无所涵养,而骤膺拔擢,以当重任,力绵才腐,凛凛 危亡而曾不知畏也。”
前端处理后的参考文本:头说得没错,对付不讲道理的家伙,刀尖子就是道理.
实际输入的目标文本(每句): 宋 罗大经《鹤林玉露》卷一:“言少不更事之人,无所涵养,而骤膺拔擢,以当重任,力绵才腐,凛凛危 亡而曾不知畏也。”。
前端处理后的文本(每句): 宋罗大经鹤林玉露卷一,言少不更事之人,无所涵养,而骤膺拔擢,以当重任,力绵才腐,凛凛危亡而曾不知畏也..
 21%|████████████████▎                                                             | 313/1500 [00:02<00:09, 126.41it/s]T2S Decoding EOS [131 -> 455]
 22%|████████████████▊                                                             | 323/1500 [00:02<00:09, 124.92it/s]
0.259   0.052   2.588   0.697

合成其它文本都正常,就这句有问题。

@SapphireLab
Copy link
Contributor

参考泄露的问题时有发生,原因也挺多的,先考虑换个参考吧.

一个比较明确的原因是文本超过音频内容, 那么根据切句,会在每句出现多次泄露。

比如随便找个音频把这两句文本贴上去(文本明显超出音频内容)然后按四句一切就变成了两段,每段开头都会出现 刀尖子就是道理刀尖子就是道理。宋 罗大经《鹤林玉露》卷一:“言少不更事之人,无所涵养,而骤膺拔擢,刀尖子就是道理。以当重任,力绵才腐,凛凛危亡而曾不知畏也。

@ILostMyPig
Copy link
Author

参考泄露的问题时有发生,原因也挺多的,先考虑换个参考吧.

一个比较明确的原因是文本超过音频内容, 那么根据切句,会在每句出现多次泄露。

比如随便找个音频把这两句文本贴上去(文本明显超出音频内容)然后按四句一切就变成了两段,每段开头都会出现 刀尖子就是道理刀尖子就是道理。宋 罗大经《鹤林玉露》卷一:“言少不更事之人,无所涵养,而骤膺拔擢,刀尖子就是道理。以当重任,力绵才腐,凛凛危亡而曾不知畏也。

好的 谢谢

@thom802311
Copy link

有比较好的解决办法吗?我也遇到了这个问题,会反复出现参考文本语音。

@ILostMyPig
Copy link
Author

有比较好的解决办法吗?我也遇到了这个问题,会反复出现参考文本语音。

按照标点符号切割待合成文本,同时选用内容较长的参考文本。测试了近300万字,都没遇到过。
参考文本可以是有标点符号分割的多句,只要总长度大于切割后的待合成文本就行了。

@xihajun
Copy link

xihajun commented Mar 30, 2024

按照标点符号切割待合成文本,同时选用内容较长的参考文本。测试了近300万字,都没遇到过。

不太行诶

@sipeter
Copy link

sipeter commented Mar 31, 2024

有比较好的解决办法吗?我也遇到了这个问题,会反复出现参考文本语音。

按照标点符号切割待合成文本,同时选用内容较长的参考文本。测试了近300万字,都没遇到过。 参考文本可以是有标点符号分割的多句,只要总长度大于切割后的待合成文本就行了。

没太理解这句话的意思,是说:参考文本要大于切割后的合成文本?我一直以为参考文本尽量少,最好是一句话内的。

@velade
Copy link

velade commented Apr 1, 2024

参考泄露的问题时有发生,原因也挺多的,先考虑换个参考吧.

一个比较明确的原因是文本超过音频内容, 那么根据切句,会在每句出现多次泄露。

比如随便找个音频把这两句文本贴上去(文本明显超出音频内容)然后按四句一切就变成了两段,每段开头都会出现 刀尖子就是道理刀尖子就是道理。宋 罗大经《鹤林玉露》卷一:“言少不更事之人,无所涵养,而骤膺拔擢,刀尖子就是道理。以当重任,力绵才腐,凛凛危亡而曾不知畏也。

这应该不是原因,我使用5秒的参考,同一段文字。参考文本的最后一个断句频繁出现在开头。而换成另一个4秒的参考音频,文本量差不多,但是就没有出现了。我使用API调用,文本都是没有切的,无论是用5秒的还是4秒的,待合成的文本一定比参考文本长,但有的参考音频就有问题,有的参考音频就正常。(参考音频是直接从游戏内提取的配音,纯高质量干声,不存在质量不一的情况)

@xihajun
Copy link

xihajun commented Apr 1, 2024

是的感觉和参考音频有关

@Downupanddownup
Copy link
Contributor

把GPT模型的轮数调低一点,或者直接使用底模看看呢?我之前也频繁遇到了这个问题,尤其是训练的人声语速很快的情况下,改用低轮数的GPT模型或直接使用底模,发生频率就降低了。

@velade
Copy link

velade commented Apr 1, 2024

把GPT模型的轮数调低一点,或者直接使用底模看看呢?我之前也频繁遇到了这个问题,尤其是训练的人声语速很快的情况下,改用低轮数的GPT模型或直接使用底模,发生频率就降低了。

感謝你的建議,但是那反而就沒有必要了,本來用這個為的就是高質量克隆聲音,如果只是為了TTS有很多更成熟的。比如那個經常在有聲小說聽到的聲音,就是免費的。以目前來看,效果比這個要穩定得多。如果只是需要配音,大餅+人聲變聲,情感表現和最終效果也要比這個好。我用它只是為了能夠復刻我喜歡的角色的聲音,所以如果是要通過降低相似度甚至直接放棄自己的模型,那就真的沒意義了。我只是太不能理解,為什麼參考語音會被直接混進來?正常來說應該只是用來提取特徵啊?難不成還是用參考語音作為基礎音頻然後改波形實現的TTS?!

@werran2
Copy link

werran2 commented May 6, 2024

把GPT模型的轮数调低一点,或者直接使用底模看看呢?我之前也频繁遇到了这个问题,尤其是训练的人声语速很快的情况下,改用低轮数的GPT模型或直接使用底模,发生频率就降低了。

有改善,但还是时不时出现,为什么会这样呢

@Downupanddownup
Copy link
Contributor

把GPT模型的轮数调低一点,或者直接使用底模看看呢?我之前也频繁遇到了这个问题,尤其是训练的人声语速很快的情况下,改用低轮数的GPT模型或直接使用底模,发生频率就降低了。

有改善,但还是时不时出现,为什么会这样呢

感觉上,如果推理文本和参考文本比较接近,复读推理音频的概率会有提高。不过不同参考音频,出现这种问题的概率不同。我拿游戏配音作为训练素材,SoVITS到100,GPT到10,然后调个不那么容易出现复读问题的参考音频,体感可以将出问题的概率降到5%以内。当然,如果训练素材的音频噪音比较大的话,效果会怎么样,就没试过。

另外,我设计了一个参考音频的筛选工具,可以检查不同参考音频出现复读问题的频率,有兴趣的话,你可以试下看。

#1044

@xihajun
Copy link

xihajun commented May 6, 2024

请问SoVITS到100是什么意思呢 @Downupanddownup

@Downupanddownup
Copy link
Contributor

请问SoVITS到100是什么意思呢 @Downupanddownup

就是100轮的意思,25轮应该也行,不过因为练起来很快,也不像GPT模型那样练高了有比较严重的副作用,所以我一般会练个100轮。

@xihajun
Copy link

xihajun commented May 6, 2024

谢谢!

@bugfly100
Copy link

初来乍到,也碰到了推理结果出来参考音频的问题,搜了下,其他类似的项目似乎没有这个问题,应该不是模型结构的问题,所以在想会不会是训练方式的问题。
在s2的train里面,参考音频和输出结果应该用的是同一段音频,这样会不会导致模型有一定概率会输出参考音频。如果训练时参考音频和输出结果使用不同的音频,结果会不会好一些。刚开始研究代码,可能有理解错误的地方,希望得到大佬们的指导和建议,谢谢🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants