FastSpeech2 icon indicating copy to clipboard operation
FastSpeech2 copied to clipboard

My synthetic voice is bad with sampling_rate 16k model in data Aishell3

Open Tian14267 opened this issue 3 years ago • 44 comments

Hi ,Thank you for great work. But I get a bad with my model. I train the model with sampling_rate=16k with AiShell3 data. And my train epoch is 150+ (almost 150000+step, my batch is 90). And Loss in train and val is: Validation Step 154000, Total Loss: 2.2709, Mel Loss: 0.6038, Mel PostNet Loss: 0.6033, Pitch Loss: 0.4297, Energy Loss: 0.5449, Duration Loss: 0.0891

my synthetic voice is like this : synthetic voice.zip

Can you help me to know how to fix it ?

My vocoder is your HIFiGan model with sampling_rate=22050, and I just change it to 16k in synthetic . Here is my training config (picture): 1 2 3

Here is my vocoder config: 4

Tian14267 avatar Dec 02 '21 01:12 Tian14267

作者给的参数不用改的。batch size一般是2的次方,90不合适。数据集一般还是重采样成22050的比较方便,不然有很多小问题。 另外可以试试标贝数据集,比aishell好很多,电音什么的也没有

yileld avatar Dec 02 '21 03:12 yileld

作者给的参数不用改的。batch size一般是2的次方,90不合适。数据集一般还是重采样成22050的比较方便,不然有很多小问题。 另外可以试试标贝数据集,比aishell好很多,电音什么的也没有

你好,非常感觉你的回复。我主要有以下情况: 1:batch size这个可以改。但是作者文章里面是12,这个也不是2的次方。所以这个应该不是主要问题。 2:数据采样到22050自然可以,但是我这边的需求就是,在8k和16k的数据上进行训练和实现。16k是我的需求。 3:标贝数据集,是那个一个女音说话人,一万条语音的那个吧,大概十来个小时的那个。首先,那个是单说话人;其次,我训练过,22050采样率。但是出来的效果很不好。训练的总loss也是介于2、3左右下不去。MFA的效果我看也没啥问题。

我有一个问题,我如果训练16k的模型,那我的vocoder是否需要训练一个16k的?也就是HiFiGAN。

Tian14267 avatar Dec 02 '21 06:12 Tian14267

作者给的参数不用改的。batch size一般是2的次方,90不合适。数据集一般还是重采样成22050的比较方便,不然有很多小问题。 另外可以试试标贝数据集,比aishell好很多,电音什么的也没有

你好,非常感觉你的回复。我主要有以下情况: 1:batch size这个可以改。但是作者文章里面是12,这个也不是2的次方。所以这个应该不是主要问题。 2:数据采样到22050自然可以,但是我这边的需求就是,在8k和16k的数据上进行训练和实现。16k是我的需求。 3:标贝数据集,是那个一个女音说话人,一万条语音的那个吧,大概十来个小时的那个。首先,那个是单说话人;其次,我训练过,22050采样率。但是出来的效果很不好。训练的总loss也是介于2、3左右下不去。MFA的效果我看也没啥问题。

我有一个问题,我如果训练16k的模型,那我的vocoder是否需要训练一个16k的?也就是HiFiGAN。

这个我说不准了,我重新训练过hifigan,不过没有采样率的原因。 你如果训练可以试试hifigan v3,效果差不多而且快很多。 我推荐标贝是因为aishell数据集质量太差了,你重新训vocoder的时候记得不要只用aishell,不然效果很差。

yileld avatar Dec 02 '21 06:12 yileld

作者给的参数不用改的。batch size一般是2的次方,90不合适。数据集一般还是重采样成22050的比较方便,不然有很多小问题。 另外可以试试标贝数据集,比aishell好很多,电音什么的也没有

你好,非常感觉你的回复。我主要有以下情况: 1:batch size这个可以改。但是作者文章里面是12,这个也不是2的次方。所以这个应该不是主要问题。 2:数据采样到22050自然可以,但是我这边的需求就是,在8k和16k的数据上进行训练和实现。16k是我的需求。 3:标贝数据集,是那个一个女音说话人,一万条语音的那个吧,大概十来个小时的那个。首先,那个是单说话人;其次,我训练过,22050采样率。但是出来的效果很不好。训练的总loss也是介于2、3左右下不去。MFA的效果我看也没啥问题。 我有一个问题,我如果训练16k的模型,那我的vocoder是否需要训练一个16k的?也就是HiFiGAN。

