metadata
license: mit
language:
- ko
tags:
- tts
- melotts
- onnx
- korean
- on-device
- android
library_name: onnxruntime
pipeline_tag: text-to-speech
base_model: myshell-ai/MeloTTS-Korean
MeloTTS Korean โ ONNX
MeloTTS Korean ์ฒดํฌํฌ์ธํธ๋ฅผ ONNX ๋ก ๋ณํํ๊ณ ์์ํํ ๋ฐฐํฌ๋ณธ์ ๋๋ค. Android/iOS/์๋ฒ ONNX Runtime ํ๊ฒฝ์์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์๋๋ก FP32 / FP16 / INT8 ์ธ ๊ฐ์ง๋ฅผ ์ ๊ณตํฉ๋๋ค.
ํ์ผ
| ํ์ผ | dtype | ์ฉ๋ | ํฌ๊ธฐ (์ฐธ๊ณ ) |
|---|---|---|---|
melotts_kr_fp32.onnx |
FP32 | ๊ธฐ์ค ์ ํ๋, ์๋ฒ | ~ 170 MB |
melotts_kr_fp16.onnx |
FP16 | GPU / NPU | ~ 85 MB |
melotts_kr_int8.onnx |
INT8 (dynamic) | CPU / Android ์จ๋๋ฐ์ด์ค | ~ 45 MB |
์ ๋ ฅ ์คํ
| ์ด๋ฆ | shape | dtype | ๋น๊ณ |
|---|---|---|---|
x |
[1, T] |
int64 | g2p ํ ํฐ ์ํ์ค |
x_lengths |
[1] |
int64 | ์ค์ ํ ํฐ ๊ธธ์ด |
sid |
[1] |
int64 | ํ์ ID (KR ๊ธฐ๋ณธ 0) |
tone |
[1, T] |
int64 | tone ID (KR ์ 0) |
language |
[1, T] |
int64 | language ID |
bert |
[1, 1024, T] |
float32 | KR ์ zero tensor |
ja_bert |
[1, 768, T] |
float32 | KR ์ zero tensor |
noise_scale |
scalar | float32 | ๊ธฐ๋ณธ 0.6 |
length_scale |
scalar | float32 | ๊ธฐ๋ณธ 1.0 |
noise_scale_w |
scalar | float32 | ๊ธฐ๋ณธ 0.8 |
sdp_ratio |
scalar | float32 | ๊ธฐ๋ณธ 0.2 |
์ถ๋ ฅ
| ์ด๋ฆ | shape | dtype |
|---|---|---|
audio |
[audio_length] |
float32 (waveform, sr=44100) |
๋น ๋ฅธ ์์
import onnxruntime as ort
import numpy as np
sess = ort.InferenceSession("melotts_kr_int8.onnx", providers=["CPUExecutionProvider"])
# ์ ์ฒ๋ฆฌ (g2p) ๋ MeloTTS ์๋ณธ ํ์ดํ๋ผ์ธ ์ฌ์ฌ์ฉ ํ์
audio = sess.run(None, {
"x": x,
"x_lengths": x_lengths,
"sid": np.array([0], dtype=np.int64),
...
})[0]
๋ผ์ด์ ์ค
์๋ณธ MeloTTS ๋ผ์ด์ ์ค(MIT) ๋ฅผ ๋ฐ๋ฆ ๋๋ค.