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