这个我说不准了,我重新训练过hifigan,不过没有采样率的原因。 你如果训练可以试试hifigan v3,效果差不多而且快很多。 我推荐标贝是因为aishell数据集质量太差了,你重新训vocoder的时候记得不要只用aishell,不然效果很差。

好的,非常感谢。我还有个问题: 1:你标贝数据训练的fastspeech2,是从step 0 开始训练的嘛,还是基于作者公开的step 600000 模型训练的? 2:hifigan v3训练的话,请问有没有建议数据集?标贝数据就一万条,感觉不够啊。你是哪些数据合起来训练的?你训练出的vocoder效果如何?

Tian14267 avatar Dec 02 '21 07:12 Tian14267

作者给的参数不用改的。batch size一般是2的次方,90不合适。数据集一般还是重采样成22050的比较方便,不然有很多小问题。 另外可以试试标贝数据集,比aishell好很多,电音什么的也没有

你好,非常感觉你的回复。我主要有以下情况: 1:batch size这个可以改。但是作者文章里面是12,这个也不是2的次方。所以这个应该不是主要问题。 2:数据采样到22050自然可以,但是我这边的需求就是,在8k和16k的数据上进行训练和实现。16k是我的需求。 3:标贝数据集,是那个一个女音说话人,一万条语音的那个吧,大概十来个小时的那个。首先,那个是单说话人;其次,我训练过,22050采样率。但是出来的效果很不好。训练的总loss也是介于2、3左右下不去。MFA的效果我看也没啥问题。 我有一个问题,我如果训练16k的模型,那我的vocoder是否需要训练一个16k的?也就是HiFiGAN。

这个我说不准了,我重新训练过hifigan,不过没有采样率的原因。 你如果训练可以试试hifigan v3,效果差不多而且快很多。 我推荐标贝是因为aishell数据集质量太差了,你重新训vocoder的时候记得不要只用aishell,不然效果很差。

好的,非常感谢。我还有个问题: 1:你标贝数据训练的fastspeech2,是从step 0 开始训练的嘛,还是基于作者公开的step 600000 模型训练的? 2:hifigan v3训练的话,请问有没有建议数据集?标贝数据就一万条,感觉不够啊。你是哪些数据合起来训练的?

1.从头训练的 2.我后来都只用标贝的,效果还行,其他数据集质量一般都没用。你如果要加的话还有aidatatang_200zh、aishell 1、magicdata、thchs30、primewords、ST-CMDS,而且训练声码器只要有音频文件就够了啊,不用语音合成数据集,语音识别的、普通人声的也行

yileld avatar Dec 02 '21 08:12 yileld

好的,非常感觉。我先试试哈。

Tian14267 avatar Dec 02 '21 08:12 Tian14267

您好我用的标贝的数据集配置文件格式按照AISHELL 使用标贝提供的interval 使用的AISHELL 提供的词汇库 缺少和标贝一致的 儿化音词汇库 我把它添加在pinyin.py 我的代码可以train 但是 在第五代出现nan 断裂 我不知道为啥会出现这样的 情况 请问你在用标贝和该FastSpeech2 结合过程中是如何处理的 谢谢

yanzhuangzhuang-beep avatar Dec 02 '21 10:12 yanzhuangzhuang-beep

您好我用的标贝的数据集配置文件格式按照AISHELL 使用标贝提供的interval 使用的AISHELL 提供的词汇库 缺少和标贝一致的 儿化音词汇库 我把它添加在pinyin.py 我的代码可以train 但是 在第五代出现nan 断裂 我不知道为啥会出现这样的 情况 请问你在用标贝和该FastSpeech2 结合过程中是如何处理的 谢谢

我没试过你这种。你可以看看MFA的文档,简单的,命令用mfa train而不是作者说的mfa align。我记得是“mfa train input_wav_path lexicon_path output_path"这样就行了

yileld avatar Dec 02 '21 11:12 yileld

您好我用的标贝的数据集配置文件格式按照AISHELL 使用标贝提供的interval 使用的AISHELL 提供的词汇库 缺少和标贝一致的 儿化音词汇库 我把它添加在pinyin.py 我的代码可以train 但是 在第五代出现nan 断裂 我不知道为啥会出现这样的 情况 请问你在用标贝和该FastSpeech2 结合过程中是如何处理的 谢谢

