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

请问48K比特率是否是24bit? #54

Open
lianganbin opened this issue Apr 26, 2023 · 20 comments
Open

请问48K比特率是否是24bit? #54

lianganbin opened this issue Apr 26, 2023 · 20 comments

Comments

@lianganbin
Copy link

请问48K比特率是否是24bit?

@MaxMax2016
Copy link
Collaborator

模型运算用的float,生成的wav也是48K的float,最后是否保存为24bit都行。

@lianganbin
Copy link
Author

感谢回答,我想咨询的是,我准备的素材可否是48 24bit的。是否会被重采成其他的素材?

@MaxMax2016
Copy link
Collaborator

MaxMax2016 commented Apr 26, 2023

可以是48 24bit的, 被重采成16bit

这个是重采样的代码,如果介意int16,可以保存为32bit

def resample_wave(wav_in, wav_out, sample_rate):
wav, _ = librosa.load(wav_in, sr=sample_rate)
wav = wav / np.abs(wav).max() * 0.6
wav = wav / max(0.01, np.max(np.abs(wav))) * 32767 * 0.6
wavfile.write(wav_out, sample_rate, wav.astype(np.int16))

这个是训练加载的代码

def read_wav_np(path):
sr, wav = read(path)
if len(wav.shape) == 2:
wav = wav[:, 0]
if wav.dtype == np.int16:
wav = wav / 32768.0
elif wav.dtype == np.int32:
wav = wav / 2147483648.0
elif wav.dtype == np.uint8:
wav = (wav - 128) / 128.0
wav = wav.astype(np.float32)
return sr, wav

@lianganbin
Copy link
Author

你好,因为我的bit录音的时候就是48k 24bit,所以我可以在训练前就做好所有的预处理,我的意思是预处理我自己手动作,包括音量标准啥的。因为我用了几种方式训练出来的声音,到最后总是觉得超高频很散,我怀疑就是问题出在重采这一块

@MaxMax2016
Copy link
Collaborator

哦,现在训练代码用的scipy.wave.read,它只支持16bit和32bit,需要修改代码支持24bit

@lianganbin
Copy link
Author

就是,我录音采用32bit就可以对吗,或者我输出48 32bit代码是支持32bit的对吗

@MaxMax2016
Copy link
Collaborator

你好,因为我的bit录音的时候就是48k 24bit,所以我可以在训练前就做好所有的预处理,我的意思是预处理我自己手动作,包括音量标准啥的。因为我用了几种方式训练出来的声音,到最后总是觉得超高频很散,我怀疑就是问题出在重采这一块

24bit也可以转换为32bit的吧

@lianganbin
Copy link
Author

嗯嗯,可以转的,往上转肯定比往下转好。就是训练是可以基于 48k 32bit训练的嘛!对吗?那么预训练的文件是否有讲究?

@MaxMax2016
Copy link
Collaborator

要训练预训练模型对的话,音色要覆盖全,音高要覆盖全;训练单发音人的话,音高要覆盖全。音质要好。

@lianganbin
Copy link
Author

意思是,我要用48 32bit的话。练预训练模型是需要我自己训练是吗?我干声素材倒是挺多的, 只是不太懂代码这些。我只懂音频

@MaxMax2016
Copy link
Collaborator

哦,48K预训练模型要5 1之后才能发出来了。现在发的48K模型,复用的16K模型的参数,低频有问题。使用32bit,可以用16bit数据训练的预训练模型,模型都是用float训练的。

@lianganbin
Copy link
Author

就是我有48 32bit的话,我可以自己做48K的模型对不对?只要够多?多人的声音是否OK?

@lianganbin
Copy link
Author

非常抱歉,我问的问题可能相对太小白了。但是真心想弄懂这里面的区别,所以问题可能太傻瓜了。

@MaxMax2016
Copy link
Collaborator

就是我有48 32bit的话,我可以自己做48K的模型对不对?只要够多?多人的声音是否OK?

是的,可以是多人的

@lianganbin
Copy link
Author

就是我可以把很多人的干声,不管男的女的各种语言各种发音,只要是高质量的48k 32bit放在集里面一起跑?然后代码改成48k 32bit。然后回头这个模型就能当做我的预模型?是这个理解方式吗?

@MaxMax2016
Copy link
Collaborator

就是我可以把很多人的干声,不管男的女的各种语言各种发音,只要是高质量的48k 32bit放在集里面一起跑?然后代码改成48k 32bit。然后回头这个模型就能当做我的预模型?是这个理解方式吗?

是的,只是不用改代码,之前说改代码是不支持24bit

@lianganbin
Copy link
Author

那么,我是不是不用加载预训练模型?我指的是我自己训练48 32bit的模型

@MaxMax2016
Copy link
Collaborator

数据够是可以的,至少无重复的wav 5000条;一般歌里面都大量重复的句子。

@lianganbin
Copy link
Author

明白了,也就是说我们现在项目里这个48K的模型还没弄好对吗

@MaxMax2016
Copy link
Collaborator

是的,之前弄的48K有问题

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

2 participants