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