我不知道你有没注意过标贝的interval ,它里面的拼音和汉字有点不对。部分字的拼音有问题。所以我使用python的拼音库重新处理的。我使用的就是aishell的词库。

Tian14267 avatar Dec 02 '21 11:12 Tian14267

各位好,我又重新对采样率为16k的aishell3数据进行实验。目前还是无法复现出作者的效果。相关配置还是如上所示。请问这是什么情况?有什么建议吗?下面是合成出来的语音: 哈尔滨今天晴,十度到二十二度,南风三级,空气质量良。.zip (下载解压就是语音) 语谱图如下: 哈尔滨今天晴,十度到二十二度,南风三级,空气质量良。

我的相关16k的 TextGrid在下面链接中: https://pan.baidu.com/s/1qspaGr3KKCwtt4B86f6DOQ 请问各位大神,能否帮忙看下啥原因呢? @yileld @yanzhuangzhuang-beep @ming024 @cyhuang-tw

Tian14267 avatar Dec 02 '21 12:12 Tian14267

光改参数没用的,代码里也有。原作者的preprocessor.py 172行要改成wav, _ = librosa.load(wav_path, self.sampling_rate),因为没参数的话还是默认22050 read的

yileld avatar Dec 03 '21 00:12 yileld

光改参数没用的,代码里也有。原作者的preprocessor.py 172行要改成wav, _ = librosa.load(wav_path, self.sampling_rate),因为没参数的话还是默认22050 read的

天哪,非常感谢。这个地方还真没注意到。我立马调整一下。 还有一个问题,想要问一下大神。我用标贝数据训练了模型,训练epoch约150。模型合成出来的语音,前半段还可以听。后半段完全没法听。不知道大神能不能指点一下。下面是我的语音: 哈尔滨今天晴,十度到二十二度,南风三级,空气质量良。.zip

语谱图在这: 哈尔滨今天晴,十度到二十二度,南风三级,空气质量良。 非常期望大神指点一二

Tian14267 avatar Dec 03 '21 01:12 Tian14267

我的标贝数据没有跑通,在get_align 代码中 我师兄说标贝数据不是整形数据存储的格式 所以所以max_value=32768 不正确 max_value=1(浮点型数据) 在处理后的raw_data .wav文件声音存在 说明此步骤执行没有出错 标贝本身的采样率是22050并不是48000请注意 如果有人愿意分享BiaoBei MFA后的结果我可以试试 因为·我的MFA train_and_align 出现错误 实验停滞

yanzhuangzhuang-beep avatar Dec 03 '21 06:12 yanzhuangzhuang-beep

你好。你说的这个整形和浮点型的数据存储的格式,我感觉应该不是本处问题的主要原因。我这边目前出现的问题是,合成的语音前半段正常,后半段不正常。这问题存在于我的22k标贝数据的模型中,同样也存在于我的16k的AISHELL3数据模型中。我训练的16k的AISHELL3的模型,也是一样的情况。这个很奇怪。我目前没发现原因所在。我训练16k的AISHELL3数据模型,其Loss情况如下: 1

另外,附录出我的22K的标贝TextGrid数据。 链接:https://pan.baidu.com/s/1NhAvfB7ZXcxvFAOUTnDMGA 提取码:d7i1 你可以试一下。有结果的话,麻烦各位说一下哈。共同学习下。

Tian14267 avatar Dec 04 '21 13:12 Tian14267

光改参数没用的,代码里也有。原作者的preprocessor.py 172行要改成wav, _ = librosa.load(wav_path, self.sampling_rate),因为没参数的话还是默认22050 read的

你好,非常抱歉又来打扰你。我修改了preprocessor.py 172行的问题,训练出来的模型,合成效果是,前半段语音正常,后半段语音不正常。情况和我22k的标贝数据训练出的模型效果一样。请问能否给与一下指点。这个问题我真的很困扰。

Tian14267 avatar Dec 04 '21 13:12 Tian14267

光改参数没用的,代码里也有。原作者的preprocessor.py 172行要改成wav, _ = librosa.load(wav_path, self.sampling_rate),因为没参数的话还是默认22050 read的

你好,非常抱歉又来打扰你。我修改了preprocessor.py 172行的问题,训练出来的模型,合成效果是,前半段语音正常,后半段语音不正常。情况和我22k的标贝数据训练出的模型效果一样。请问能否给与一下指点。这个问题我真的很困扰。

