54
stars
4
commits
3
linked in READMEs
Aug 2, 2026
updated
SOTA-class multilingual TTS at compact scale, packaged for low-resource CPU inference.
Audio8 TTS Preview is a 0.6B-parameter multilingual text-to-speech model with zero-shot voice cloning. This repository provides its CPU-oriented ONNX deployment: weight-only INT4 DualAR models, an FP16 neural audio codec, the tokenizer, and the optional FP16 encoder used to register reference voices.
Model files only. Inference, streaming service, and voice-registration code live in the Audio8 TTS repository.
| Deployment characteristic | |
|---|---|
| CPU native | ONNX Runtime CPUExecutionProvider; no CUDA requirement |
| Small runtime | No PyTorch, Transformers, or Hugging Face Hub dependency after download |
| Low memory | About 1 GiB after loading in the tested Apple M2 configuration |
| Voice cloning | Bundled FP16 codec encoder for reusable local voice profiles |
| Local service | CLI, web UI, HTTP API, streaming PCM, and OpenAI-compatible endpoint |
| Component | Precision |
|---|---|
| Slow/Fast AR weights | Weight-only INT4 |
| Activations, hidden states, and KV cache | FP16 |
| Codec encoder and decoder | FP16 |
| Waveform output | FP32, 44.1 kHz mono |
Normal synthesis loads only the Slow AR, Fast AR, and codec decoder sessions. On a 16 GB Apple M2 MacBook Air with five ONNX Runtime threads, the service used about 1004 MiB after loading and approximately 1.1-1.2 GiB at synthesis peak. Voice registration releases the online sessions before loading the codec encoder; the measured registration peak was approximately 1.55 GiB. Actual memory use varies by platform and allocator behavior.
The online model files occupy about 572 MiB. The complete repository, including the optional voice-registration encoder, is about 968 MiB.
Cantonese ·
Chinese ·
Dutch ·
English
French ·
German ·
Italian ·
Japanese
Korean ·
Polish ·
Spanish
Preview status: Language coverage is intentionally limited in this release. For the best results, use one of the 11 recommended languages above. Broader multilingual coverage and Chinese dialect support are planned for future releases.
Audio8 TTS uses a DualAR architecture inspired by Fish Audio S2 Pro. The slow AR transformer predicts one semantic token for each audio frame. The fast AR transformer predicts the frame's codec codebooks, conditioned on the slow hidden state and preceding codebooks.
| Component | Configuration |
|---|---|
| Main model | 601,159,424 parameters, excluding the codec |
| Slow AR | 24 layers, width 896, 14 attention heads, 2 KV heads |
| Fast AR | 4 layers, width 896, 14 attention heads, 2 KV heads |
| Acoustic tokens | 10 codebooks, 4,096 entries per codebook |
| Codec | 44.1 kHz, 2,048 samples per model frame (~21.5 frames/s) |
| Context | Up to 2,048 packed text/audio positions |
| Execution provider | ONNX Runtime CPU |
Python 3.11 or newer is required. The current release is tested on macOS arm64.
git clone https://github.com/Audio8-AI/Audio8_TTS.git
cd Audio8_TTS/onnx_runtime
python3 -m pip install -U "huggingface_hub[cli]"
hf download Audio8/Audio8-TTS-Preview-0.6B-ONNX-INT4 --local-dir model
bash setup.sh
The model files are stored at this Hugging Face repository's root. Downloading
with --local-dir model creates the exact layout expected by the runtime:
model/
├── slow_ar_int4.onnx(.data)
├── fast_ar_int4.onnx(.data)
├── codec_decoder_fp16.onnx(.data)
├── runtime_manifest.json
├── tokenizer/tokenizer.json
└── registration/
├── codec_encoder_fp16.onnx(.data)
└── registration_manifest.json
Start the local service and open http://127.0.0.1:8024. Upload a 0.5-30 second reference recording, its exact transcript, and a voice name.
bash start_server.sh
The same operation is available through HTTP:
curl http://127.0.0.1:8024/api/voices/register \
-F 'audio=@/absolute/path/reference.wav' \
-F 'text=The exact transcript of the reference recording.' \
-F 'name=speaker_a' \
-F 'overwrite=false'
The encoder in registration/ is loaded only while registering a voice. The
generated profile is stored locally and can be reused across requests.
bash run_infer.sh \
--text "Welcome to Audio8 TTS ONNX Runtime." \
--voice speaker_a \
--max-new-tokens 256 \
--output outputs/example.wav
The command writes outputs/example.wav and [10, T] codec codes to
outputs/example.npy.
curl http://127.0.0.1:8024/api/tts \
-H 'Content-Type: application/json' \
-d '{"text":"Welcome to Audio8 TTS.","voice_name":"speaker_a","max_new_tokens":256}' \
-o outputs/api.wav
curl http://127.0.0.1:8024/v1/audio/speech \
-H 'Content-Type: application/json' \
-d '{"model":"arktts","input":"Welcome to Audio8 TTS.","voice":"speaker_a","response_format":"wav"}' \
-o outputs/openai.wav
See the complete ONNX Runtime guide for streaming output, configuration, memory management, and service controls.
The source Audio8 TTS Preview checkpoint is a compact first-tier model on Seed-TTS and CV3 multilingual evaluation. See the base model card for benchmark tables, methodology, and comparison notes.
INT4 quantization can change sampled token sequences, so quality should be evaluated for each target language, voice, and deployment setting rather than assuming bit-for-bit equivalence with the source checkpoint.
The code and model weights are released under the Apache License 2.0. See the upstream NOTICE for attribution details.
We thank the Fish Audio team for publishing the DualAR architecture used in Fish Audio S2 Pro.
4 commits
54
stars
4
commits
3
linked in READMEs
Aug 2, 2026
updated
SOTA-class multilingual TTS at compact scale, packaged for low-resource CPU inference.
Audio8 TTS Preview is a 0.6B-parameter multilingual text-to-speech model with zero-shot voice cloning. This repository provides its CPU-oriented ONNX deployment: weight-only INT4 DualAR models, an FP16 neural audio codec, the tokenizer, and the optional FP16 encoder used to register reference voices.
Model files only. Inference, streaming service, and voice-registration code live in the Audio8 TTS repository.
| Deployment characteristic | |
|---|---|
| CPU native | ONNX Runtime CPUExecutionProvider; no CUDA requirement |
| Small runtime | No PyTorch, Transformers, or Hugging Face Hub dependency after download |
| Low memory | About 1 GiB after loading in the tested Apple M2 configuration |
| Voice cloning | Bundled FP16 codec encoder for reusable local voice profiles |
| Local service | CLI, web UI, HTTP API, streaming PCM, and OpenAI-compatible endpoint |
| Component | Precision |
|---|---|
| Slow/Fast AR weights | Weight-only INT4 |
| Activations, hidden states, and KV cache | FP16 |
| Codec encoder and decoder | FP16 |
| Waveform output | FP32, 44.1 kHz mono |
Normal synthesis loads only the Slow AR, Fast AR, and codec decoder sessions. On a 16 GB Apple M2 MacBook Air with five ONNX Runtime threads, the service used about 1004 MiB after loading and approximately 1.1-1.2 GiB at synthesis peak. Voice registration releases the online sessions before loading the codec encoder; the measured registration peak was approximately 1.55 GiB. Actual memory use varies by platform and allocator behavior.
The online model files occupy about 572 MiB. The complete repository, including the optional voice-registration encoder, is about 968 MiB.
Cantonese ·
Chinese ·
Dutch ·
English
French ·
German ·
Italian ·
Japanese
Korean ·
Polish ·
Spanish
Preview status: Language coverage is intentionally limited in this release. For the best results, use one of the 11 recommended languages above. Broader multilingual coverage and Chinese dialect support are planned for future releases.
Audio8 TTS uses a DualAR architecture inspired by Fish Audio S2 Pro. The slow AR transformer predicts one semantic token for each audio frame. The fast AR transformer predicts the frame's codec codebooks, conditioned on the slow hidden state and preceding codebooks.
| Component | Configuration |
|---|---|
| Main model | 601,159,424 parameters, excluding the codec |
| Slow AR | 24 layers, width 896, 14 attention heads, 2 KV heads |
| Fast AR | 4 layers, width 896, 14 attention heads, 2 KV heads |
| Acoustic tokens | 10 codebooks, 4,096 entries per codebook |
| Codec | 44.1 kHz, 2,048 samples per model frame (~21.5 frames/s) |
| Context | Up to 2,048 packed text/audio positions |
| Execution provider | ONNX Runtime CPU |
Python 3.11 or newer is required. The current release is tested on macOS arm64.
git clone https://github.com/Audio8-AI/Audio8_TTS.git
cd Audio8_TTS/onnx_runtime
python3 -m pip install -U "huggingface_hub[cli]"
hf download Audio8/Audio8-TTS-Preview-0.6B-ONNX-INT4 --local-dir model
bash setup.sh
The model files are stored at this Hugging Face repository's root. Downloading
with --local-dir model creates the exact layout expected by the runtime:
model/
├── slow_ar_int4.onnx(.data)
├── fast_ar_int4.onnx(.data)
├── codec_decoder_fp16.onnx(.data)
├── runtime_manifest.json
├── tokenizer/tokenizer.json
└── registration/
├── codec_encoder_fp16.onnx(.data)
└── registration_manifest.json
Start the local service and open http://127.0.0.1:8024. Upload a 0.5-30 second reference recording, its exact transcript, and a voice name.
bash start_server.sh
The same operation is available through HTTP:
curl http://127.0.0.1:8024/api/voices/register \
-F 'audio=@/absolute/path/reference.wav' \
-F 'text=The exact transcript of the reference recording.' \
-F 'name=speaker_a' \
-F 'overwrite=false'
The encoder in registration/ is loaded only while registering a voice. The
generated profile is stored locally and can be reused across requests.
bash run_infer.sh \
--text "Welcome to Audio8 TTS ONNX Runtime." \
--voice speaker_a \
--max-new-tokens 256 \
--output outputs/example.wav
The command writes outputs/example.wav and [10, T] codec codes to
outputs/example.npy.
curl http://127.0.0.1:8024/api/tts \
-H 'Content-Type: application/json' \
-d '{"text":"Welcome to Audio8 TTS.","voice_name":"speaker_a","max_new_tokens":256}' \
-o outputs/api.wav
curl http://127.0.0.1:8024/v1/audio/speech \
-H 'Content-Type: application/json' \
-d '{"model":"arktts","input":"Welcome to Audio8 TTS.","voice":"speaker_a","response_format":"wav"}' \
-o outputs/openai.wav
See the complete ONNX Runtime guide for streaming output, configuration, memory management, and service controls.
The source Audio8 TTS Preview checkpoint is a compact first-tier model on Seed-TTS and CV3 multilingual evaluation. See the base model card for benchmark tables, methodology, and comparison notes.
INT4 quantization can change sampled token sequences, so quality should be evaluated for each target language, voice, and deployment setting rather than assuming bit-for-bit equivalence with the source checkpoint.
The code and model weights are released under the Apache License 2.0. See the upstream NOTICE for attribution details.
We thank the Fish Audio team for publishing the DualAR architecture used in Fish Audio S2 Pro.
4 commits