--- license: other license_name: audarai-open-license-v1.0 license_link: https://www.audarai.com/license/audarai-open-license-v1.0/ language: - ar - en pipeline_tag: text-to-speech inference: false tags: - text-to-speech - tts - speech-synthesis - arabic - arabic-tts - voice-cloning - zero-shot-tts - expressive-tts - neucodec - audar - gguf - llama-cpp - on-device - edge --- # Audar-TTS-V1-Flash ยท GGUF ### Open, Arabic-first, expressive zero-shot text-to-speech โ quantized to run anywhere. **From Arabic to the world.**       ๐ง Voice Gallery ยท ๐ป GGUF Deploy ยท ๐ค Transformers ยท ๐ฆ GGUF Variants ยท ๐ License --- Audar-TTS-V1-Flash is the **smallest, fastest** member of the Audar-TTS family โ a compact **553M-parameter** open-weights speech model that turns text into natural, expressive speech and **clones any voice from a 5โ15 second reference clip**, with no per-speaker fine-tuning. It is **Arabic-first** (including Gulf/Emirati and other dialects), fully **bilingual with English**, and this repository ships it as **GGUF quantizations** so it runs **in real time on a single GPU, on CPU, and on edge devices** via `llama.cpp`. Flash treats speech synthesis as **next-token prediction**: a language-model backbone predicts discrete **audar-codec** acoustic tokens, which a lightweight neural codec decodes to **24 kHz** audio. There is **no phonemizer and no per-language G2P** โ dialect coverage comes from data, not brittle pronunciation rules โ which is a large part of why the model handles Arabic dialects and ArabicโEnglish code-switching gracefully. > **Open weights** โ GGUF quantizations plus full bf16 **Transformers** weights โ under the > **AudarAI Open License v1.0**: free for commercial use, redistribution, and modification. See > [License](#-license). ## Highlights | ๐ฃ๏ธ Zero-shot cloning | ๐ญ Expressive control | ๐ Arabic-first + English | |---|---|---| | Clone any voice from a 5โ15 s reference clip โ no fine-tuning. | 8 inline tags โ `[laughs]` `[whispers]` `[excited]` `[curious]` ... | MSA + Gulf/Emirati dialects, code-switching, **no phonemizer / no G2P**. | | ๐ฆ GGUF ยท Q4 / Q5 / Q8 | ๐ Studio-clean 24 kHz | ๐ก๏ธ Responsible by design | |---|---|---| | Runs on CPU, GPU and edge via `llama.cpp`. | Single-codebook 50 Hz neural codec (audar-codec). | Consent-first cloning ยท responsible-use guidance. | ## ๐ง Voice Gallery Six ready-to-use voices ship with Audar-TTS, **free to use**. They are **synthetic voices created by interpolating multiple speakers โ they do not replicate or resemble any real individual.** Each sample is a zero-shot clone: the same reference voice speaks a fresh English and Arabic line. *(Captions match the audio word-for-word.)* Voice Reference & samples โ Audar-TTS Flash demo_male_1 Male warm, confident REFERENCE VOICE English Oh, you have to hear this โ [excited] we just closed the biggest deal of the entire year, and honestly, I still can't quite believe it! ุงูุนุฑุจูุฉ ูุง ูู
ูููู ุงูุงูุชุธุงุฑ ูุฃุฎุจุฑู โ [excited] ููุฏ ุฃูุฌุฒูุง ุงูู
ุดุฑูุน ุฃุฎูุฑุงู ุจุนุฏ ููู ูุฐุง ุงูุชุนุจุ [laughs] ูุตุฏููููุ ุฅูู ุฃุฌู
ู ุดุนูุฑู ุนูู ุงูุฅุทูุงู! demo_male_2 Male soft, intimate REFERENCE VOICE English Come a little closer for a second โ [whispers] I've been planning something special all week long, [mischievously] and you are going to absolutely love it. ุงูุนุฑุจูุฉ ุชุนุงูุ ุงูุชุฑุจ ููููุงู โ [whispers] ููุฏ ุฎุทูุทุชู ูู
ูุงุฌุฃุฉู ุฑุงุฆุนุฉ ุทูุงู ุงูุฃุณุจูุนุ [mischievously] ูุฃูุง ูุงุซูู ุชู
ุงู
ุงู ุฃูููุง ุณุชูุฏูุดู ุญูุงู! demo_male_3 Male bright, curious REFERENCE VOICE English Wait, really? [curious] You built the whole thing yourself over the weekend? [excited] That is genuinely incredible โ tell me everything, right now! ุงูุนุฑุจูุฉ ูุญุธุฉุ ุญูุงูุ [curious] ูู ุจููุชู ููู ูุฐุง ุจููุณู ูู ููู
ูู ููุทุ [excited] ูุฐุง ู
ุฐููู ูุนูุงู โ ุงุญูู ูู ููู ุงูุชูุงุตูู ุงูุขู! demo_female_1 Female vibrant, joyful REFERENCE VOICE English Guess what just arrived in the mail โ [excited] the acceptance letter we have been waiting for, [laughs] and I actually screamed out loud! ุงูุนุฑุจูุฉ ุฎู
ูู ู
ุงุฐุง ูุตู ูู ุงูุจุฑูุฏ ููุชูู โ [excited] ุฑุณุงูุฉ ุงููุจูู ุงูุชู ุงูุชุธุฑูุงูุง ุทูููุงูุ [laughs] ููุฏ ุตุฑุฎุชู ู
ู ุดุฏูุฉ ุงููุฑุญ! demo_female_2 Female velvety, playful REFERENCE VOICE English Okay, lean in for just a moment โ [whispers] I found the most perfect little cafรฉ downtown, [mischievously] and it is going to be our new secret spot. ุงูุนุฑุจูุฉ ุญุณูุงูุ ุงูุชุฑุจู ููููุงู โ [whispers] ูุฌุฏุชู ู
ูููู ุตุบูุฑุงู ุฑุงุฆุนุงู ูู ูุณุท ุงูู
ุฏููุฉุ [mischievously] ูุณูููู ู
ูุงููุง ุงูุณุฑูู ุงูุฌุฏูุฏ! demo_female_3 Female airy, dreamy REFERENCE VOICE English You won't believe the view from up here โ [excited] the whole city is glowing at sunset, [laughs] it honestly looks just like a dream! ุงูุนุฑุจูุฉ ูู ุชุตุฏููู ูุฐุง ุงูู
ูุธุฑ ู
ู ููุง โ [excited] ุงูู
ุฏููุฉ ููููุง ุชุชูุฃูุฃ ุนูุฏ ุงูุบุฑูุจุ [laughs] ููุฃูููุง ููุญุฉู ู
ู ุญูู
ู ุฌู
ูู! ๐๏ธ Demo generation settings: temperature = 1.0 ยท repetition_penalty = 1.1 ยท top_k = 40 ยท top_p = 0.9 โ tuned for maximum expressiveness ( [laughs] , [excited] , [whispers] ...). A low repetition_penalty (โ1.1) is what lets laughter through โ a higher value suppresses it. For steadier, more neutral delivery, lower temperature toward 0.6โ0.7 . ## Model summary Model Audar-TTS-V1-Flash (GGUF) Task Text-to-speech (autoregressive, neural-codec) Backbone Qwen2.5-0.5B-class decoder-only transformer Parameters 552,928,640 (0.55B) Distribution GGUF (repo root) โ Q4_K_M / Q5_K_M / Q8_0 ยท full bf16 safetensors ( transformers/ subfolder) Vocabulary 217,668 (text + 65,536 audar-codec speech tokens + control tokens) Context length 32,768 tokens Companion codec audar-codec (a NeuCodec fine-tuned for Arabic) โ 24 kHz output Languages Arabic (MSA + dialects incl. Gulf/Emirati) and English License AudarAI Open License v1.0 ## The Audar-TTS family | Tier | Params | Best for | |---|---|---| | **Flash** (this model) | ~553M | Real-time, edge/on-device, high-throughput serving | | **Turbo** | ~1.64B | Balanced quality and latency โ the everyday default | | **Pro** *(coming soon)* | Larger | Maximum expressiveness and fidelity | All tiers share one **prompt/conditioning protocol**, so you can move between them without changing your integration. ## GGUF variants | File | Approx. size | Notes | |---|---|---| | `Audar-TTS-V1-Flash-Q8_0.gguf` | ~0.60 GB | Near-lossless, CPU-friendly | | `Audar-TTS-V1-Flash-Q5_K_M.gguf` | ~0.48 GB | Strong quality/size balance | | `Audar-TTS-V1-Flash-Q4_K_M.gguf` | ~0.46 GB | Smallest; best for edge/offline | ## The codec โ audar-codec The backbone emits discrete ` ` acoustic tokens; a **codec** turns those into a 24 kHz waveform. These tokens are decoded by **audar-codec** โ Audar's **fine-tuned [NeuCodec](https://huggingface.co/neuphonic/neucodec)**, adapted for Arabic on extensive data. > ๐ **Credit & thanks to [Neuphonic](https://neuphonic.com) for open-sourcing > [NeuCodec](https://huggingface.co/neuphonic/neucodec).** audar-codec builds on their work, and the > tokens remain **NeuCodec-compatible** โ so you can decode with NeuCodec directly (as shown below), > which makes this release fully open and reproducible. ## Local deployment (GGUF) ```python # pip install llama-cpp-python neucodec soundfile torch huggingface_hub import re, torch, soundfile as sf from huggingface_hub import hf_hub_download from llama_cpp import Llama from neucodec import NeuCodec # base NeuCodec (public); audar-codec is the Arabic-tuned companion # 1) Backbone (GGUF) โ CPU by default; set n_gpu_layers=-1 to offload to GPU gguf = hf_hub_download("audarai/Audar-TTS-V1-Flash", "Audar-TTS-V1-Flash-Q4_K_M.gguf") llm = Llama(model_path=gguf, n_ctx=4096, n_gpu_layers=0, verbose=False) # 2) Codec โ encodes the reference clip and decodes the output codec = NeuCodec.from_pretrained("neuphonic/neucodec").eval() # 3) Zero-shot reference: a 5-15 s clip (16 kHz mono) + its transcript ref_codes = codec.encode_code("reference.wav").squeeze().tolist() ref_text = "transcript of the reference clip" ref = "".join(f" " for c in ref_codes) target = "ู
ุฑุญุจุง! [whispers] ุฃููุงู ูุณููุงู ุจู." prompt = ("user: Convert the text to speech:" f" {ref_text} " f" {ref} " f" {target} " "\nassistant: ") # 4) Generate speech tokens; stop at tce = llm.tokenize(b" ", add_bos=False, special=True)[0] toks = llm.tokenize(prompt.encode("utf-8"), add_bos=False, special=True) ids = [] for tid in llm.generate(toks, temp=1.0, top_k=40, top_p=0.9, repeat_penalty=1.1): if tid == tce or len(ids) >= 2048: break ids.append(tid) text = "".join(llm.detokenize([t], special=True).decode("utf-8", "ignore") for t in ids) # 5) Decode to 24 kHz audio codes = [int(x) for x in re.findall(r" ", text)] wav = codec.decode_code(torch.tensor(codes)[None, None, :]).cpu().numpy()[0, 0, :] sf.write("out.wav", wav, 24000) ``` Prefer a managed endpoint? The same model is available via the [Audar API/SDK](https://www.audarai.com) (`client.tts`, model id `audar-tts-v1-flash`). ## Full-precision inference (Transformers) The full **bf16 safetensors** weights ship under the [`transformers/`](https://huggingface.co/audarai/Audar-TTS-V1-Flash/tree/main/transformers) subfolder โ use these for GPU inference or fine-tuning (the GGUF files at the repo root are for lightweight CPU/edge deployment). **This is the exact code path used to produce the Voice Gallery demos above**, so those samples are reproducible with it. ```python # pip install transformers torch neucodec soundfile librosa import re, torch, soundfile as sf, librosa from transformers import AutoTokenizer, AutoModelForCausalLM from neucodec import NeuCodec repo = "audarai/Audar-TTS-V1-Flash" tok = AutoTokenizer.from_pretrained(repo, subfolder="transformers") model = AutoModelForCausalLM.from_pretrained(repo, subfolder="transformers", torch_dtype=torch.bfloat16).eval().to("cuda") codec = NeuCodec.from_pretrained("neuphonic/neucodec").eval().to("cuda") # Zero-shot reference: a 5-15 s clip (16 kHz mono) + its transcript wav, _ = librosa.load("reference.wav", sr=16000, mono=True) ref_codes = codec.encode_code(torch.from_numpy(wav)[None, None, :]).squeeze().tolist() ref = "".join(f" " for c in ref_codes) ref_text = "transcript of the reference clip" target = "Oh, you have to hear this โ [excited] we just closed the biggest deal of the entire year!" prompt = ("user: Convert the text to speech:" f" {ref_text} " f" {ref} " f" {target} " "\nassistant: ") ids = tok.encode(prompt, add_special_tokens=False, return_tensors="pt").to(model.device) tce = tok.convert_tokens_to_ids(" ") out = model.generate(ids, max_new_tokens=1500, do_sample=True, temperature=1.0, top_k=40, top_p=0.9, repetition_penalty=1.1, min_new_tokens=50, eos_token_id=tce, pad_token_id=151643) text = tok.decode(out[0, ids.shape[1]:], skip_special_tokens=False) codes = [int(x) for x in re.findall(r" ", text)] wav = codec.decode_code(torch.tensor(codes)[None, None, :]).cpu().numpy()[0, 0, :] sf.write("out.wav", wav, 24000) ``` **Voice Gallery demo settings (tested):** `temperature=1.0`, `top_k=40`, `top_p=0.9`, `repetition_penalty=1.1`, `min_new_tokens=50`, stop at ` `. Lower `temperature` toward `0.6โ0.7` for steadier, more neutral delivery. A low `repetition_penalty` (โ1.1) keeps laughter and other expressive bursts intact. ## Expression tags Insert tags inline in the target text to shape delivery: `[laughs]` ยท `[curious]` ยท `[excited]` ยท `[sighs]` ยท `[exhales]` ยท `[mischievously]` ยท `[whispers]` ยท `[sarcastic]` Tags work in both Arabic and English. Use them sparingly for the most natural results. ## Intended use & limitations **Intended use.** Voice assistants and agents, narration,...