这个我说不准了呀,我只能保证你只有采样率相关的改动的话是可以训练成功的。 是不是数据集对标点的处理有问题,我看音频似乎是从逗号开始出问题的

yileld avatar Dec 04 '21 14:12 yileld

@Tian14267 我使用了你提供的标贝textGrid 得到的结果和你的一样 遇到标点符号出现问题 感知出错 你的MFA是如何得到的 为什么里面没有停顿(下面是我测试的结果) Biaobei.zip

yanzhuangzhuang-beep avatar Dec 10 '21 05:12 yanzhuangzhuang-beep

@Tian14267 下面是我AISHELL3得到的结果 AISHELL3.zip 测试“哈尔滨天气晴”这句话 经过多个epoch 可以发音大多中文 但是数字”二“不可以所以在那里出错 综上我推断你出现的问题后半句发音差 一方面是你的textgrid没有停顿 另一方面 是你训练的epoch不够多 如果我有好的实验结果会在此通知你 但是数字在发音数据集中占比本身比较少 所以请你换其他中文测试更合适

yanzhuangzhuang-beep avatar Dec 10 '21 07:12 yanzhuangzhuang-beep

@yileld 请问您的BiaoBei在长数据的语音合成表现如何 比如“春眠不觉晓,处处闻啼鸟,夜来风雨声,花落知多少。”20字左右的长句子

yanzhuangzhuang-beep avatar Dec 12 '21 05:12 yanzhuangzhuang-beep

@yileld 请问您的BiaoBei在长数据的语音合成表现如何 比如“春眠不觉晓,处处闻啼鸟,夜来风雨声,花落知多少。”20字左右的长句子

没问题的,一般大于80个音素才会出问题

yileld avatar Dec 12 '21 05:12 yileld

谢谢您的回答 请问如何使用MFA 才会得到带有sp的对齐文件 我使用 @Tian14267 的textgrid 训练和 我自己MFA的textgrid 其中都不包含sp 导致推理中遇到标点符号记录为sp 无反应 。 我将推理中遇到标点符号注释为sp注释 然后语音合成效果有所好转但是 没有sp肯定会影响节奏之类的 。 如果您能提供·textgrid 或者提供如何使用mfa 会带有sp的数据 非常感谢您一路的指导意见

yanzhuangzhuang-beep avatar Dec 13 '21 07:12 yanzhuangzhuang-beep

谢谢您的回答 请问如何使用MFA 才会得到带有sp的对齐文件 我使用 @Tian14267 的textgrid 训练和 我自己MFA的textgrid 其中都不包含sp 导致推理中遇到标点符号记录为sp 无反应 。 我将推理中遇到标点符号注释为sp注释 然后语音合成效果有所好转但是 没有sp肯定会影响节奏之类的 。 如果您能提供·textgrid 或者提供如何使用mfa 会带有sp的数据 非常感谢您一路的指导意见

TextGrid.zip

我也只是个猜想的原因,并不是很确定,这是我的textgrid

yileld avatar Dec 13 '21 07:12 yileld

谢谢您的回答 请问如何使用MFA 才会得到带有sp的对齐文件 我使用 @Tian14267 的textgrid 训练和 我自己MFA的textgrid 其中都不包含sp 导致推理中遇到标点符号记录为sp 无反应 。 我将推理中遇到标点符号注释为sp注释 然后语音合成效果有所好转但是 没有sp肯定会影响节奏之类的 。 如果您能提供·textgrid 或者提供如何使用mfa 会带有sp的数据 非常感谢您一路的指导意见

TextGrid.zip

我也只是个猜想的原因,并不是很确定,这是我的textgrid

@yileld 感谢您的textgrid 您的数据结果很好 您应该使用AISHELL3的词典 然后自己做的MFA吧 请问您做MFA的停顿sp怎么出来的,就是您使用的conda 命令的mfa还是 自己下的包 如果可以的话可以帮忙描述一下过程(mfa_train or mfa_align)。因为最近我的重点是做自己的数据集 BiaoBei只是一个临时的替代品

yanzhuangzhuang-beep avatar Dec 14 '21 03:12 yanzhuangzhuang-beep

