Add files via upload
This commit is contained in:
22
GPT_SoVITS/feature_extractor/whisper_enc.py
Normal file
22
GPT_SoVITS/feature_extractor/whisper_enc.py
Normal file
@@ -0,0 +1,22 @@
|
||||
import torch
|
||||
|
||||
|
||||
def get_model():
|
||||
import whisper
|
||||
model = whisper.load_model("small", device='cpu')
|
||||
|
||||
return model.encoder
|
||||
|
||||
|
||||
def get_content(model=None, wav_16k_tensor=None):
|
||||
from whisper import log_mel_spectrogram, pad_or_trim
|
||||
dev = next(model.parameters()).device
|
||||
mel = log_mel_spectrogram(wav_16k_tensor).to(dev)[:, :3000]
|
||||
# if torch.cuda.is_available():
|
||||
# mel = mel.to(torch.float16)
|
||||
feature_len = mel.shape[-1] // 2
|
||||
assert mel.shape[-1] < 3000, "输入音频过长,只允许输入30以内音频"
|
||||
with torch.no_grad():
|
||||
feature = model(pad_or_trim(mel, 3000).unsqueeze(0))[:1, :feature_len, :].transpose(1,2)
|
||||
return feature
|
||||
|
||||
Reference in New Issue
Block a user