File size: 1,213 Bytes
20d6bb2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import os
import torch
import sys
import librosa
sys.path.append('../OpenVoice')
from openvoice import se_extractor
from openvoice.api import ToneColorConverter
ckpt_converter = '../OpenVoice/checkpoints_v2/converter'
device = "cuda:0" if torch.cuda.is_available() else "cpu"
tone_color_converter = ToneColorConverter(f'{ckpt_converter}/config.json', device=device)
tone_color_converter.load_ckpt(f'{ckpt_converter}/checkpoint.pth')
def convert(source_path, reference_path, output_path):
target_se, audio_name = se_extractor.get_se(reference_path, tone_color_converter, vad=False)
source_se, audio_name = se_extractor.get_se(source_path, tone_color_converter, vad=False)
tone_color_converter.convert(
audio_src_path=source_path,
src_se=source_se,
tgt_se=target_se,
output_path=output_path,
message="@Myshell",)
ref_wav_16k, _ = librosa.load(reference_path, sr=16000)
output_wav_16k, _ = librosa.load(output_path, sr=16000)
ref_wav_16k = torch.tensor(ref_wav_16k).unsqueeze(0)
output_wav_16k = torch.tensor(output_wav_16k).unsqueeze(0)
return ref_wav_16k, output_wav_16k |