谢谢您的回答 请问如何使用MFA 才会得到带有sp的对齐文件 我使用 @Tian14267 的textgrid 训练和 我自己MFA的textgrid 其中都不包含sp 导致推理中遇到标点符号记录为sp 无反应 。 我将推理中遇到标点符号注释为sp注释 然后语音合成效果有所好转但是 没有sp肯定会影响节奏之类的 。 如果您能提供·textgrid 或者提供如何使用mfa 会带有sp的数据 非常感谢您一路的指导意见

TextGrid.zip 我也只是个猜想的原因,并不是很确定,这是我的textgrid

@yileld 感谢您的textgrid 您的数据结果很好 您应该使用AISHELL3的词典 然后自己做的MFA吧 请问您做MFA的停顿sp怎么出来的,就是您使用的conda 命令的mfa还是 自己下的包 如果可以的话可以帮忙描述一下过程(mfa_train or mfa_align)。因为最近我的重点是做自己的数据集 BiaoBei只是一个临时的替代品

是的,命令就是mfa train corpus_path lexicon_path output_path,根据官方doc安装的,是用conda

yileld avatar Dec 14 '21 06:12 yileld

谢谢您的回答 请问如何使用MFA 才会得到带有sp的对齐文件 我使用 @Tian14267 的textgrid 训练和 我自己MFA的textgrid 其中都不包含sp 导致推理中遇到标点符号记录为sp 无反应 。 我将推理中遇到标点符号注释为sp注释 然后语音合成效果有所好转但是 没有sp肯定会影响节奏之类的 。 如果您能提供·textgrid 或者提供如何使用mfa 会带有sp的数据 非常感谢您一路的指导意见

TextGrid.zip 我也只是个猜想的原因,并不是很确定,这是我的textgrid

@yileld 感谢您的textgrid 您的数据结果很好 您应该使用AISHELL3的词典 然后自己做的MFA吧 请问您做MFA的停顿sp怎么出来的,就是您使用的conda 命令的mfa还是 自己下的包 如果可以的话可以帮忙描述一下过程(mfa_train or mfa_align)。因为最近我的重点是做自己的数据集 BiaoBei只是一个临时的替代品

请问你有找到可以带有sp之类的textgrid方法吗?我这边的textgrid全部都是不包含sp的

Tian14267 avatar Jan 25 '22 05:01 Tian14267

mark

leslie2046 avatar Apr 10 '22 13:04 leslie2046

谢谢您的回答 请问如何使用MFA 才会得到带有sp的对齐文件 我使用 @Tian14267 的textgrid 训练和 我自己MFA的textgrid 其中都不包含sp 导致推理中遇到标点符号记录为sp 无反应 。 我将推理中遇到标点符号注释为sp注释 然后语音合成效果有所好转但是 没有sp肯定会影响节奏之类的 。 如果您能提供·textgrid 或者提供如何使用mfa 会带有sp的数据 非常感谢您一路的指导意见

TextGrid.zip

我也只是个猜想的原因,并不是很确定,这是我的textgrid

@yileld 您好,我使用了1.0.1, 1.1.0.beta2, 2.0.0.rc3在linux上还报错,mac上对齐结果都不理想, 有的textgrids出现严重的错误,请问您使用的mfa是哪个版本?感谢

tobechao avatar Apr 13 '22 07:04 tobechao

光改参数没用的,代码里也有。原作者的preprocessor.py 172行要改成wav, _ = librosa.load(wav_path, self.sampling_rate),因为没参数的话还是默认22050 read的

天哪,非常感谢。这个地方还真没注意到。我立马调整一下。 还有一个问题,想要问一下大神。我用标贝数据训练了模型,训练epoch约150。模型合成出来的语音,前半段还可以听。后半段完全没法听。不知道大神能不能指点一下。下面是我的语音: 哈尔滨今天晴,十度到二十二度,南风三级,空气质量良。.zip

语谱图在这: 哈尔滨今天晴,十度到二十二度,南风三级,空气质量良。 非常期望大神指点一二

@Tian14267 Hi, I faced the same problem with yours. My audio is not good at long sentence: first half of speech is good but the second half is strange and not be heard clearly. Do you fix it?

icyda17 avatar Apr 21 '22 06:04 icyda17

@Tian14267 hello , could you pls tell me how to solve it I faced the same problem?

zaynabmu avatar Jun 19 '22 14:06 zaynabmu

这是来自QQ邮箱的自动回复邮件。邮件已收到,一般不会登陆邮箱查看,如果是重要邮件,请微信或者qq联系我及时查看

Numb523 avatar Jun 19 '22 14:06 Numb523