File size: 1,066 Bytes
f810c36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import torch
import torchaudio
from pydub import AudioSegment
import gradio as gr
_original_load = torch.load
def cpu_load(*args, **kwargs):
    kwargs["map_location"] = torch.device('cpu')
    return _original_load(*args, **kwargs)
torch.load = cpu_load

hubert = torch.hub.load("bshall/hubert:main", "hubert_soft", trust_repo=True).cpu()
acoustic = torch.hub.load("bshall/acoustic-model:main", "hubert_soft", trust_repo=True).cpu()
hifigan = torch.hub.load("bshall/hifigan:main", "hifigan_hubert_soft", trust_repo=True).cpu()

def soft_vc(audio_path):
  AudioSegment.from_file(audio_path).set_frame_rate(16000).set_channels(1).export(audio_path, format="wav")
  source = torchaudio.load(audio_path)[0].unsqueeze(0).cpu()
  with torch.inference_mode():
      target = hifigan(acoustic.generate(hubert.units(source)).transpose(1, 2))
  torchaudio.save("output.wav", target.squeeze(0).cpu(), 16000)
  return "output.wav"

gr.Interface(soft_vc,gr.Audio(label="Input Audio",type="filepath"),gr.Audio(label="Output Audio",type="filepath")).launch()