Views
No views yet
aoiandroid/neutts-jp-150m-onnx/
├── neutts-jp-150m-original.onnx # ONNX model structure (1.75 MB)
├── neutts-jp-150m-original.onnx.data # ONNX model weights (607 MB)
└── README.md # Model cardneutts-jp-150m-original.onnx: ONNX model file containing the graph structure and metadataneutts-jp-150m-original.onnx.data: External data file containing the model weights (large tensor data)README.md: Model documentation and usage instructionspip install onnxruntime transformers torchaudio neucodec soundfile1import onnxruntime as ort
2from transformers import AutoTokenizer
3from neucodec import NeuCodec
4import torch
5import torchaudio
6from torchaudio import transforms as T
7import soundfile as sf
8
9# Load ONNX model
10session = ort.InferenceSession(
11 "neutts-jp-150m-original.onnx",
12 providers=['CPUExecutionProvider']
13)
14
15# Load tokenizer and codec
16tokenizer = AutoTokenizer.from_pretrained(
17 "aoiandroid/neuTTS-JP-150m",
18 trust_remote_code=True
19)
20codec = NeuCodec.from_pretrained("neuphonic/neucodec")
21codec.eval()
22
23# Load and process reference audio
24waveform, sr = torchaudio.load("reference_audio.wav")
25if waveform.shape[0] > 1:
26 waveform = waveform.mean(dim=0, keepdim=True)
27if sr != 16_000:
28 waveform = T.Resample(sr, 16_000)(waveform)
29waveform = waveform.unsqueeze(0)
30
31# Encode reference audio
32with torch.inference_mode():
33 ref_codes = codec.encode_code(waveform).flatten().tolist()
34
35# Tokenize text
36text = "こんにちは、これはテストです。"
37text_ids = tokenizer.encode(text, add_special_tokens=False)
38eos_id = int(tokenizer.eos_token_id)
39input_ids = ref_codes + [eos_id] + text_ids + [eos_id]
40input_ids = torch.tensor([input_ids], dtype=torch.long)
41
42# Generate using ONNX model
43input_ids_np = input_ids.numpy()
44outputs = session.run(None, {'input_ids': input_ids_np})
45logits = outputs[0]
46
47# Get next token (greedy decoding)
48next_token = int(logits[0, -1].argmax())
49# (Repeat generation loop for full sequence)
50
51# Decode audio
52gen_ids = [generated_tokens] # Your generated tokens
53gen_ids_tensor = torch.tensor(gen_ids, dtype=torch.long).unsqueeze(0).unsqueeze(0)
54with torch.inference_mode():
55 audio_data = codec.decode_code(gen_ids_tensor).cpu()
56
57# Save output
58sf.write("output.wav", audio_data[0][0].cpu().numpy(), 24_000)