Views
No views yet
llama.cpp.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.
| 🗣️ 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 | 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] وكأنّها لوحةٌ من حلمٍ جميل! |
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 | 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 |
| 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 |
| 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 |
<|speech_N|> acoustic tokens; a codec turns those into a 24 kHz
waveform. These tokens are decoded by audar-codec — Audar's fine-tuned
NeuCodec, adapted for Arabic on extensive data.1# pip install llama-cpp-python neucodec soundfile torch huggingface_hub
2import re, torch, soundfile as sf
3from huggingface_hub import hf_hub_download
4from llama_cpp import Llama
5from neucodec import NeuCodec # base NeuCodec (public); audar-codec is the Arabic-tuned companion
6
7# 1) Backbone (GGUF) — CPU by default; set n_gpu_layers=-1 to offload to GPU
8gguf = hf_hub_download("audarai/Audar-TTS-V1-Flash", "Audar-TTS-V1-Flash-Q4_K_M.gguf")
9llm = Llama(model_path=gguf, n_ctx=4096, n_gpu_layers=0, verbose=False)
10
11# 2) Codec — encodes the reference clip and decodes the output
12codec = NeuCodec.from_pretrained("neuphonic/neucodec").eval()
13
14# 3) Zero-shot reference: a 5-15 s clip (16 kHz mono) + its transcript
15ref_codes = codec.encode_code("reference.wav").squeeze().tolist()
16ref_text = "transcript of the reference clip"
17ref = "".join(f"<|speech_{c}|>" for c in ref_codes)
18
19target = "مرحبا! [whispers] أهلاً وسهلاً بك."
20prompt = ("user: Convert the text to speech:"
21 f"<|REF_TEXT_START|>{ref_text}<|REF_TEXT_END|>"
22 f"<|REF_SPEECH_START|>{ref}<|REF_SPEECH_END|>"
23 f"<|TARGET_TEXT_START|>{target}<|TARGET_TEXT_END|>"
24 "\nassistant:<|TARGET_CODES_START|>")
25
26# 4) Generate speech tokens; stop at <|TARGET_CODES_END|>
27tce = llm.tokenize(b"<|TARGET_CODES_END|>", add_bos=False, special=True)[0]
28toks = llm.tokenize(prompt.encode("utf-8"), add_bos=False, special=True)
29ids = []
30for tid in llm.generate(toks, temp=1.0, top_k=40, top_p=0.9, repeat_penalty=1.1):
31 if tid == tce or len(ids) >= 2048: break
32 ids.append(tid)
33text = "".join(llm.detokenize([t], special=True).decode("utf-8", "ignore") for t in ids)
34
35# 5) Decode to 24 kHz audio
36codes = [int(x) for x in re.findall(r"<\|speech_(\d+)\|>", text)]
37wav = codec.decode_code(torch.tensor(codes)[None, None, :]).cpu().numpy()[0, 0, :]
38sf.write("out.wav", wav, 24000)client.tts, model id audar-tts-v1-flash).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.1# pip install transformers torch neucodec soundfile librosa
2import re, torch, soundfile as sf, librosa
3from transformers import AutoTokenizer, AutoModelForCausalLM
4from neucodec import NeuCodec
5
6repo = "audarai/Audar-TTS-V1-Flash"
7tok = AutoTokenizer.from_pretrained(repo, subfolder="transformers")
8model = AutoModelForCausalLM.from_pretrained(repo, subfolder="transformers",
9 torch_dtype=torch.bfloat16).eval().to("cuda")
10codec = NeuCodec.from_pretrained("neuphonic/neucodec").eval().to("cuda")
11
12# Zero-shot reference: a 5-15 s clip (16 kHz mono) + its transcript
13wav, _ = librosa.load("reference.wav", sr=16000, mono=True)
14ref_codes = codec.encode_code(torch.from_numpy(wav)[None, None, :]).squeeze().tolist()
15ref = "".join(f"<|speech_{c}|>" for c in ref_codes)
16ref_text = "transcript of the reference clip"
17
18target = "Oh, you have to hear this — [excited] we just closed the biggest deal of the entire year!"
19prompt = ("user: Convert the text to speech:"
20 f"<|REF_TEXT_START|>{ref_text}<|REF_TEXT_END|>"
21 f"<|REF_SPEECH_START|>{ref}<|REF_SPEECH_END|>"
22 f"<|TARGET_TEXT_START|>{target}<|TARGET_TEXT_END|>"
23 "\nassistant:<|TARGET_CODES_START|>")
24
25ids = tok.encode(prompt, add_special_tokens=False, return_tensors="pt").to(model.device)
26tce = tok.convert_tokens_to_ids("<|TARGET_CODES_END|>")
27out = model.generate(ids, max_new_tokens=1500, do_sample=True,
28 temperature=1.0, top_k=40, top_p=0.9, repetition_penalty=1.1,
29 min_new_tokens=50, eos_token_id=tce, pad_token_id=151643)
30
31text = tok.decode(out[0, ids.shape[1]:], skip_special_tokens=False)
32codes = [int(x) for x in re.findall(r"<\|speech_(\d+)\|>", text)]
33wav = codec.decode_code(torch.tensor(codes)[None, None, :]).cpu().numpy()[0, 0, :]
34sf.write("out.wav", wav, 24000)temperature=1.0, top_k=40, top_p=0.9,
repetition_penalty=1.1, min_new_tokens=50, stop at <|TARGET_CODES_END|>. 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.[laughs] · [curious] · [excited] · [sighs] · [exhales] · [mischievously] · [whispers] · [sarcastic]📊 An audited benchmark table will accompany the forthcoming Audar-TTS technical report.
1@misc{audar-tts-flash-2026,
2 title = {Audar-TTS: Arabic-First Expressive Speech Synthesis},
3 author = {Audar AI Research Team},
4 year = {2026},
5 note = {Audar-TTS-V1-Flash},
6 url = {https://huggingface.co/audarai/Audar-TTS-V1-Flash}
7}