4.19 GB
90 files
Updated about 1 month ago
Ctrl+K
| Name | Size | Uploaded | Xet hash |
|---|---|---|---|
| piper | 87 items | ||
| README.md | 12.1 kB xet | e76ce169 | |
| hash.py | 2.8 kB xet | ed241516 | |
| sherpa.zip | 1.46 GB xet | 5798417d |
Piper & Sherpa-ONNX Speech Models Hub
A production-ready collection of optimized ONNX Text-to-Speech (TTS) models based on the Piper (VITS) architecture. This repository provides pre-trained voices across Vietnamese (vi), English (en), and Indonesian (id), structured with full compatibility for both Piper TTS and Sherpa-ONNX runtimes.
Key Highlights
- Neural Architecture: VITS (Variational Inference with Adversarial Learning for End-to-End Text-to-Speech).
- Audio Quality: Native 22,050 Hz sampling rate, 16-bit mono PCM.
- Strict Configuration Integrity: Every single
.onnxvoice is paired with an exact.onnx.jsonphoneme configuration file to prevent runtime symbol mismatches. - Multi-Runtime Ready: Native support for CPU execution, ONNX Runtime GPU (CUDA/DirectML), OpenVINO acceleration, and Sherpa-ONNX embedded deployments.
- Deduplicated & Versioned: Models with identical naming but distinct fine-tuned weights are cleanly separated and indexed (
_1,_2).
Directory Structure
models/model/
├── piper/
│ ├── voice.json # Voice catalog & metadata (44 models)
│ ├── vi/ # Vietnamese voices (40 models)
│ │ ├── <model_name>.onnx
│ │ └── <model_name>.onnx.json
│ ├── en/ # English voices (3 models)
│ │ ├── john.onnx (+ .json)
│ │ ├── mattheo.onnx (+ .json)
│ │ └── mattheo1.onnx (+ .json)
│ └── id/ # Indonesian voices (1 model)
│ ├── goreng.onnx
│ └── goreng.onnx.json
├── sherpa/ # Sherpa-ONNX converted models (25 voices)
│ ├── tokens.txt # Global phoneme tokens symbol table
│ └── <model_name>.onnx
└── README.md
Available Voice Models
1. Vietnamese Voices (piper/vi/)
Tổng cộng: 40 giọng tiếng Việt tối ưu.
| Model ID | Tên hiển thị | Giới tính | Vùng miền / Accent | Mô tả chi tiết phong cách |
|---|---|---|---|---|
adam |
A Đam | Nam ♂ | Miền Bắc | Giọng nam truyền cảm, phong cách tự sự, đọc truyện |
banmai |
Ban Mai | Nữ ♀ | Miền Bắc | Giọng nữ trẻ trung, thanh thoát, đọc tin tức chuẩn |
calmwoman |
Thanh Yên | Nữ ♀ | Chuẩn / Toàn quốc | Giọng nữ điềm tĩnh, nhẹ nhàng, trầm ấm |
chieuthanh |
Chiêu Thành | Nam ♂ | Miền Nam | Giọng nam miền Nam, tự nhiên, phóng khoáng |
cuc |
Cúc | Nữ ♀ | Miền Bắc | Giọng nữ dịu dàng, trong sáng, dễ thương |
deepman |
Trầm Nam | Nam ♂ | Miền Bắc | Giọng nam trầm ấm, phong cách radio đêm |
doanhdoanh |
Doanh Doanh | Nữ ♀ | Miền Bắc | Giọng nữ đàm thoại, tự nhiên, gần gũi |
dungdien |
Dũng Điện | Nam ♂ | Miền Bắc | Giọng nam kể chuyện, phong cách diễn thuyết |
duyoryx |
Duy (Siêu Trầm) | Nam ♂ | Miền Bắc | Giọng nam siêu trầm, dày và uy lực |
hoaimy |
Hoài My | Nữ ♀ | Miền Bắc | Giọng nữ đọc truyện, ấm áp, truyền cảm |
hongtuyen |
Hồng Tuyến | Nữ ♀ | Miền Bắc | Giọng nữ thuyết minh, rõ ràng, rành mạch |
huyenngoc |
Huyền Ngọc | Nữ ♀ | Miền Bắc | Giọng nữ đọc sách nói, nhẹ nhàng, sâu lắng |
kinhphat |
Kinh Phật | Nam ♂ | Chuẩn / Toàn quốc | Giọng đọc tụng kinh, trang nghiêm, thiền định |
lacphi |
Lạc Phi | Nam ♂ | Miền Bắc | Giọng nam trẻ, tự nhiên, thuyết minh |
leyen |
Lệ Yến | Nữ ♀ | Miền Bắc | Giọng nữ kể chuyện, đằm thắm, biểu cảm |
maiphuong |
Mai Phương | Nữ ♀ | Miền Bắc | Giọng nữ thanh thoát, nhẹ nhàng, duyên dáng |
mailinh |
Mai Linh | Nữ ♀ | Miền Bắc | Trò chuyện tự nhiên |
manhdung |
Mạnh Dũng | Nam ♂ | Miền Bắc | Giọng nam chững chạc, tự tin, phát thanh viên |
minhkhang |
Minh Khang | Nam ♂ | Miền Bắc | Giọng nam năng động, tư liệu kiến thức |
minhquang |
Minh Quang | Nam ♂ | Miền Bắc | Giọng nam chuẩn mực, dứt khoát, tin tức |
minhthu |
Minh Thu | Nữ ♀ | Miền Bắc | Giọng nữ trẻ, tươi tắn, diễn cảm |
mytam |
Mỹ Tâm (Miền Nam) | Nữ ♀ | Miền Nam | Giọng nữ miền Nam, ngân vang, giàu cảm xúc |
mytamnew |
Mỹ Tâm (Miền Bắc) | Nữ ♀ | Miền Bắc | Giọng nữ biến thể Bắc, âm sắc mượt mà |
namminh |
Nam Minh | Nam ♂ | Miền Bắc | Giọng nam rõ ràng, khúc chiết, chỉn chu |
namtutin |
Nam Tự Tin | Nam ♂ | Miền Bắc | Giọng nam mạnh mẽ, cuốn hút, truyền cảm hứng |
ngochuyen |
Ngọc Huyền | Nữ ♀ | Miền Bắc | Giọng nữ review phim gốc, thanh thoát, trong trẻo |
ngochuyennew |
Ngọc Huyền (New) | Nữ ♀ | Miền Bắc | Giọng nữ review phim mới, âm lượng nén căng, rõ nét |
ngochuyenv2 |
Ngọc Huyền (V2) | Nữ ♀ | Miền Bắc | Giọng nữ review phim v2, nhịp nhanh, bass ấm, đầm giọng |
ngocngan |
Ngọc Ngạn | Nam ♂ | Miền Bắc | Giọng nam kể chuyện truyền cảm, kinh điển, đặc trưng |
phuongtrang |
Phương Trang | Nữ ♀ | Miền Bắc | Giọng nữ dịu dàng, chuẩn mực, dễ nghe |
taian1 |
Tài An (Bản 1) | Nam ♂ | Miền Bắc | Giọng nam tài liệu CD Media, nhịp đọc nhanh hơn, trầm |
taian2 |
Tài An (Bản 2) | Nam ♂ | Miền Bắc | Giọng nam tài liệu CD Media, nhịp từ tốn, truyền cảm |
thanhphuong |
Thanh Phương | Nữ ♀ | Miền Bắc | Giọng nữ tổng đài, trợ lý ảo Viettel, chuẩn xác |
thientam |
Thiện Tâm | Nam ♂ | Miền Nam | Giọng nam miền Nam, ấm áp, điềm đạm, mộc mạc |
thutrang |
Thu Trang | Nữ ♀ | Miền Bắc | Giọng nữ phát thanh chuẩn bản gốc Piper (25hours base) |
tranthanh |
Trấn Thành | Nam ♂ | Miền Nam | Giọng nam miền Nam, hoạt ngôn, giải trí, sôi nổi |
trumpviet |
Trump (Việt Hóa) | Nam ♂ | Miền Bắc | Phong cách lồng tiếng parody, dứt khoát, kịch tính |
vietthao |
Việt Thảo | Nam ♂ | Miền Nam | Giọng nam miền Nam, MC talkshow, dí dỏm, hoạt ngôn |
vunga |
Vũ Nga | Nữ ♀ | Miền Bắc | Giọng nữ diễn cảm, tâm sự, giàu cảm xúc |
yannew |
Yan News | Nữ ♀ | Miền Bắc | Giọng nữ tin tức ngắn, tóm tắt tin tức, hiện đại |
2. English Voices (piper/en/)
Tổng cộng: 3 giọng tiếng Anh.
| Model ID | Tên hiển thị | Giới tính | Ngôn ngữ | Mô tả chi tiết |
|---|---|---|---|---|
john |
John (English) | Nam ♂ | English (en) |
Standard American English male voice |
mattheo |
Mattheo (English) | Nam ♂ | English (en) |
Clear instructional English male voice |
mattheo1 |
Mattheo 2 (English) | Nam ♂ | English (en) |
Conversational English male voice |
3. Indonesian Voices (piper/id/)
Tổng cộng: 1 giọng tiếng Indonesia.
| Model ID | Tên hiển thị | Giới tính | Ngôn ngữ | Mô tả chi tiết |
|---|---|---|---|---|
goreng |
Goreng (Indonesian) | Nữ ♀ | Indonesian (id) |
Conversational Indonesian female voice |
Quickstart & Usage
1. Using Piper TTS (Python API)
Install dependencies:
pip install piper-tts
Basic Synthesis to WAV
import wave
from piper import PiperVoice, SynthesisConfig
# Path to model and its paired config
model_path = "piper/vi/banmai.onnx"
config_path = "piper/vi/banmai.onnx.json"
voice = PiperVoice.load(model_path, config_path=config_path)
config = SynthesisConfig(noise_scale=0.667, length_scale=1.0, noise_w=0.8)
text = "Xin chào, đây là giọng đọc thử nghiệm trên hệ thống Piper Text to Speech."
with wave.open("output.wav", "wb") as wav_file:
voice.synthesize_wav(text, wav_file, syn_config=config)
print("Synthesized successfully to output.wav")
Real-time Audio Streaming
import sounddevice as sd
from piper.voice import PiperVoice, SynthesisConfig
voice = PiperVoice.load("piper/vi/banmai.onnx", config_path="piper/vi/banmai.onnx.json")
text = "Hệ thống đang phát trực tiếp âm thanh từ văn bản."
chunks = voice.synthesize(text)
first_chunk = next(chunks)
stream = sd.OutputStream(
samplerate=first_chunk.sample_rate,
channels=first_chunk.sample_channels,
dtype=first_chunk.audio_float_array.dtype
)
stream.start()
stream.write(first_chunk.audio_float_array)
for chunk in chunks:
stream.write(chunk.audio_float_array)
stream.stop()
stream.close()
2. Using Piper via Command Line (CLI)
# Pipe text directly into piper CLI
echo "Xin chào thế giới" | piper \
--model piper/vi/banmai.onnx \
--config piper/vi/banmai.onnx.json \
--output_file output.wav
3. Using Sherpa-ONNX
For embedded systems, mobile devices, or environments where Python bindings for Sherpa-ONNX are preferred:
pip install sherpa-onnx soundfile
import sherpa_onnx as so
import soundfile as sf
tts_config = so.OfflineTtsConfig(
model=so.OfflineTtsModelConfig(
vits=so.OfflineTtsVitsModelConfig(
model="sherpa/banmai.onnx",
tokens="sherpa/tokens.txt",
data_dir=""
)
)
)
tts = so.OfflineTts(config=tts_config)
audio = tts.generate("Xin chào, đây là giọng đọc từ Sherpa ONNX.")
sf.write("sherpa_output.wav", audio.samples, samplerate=audio.sample_rate, subtype="PCM_16")
print("Saved to sherpa_output.wav")
4. Hardware Acceleration (NVIDIA GPU / OpenVINO)
NVIDIA CUDA
To run Piper models on CUDA with ONNX Runtime:
pip install onnxruntime-gpu
Pass use_cuda=True when loading:
voice = PiperVoice.load("piper/vi/banmai.onnx", config_path="piper/vi/banmai.onnx.json", use_cuda=True)
Intel OpenVINO
For Intel CPU/iGPU acceleration:
pip install openvino onnxruntime-openvino
import json
import onnxruntime as ort
from piper import PiperVoice, PiperConfig
with open("piper/vi/banmai.onnx.json", "r", encoding="utf-8") as f:
piper_config = PiperConfig.from_dict(json.load(f))
session = ort.InferenceSession(
"piper/vi/banmai.onnx",
providers=["OpenVINOExecutionProvider"],
provider_options=[{"device_type": "CPU"}]
)
voice = PiperVoice(config=piper_config, session=session)
Technical Specifications
- Input Representation: International Phonetic Alphabet (IPA) tokens mapped via
phoneme_id_map(0–255 indices). - Phonemizer:
espeak-ngwith voice tagsvi(North),vi-vn-x-south(South),en(English),id(Indonesian). - Inference Latency: Real-Time Factor (RTF) < 0.05 on modern 8-core CPUs, < 0.01 on discrete GPUs.
- Model Size: ~63.5 MB per model (FP32 ONNX graph).
Acknowledgments & Credits
- Base neural TTS engine: Rhasspy Piper.
- Vietnamese fine-tuned models: Nghi Studio (NGHI-TTS).
- Sherpa ONNX conversion & engine: Next-gen Kaldi Sherpa-ONNX.
License
This repository and model collection are licensed under the Apache-2.0 License.
- Total size
- 4.19 GB
- Files
- 90
- Last updated
- Sep 9
- Pre-warmed CDN
- US EU US EU