Audio8 TTS Preview 0.6B ONNX INT4
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.
Why this ONNX release
| | 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 |
Precision and footprint
| 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.
Supported Languages
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.
Model Details
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 |
Quick Start
Python 3.11 or newer is required. The current release is tested on macOS
arm64.
1. Download the code and model
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
2. Register a reference voice
Start the local service and open . 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.
3. Generate speech
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.
HTTP API
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
OpenAI-compatible API
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
for streaming output, configuration, memory management, and service controls.
Evaluation
The source Audio8 TTS Preview checkpoint is a compact first-tier model on
Seed-TTS and CV3 multilingual evaluation. See the
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.
Limitations and Responsible Use
- This is a Preview checkpoint with limited multilingual and dialect coverage.
- Very long, noisy, or incorrectly transcribed references can reduce stability
and speaker similarity.
- Generated speech can be misused for impersonation or misinformation. Obtain
consent before cloning a voice and clearly disclose synthetic audio where
appropriate.
- Evaluate the model for accuracy, safety, and legal compliance before
deployment.
License and Acknowledgements
The code and model weights are released under the
See the upstream
NOTICE for
attribution details.
We thank the Fish Audio team for publishing the DualAR architecture used in
Fish Audio S2 Pro.