Spaces:
Runtime error
Runtime error
import torch | |
import onnxruntime | |
import numpy as np | |
import argparse | |
import commons | |
import utils | |
from text import text_to_sequence | |
from scipy.io.wavfile import write | |
def get_text(text, hps): | |
text_norm = text_to_sequence(text, hps.data.text_cleaners) | |
if hps.data.add_blank: | |
text_norm = commons.intersperse(text_norm, 0) | |
text_norm = torch.LongTensor(text_norm) | |
return text_norm | |
def main() -> None: | |
parser = argparse.ArgumentParser() | |
parser.add_argument("--model", required=True, help="Path to model (.onnx)") | |
parser.add_argument( | |
"--config-path", required=True, help="Path to model config (.json)" | |
) | |
parser.add_argument( | |
"--output-wav-path", required=True, help="Path to write WAV file" | |
) | |
parser.add_argument("--text", required=True, type=str, help="Text to synthesize") | |
args = parser.parse_args() | |
sess_options = onnxruntime.SessionOptions() | |
model = onnxruntime.InferenceSession(str(args.model), sess_options=sess_options) | |
hps = utils.get_hparams_from_file(args.config_path) | |
phoneme_ids = get_text(args.text, hps) | |
text = np.expand_dims(np.array(phoneme_ids, dtype=np.int64), 0) | |
text_lengths = np.array([text.shape[1]], dtype=np.int64) | |
scales = np.array([0.667, 1.0, 0.8], dtype=np.float32) | |
sid = None | |
audio = model.run( | |
None, | |
{ | |
"input": text, | |
"input_lengths": text_lengths, | |
"scales": scales, | |
"sid": sid, | |
}, | |
)[0].squeeze((0, 1)) | |
write(data=audio, rate=hps.data.sampling_rate, filename=args.output_wav_path) | |
if __name__ == "__main__": | |
main() | |