<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abdelhak</title>
    <description>The latest articles on DEV Community by Abdelhak (@natiq).</description>
    <link>https://dev.to/natiq</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4213612%2F6e6543db-4246-43de-a3bf-d557f67c1abf.png</url>
      <title>DEV Community: Abdelhak</title>
      <link>https://dev.to/natiq</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/natiq"/>
    <language>en</language>
    <item>
      <title>Testing Algerian Darija TTS: A Checklist for Scripts, Numbers, and Code-Switching</title>
      <dc:creator>Abdelhak</dc:creator>
      <pubDate>Thu, 29 Oct 2026 07:47:20 +0000</pubDate>
      <link>https://dev.to/natiq/testing-algerian-darija-tts-a-checklist-for-scripts-numbers-and-code-switching-89</link>
      <guid>https://dev.to/natiq/testing-algerian-darija-tts-a-checklist-for-scripts-numbers-and-code-switching-89</guid>
      <description>&lt;p&gt;Disclosure: I am sharing this guide from &lt;a href="https://natiq.studio/" rel="noopener noreferrer"&gt;Natiq Studio&lt;/a&gt;. It is an English adaptation, with AI editing assistance, of our &lt;a href="https://natiq.studio/articles/how-to-make-ai-voice-natural-algerian-darija/" rel="noopener noreferrer"&gt;Arabic guide to improving Darija scripts and pronunciation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;A successful text-to-speech request does not tell you whether the result says what the user intended. With Algerian Darija, the tricky cases often appear inside ordinary sentences: a French product term, a price, a place name, or a pause that lands in the wrong position.&lt;/p&gt;

&lt;p&gt;Before changing the voice or regenerating a whole script, inspect the input. This checklist is a practical listening workflow for developers and creators integrating Darija speech into an application or content pipeline. It is not a benchmark or a promise of identical output on every generation.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Write the dialect you expect to hear
&lt;/h2&gt;

&lt;p&gt;Selecting an Algerian voice does not automatically translate formal Arabic into everyday Darija. Start with the wording you actually want spoken.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Formal wording&lt;/th&gt;
&lt;th&gt;Darija wording to test&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ماذا تنتظر؟&lt;/td&gt;
&lt;td&gt;واش راك تستنى؟&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;سوف نرسل لك&lt;/td&gt;
&lt;td&gt;راح نبعتولك&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;هذا الشيء&lt;/td&gt;
&lt;td&gt;هاد الشي&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are contextual examples, not universal replacements. Read the script aloud before generating it. If a sentence feels awkward in ordinary conversation, simplify it before evaluating the synthetic voice.&lt;/p&gt;

&lt;p&gt;Keep the meaning stable. A more conversational sentence should still communicate the same product information or instruction.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Treat punctuation as a hypothesis
&lt;/h2&gt;

&lt;p&gt;Break a long sentence into clear ideas. A script that combines the product, delivery terms, price, and guarantee in one breath is difficult to judge and can be difficult to follow.&lt;/p&gt;

&lt;p&gt;Listen to the result after adding a comma or splitting a sentence. Do not assume that a comma creates a fixed half-second pause, or that extra exclamation marks reliably produce the intended emotion. Punctuation can influence the reading, but the actual output needs checking.&lt;/p&gt;

&lt;p&gt;For a product workflow, confirm that edits preserve the real offer. Improving delivery should never introduce an unsupported refund promise, delivery area, or availability claim.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Isolate mixed French terms and names
&lt;/h2&gt;

&lt;p&gt;When a word is mispronounced, test it in a short sentence before rerunning the entire script. Common terms may benefit from an Arabic phonetic spelling, such as ليفريزون or بروموسيون.&lt;/p&gt;

&lt;p&gt;Compare that spelling with the version you were already using, while keeping the voice and surrounding text unchanged. Different voices and contexts may produce different results; one successful spelling does not establish a rule for every French word.&lt;/p&gt;

&lt;p&gt;Apply the same process to brand and place names. For example, test زيتا for Zeta or the Arabic spelling باب الزوار for Bab Ezzouar. Check that the new spelling still identifies the intended name.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Check numbers for meaning, not just fluency
&lt;/h2&gt;

&lt;p&gt;Prices, phone numbers, dates, and quantities have different reading requirements. A phone number may need digits read individually, while a price should communicate a monetary amount clearly.&lt;/p&gt;

&lt;p&gt;Write the amount as you intend it to be spoken, then listen to it separately. If the script uses a colloquial expression in centimes, verify that it matches the amount displayed in Algerian dinars.&lt;/p&gt;

&lt;p&gt;A natural-sounding voice can still communicate the wrong price. Compare the audio with the visible interface, product card, or caption before releasing it.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Change one variable at a time
&lt;/h2&gt;

&lt;p&gt;To compare two voices, generate the same text with each voice. To compare two spellings, keep the voice fixed and change only the spelling under investigation.&lt;/p&gt;

&lt;p&gt;Listen for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether the word is understandable.&lt;/li&gt;
&lt;li&gt;Whether the pause supports the sentence's meaning.&lt;/li&gt;
&lt;li&gt;Whether the voice and pace suit the intended context.&lt;/li&gt;
&lt;li&gt;Whether numbers and names retain their intended meaning.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Limited diacritics can be tested when a word is ambiguous. There is no need to add full diacritics to every dialect word without checking how the engine responds.&lt;/p&gt;

&lt;p&gt;This process makes comparisons easier to interpret. Changing the voice, punctuation, spelling, and sentence structure together makes it harder to identify which edit helped.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Review the final playback context
&lt;/h2&gt;

&lt;p&gt;A clean audio sample is only part of the review. Put it alongside the actual video, captions, or interface and check that the relevant information is heard when it appears on screen.&lt;/p&gt;

&lt;p&gt;If there is background music, make sure it does not cover the speech. Correct pronunciation first; music should not be used to hide a word that is wrong. Also listen on an ordinary phone rather than relying only on good headphones.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trying the workflow with Natiq Studio
&lt;/h2&gt;

&lt;p&gt;In &lt;a href="https://natiq.studio/" rel="noopener noreferrer"&gt;Natiq Studio&lt;/a&gt;, enter Darija text in Arabic script, select a voice, and test a short passage before generating the full script. The hosted service provides WAV downloads; converting that file to MP3 is a separate step in an audio editor.&lt;/p&gt;

&lt;p&gt;The hosted product uses selectable voices and does not support uploading someone else's recording to clone their voice. Keep that distinction clear when describing a speech workflow to users.&lt;/p&gt;

&lt;p&gt;For the original examples and script-writing background, see our &lt;a href="https://natiq.studio/articles/how-to-make-ai-voice-natural-algerian-darija/" rel="noopener noreferrer"&gt;Darija pronunciation guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before shipping
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Is the text written in the dialect the user should hear?&lt;/li&gt;
&lt;li&gt;Are French terms and proper names understandable?&lt;/li&gt;
&lt;li&gt;Does the spoken price match the displayed amount?&lt;/li&gt;
&lt;li&gt;Do pauses support the message?&lt;/li&gt;
&lt;li&gt;Is speech clear in the final playback context?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Start with one small change, listen, and decide what to test next. The useful result is a script that communicates accurately in its intended setting, not simply a request that completed successfully.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>Building Algerian Darija TTS: LoRA, Code-Switching, and Natiq-dz-ARG</title>
      <dc:creator>Abdelhak</dc:creator>
      <pubDate>Wed, 28 Oct 2026 18:12:02 +0000</pubDate>
      <link>https://dev.to/natiq/building-algerian-darija-tts-lora-code-switching-and-natiq-dz-arg-3o43</link>
      <guid>https://dev.to/natiq/building-algerian-darija-tts-lora-code-switching-and-natiq-dz-arg-3o43</guid>
      <description>&lt;p&gt;&lt;em&gt;Disclosure: I'm sharing this project from Natiq Studio, the team developing Natiq-dz-ARG.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Text-to-speech models can produce impressive English, French, and Modern Standard Arabic. Algerian Darija introduces a different challenge: the same sentence can move between Arabic and French while retaining a distinctly Algerian rhythm.&lt;/p&gt;

&lt;p&gt;At &lt;a href="https://natiq.studio/" rel="noopener noreferrer"&gt;Natiq Studio&lt;/a&gt;, we've been working on that problem with &lt;strong&gt;Natiq-dz-ARG&lt;/strong&gt;, an open-weight speech model adapted specifically for Algerian Darija. This article covers the main engineering lessons behind it and where developers can experiment with the release.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why code-switching matters
&lt;/h2&gt;

&lt;p&gt;Consider this everyday sentence:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;سلام خويا، حبيت نسقسيك على la livraison تاع هاد produit.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An Arabic model may mishandle the French words; a French model may struggle with the surrounding Darija. A useful system needs to preserve pronunciation across the transition while keeping the voice and pacing consistent.&lt;/p&gt;

&lt;p&gt;Darija also has its own vocabulary and pronunciation, shaped by Arabic, French, and Amazigh influences. Treating it as Standard Arabic with a different word list misses much of what makes it sound natural.&lt;/p&gt;

&lt;h2&gt;
  
  
  What we released
&lt;/h2&gt;

&lt;p&gt;Natiq-dz-ARG is a LoRA adapter for the &lt;code&gt;bosonai/higgs-tts-3-4b&lt;/code&gt; foundation model. Its main characteristics are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fine-tuning on more than &lt;strong&gt;300 hours&lt;/strong&gt; of Algerian speech.&lt;/li&gt;
&lt;li&gt;Recordings from &lt;strong&gt;more than 100 speakers&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;French code-switching within Algerian Arabic sentences.&lt;/li&gt;
&lt;li&gt;Zero-shot voice conditioning from a short reference recording.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;24 kHz&lt;/strong&gt; audio generation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The aim is speech that reflects how Algerians actually communicate. These characteristics describe the release; they are not a claim that every regional accent or mixed-language sentence is handled perfectly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lesson 1: separate dialect learning from speaker memorization
&lt;/h2&gt;

&lt;p&gt;Our earlier single-speaker experiments overfit. The output reproduced characteristics of the training voice instead of generalizing reliably to new speakers and unfamiliar sentences.&lt;/p&gt;

&lt;p&gt;We moved to a larger, more diverse corpus. Recordings from many speakers gave the model broader exposure to Algerian pronunciation and speaking styles.&lt;/p&gt;

&lt;p&gt;The practical lesson was that clean recordings alone were not enough. Speaker diversity mattered because we wanted the system to learn dialect patterns without tying those patterns to one person's voice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lesson 2: transcript spelling affects mixed-language speech
&lt;/h2&gt;

&lt;p&gt;Transcript quality was another major challenge. French expressions in Algerian conversations are sometimes written phonetically in Arabic script. For example, &lt;em&gt;physicien&lt;/em&gt; may appear as &lt;em&gt;فيزيسيان&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;During preparation, we cleaned mixed-language transcripts and preserved French spelling where appropriate. That helped align the written input with the pronunciation we wanted the model to learn.&lt;/p&gt;

&lt;p&gt;This is an easy detail to underestimate in a speech pipeline: text normalization can change the language cues available to the model.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lesson 3: adapt a foundation model with LoRA
&lt;/h2&gt;

&lt;p&gt;Rather than train a large speech model from scratch, we used &lt;strong&gt;Low-Rank Adaptation (LoRA)&lt;/strong&gt; to adapt Higgs TTS 3.4B.&lt;/p&gt;

&lt;p&gt;LoRA trains a smaller set of additional parameters instead of updating every weight in the original model. That makes adaptation more computationally manageable while retaining useful knowledge from the base model.&lt;/p&gt;

&lt;p&gt;The downloadable release is an adapter. Developers should follow the repository's architecture and inference instructions rather than assume the adapter is a standalone speech engine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trying zero-shot voice conditioning
&lt;/h2&gt;

&lt;p&gt;Inference uses three inputs:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A short reference recording from a speaker.&lt;/li&gt;
&lt;li&gt;An accurate transcript of that recording.&lt;/li&gt;
&lt;li&gt;New Algerian Darija text to synthesize.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The generated speech is conditioned on the reference voice. Use reference audio only when you have the necessary rights and consent.&lt;/p&gt;

&lt;p&gt;Start with the &lt;a href="https://huggingface.co/Natiq-Studio/Natiq-dz-ARG" rel="noopener noreferrer"&gt;model weights and inference documentation&lt;/a&gt;, or explore the &lt;a href="https://huggingface.co/spaces/abdelhak-k/Natiq-dz-ARG" rel="noopener noreferrer"&gt;interactive Hugging Face demo&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The published local inference instructions recommend a compatible CUDA GPU with at least &lt;strong&gt;16 GB of VRAM&lt;/strong&gt;. Check the repository for the current setup steps and reference examples.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open weights and licensing
&lt;/h2&gt;

&lt;p&gt;The adapter is released under &lt;strong&gt;CC BY-NC 4.0&lt;/strong&gt; for non-commercial use under its terms. Commercial use requires appropriate licensing. The underlying Boson AI foundation model also has its own applicable license.&lt;/p&gt;

&lt;p&gt;For that reason, we describe this as an &lt;strong&gt;open-weight&lt;/strong&gt; release rather than imply unrestricted commercial use. Access to model weights and access to the training dataset are separate matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  A hosted option for application developers
&lt;/h2&gt;

&lt;p&gt;Alongside the research model, &lt;a href="https://natiq.studio/" rel="noopener noreferrer"&gt;Natiq Studio&lt;/a&gt; offers hosted Algerian Darija speech generation for creators and developers who prefer not to manage GPU inference.&lt;/p&gt;

&lt;p&gt;The hosted platform is a separate service from the downloadable adapter. It offers selectable voices, downloadable WAV audio, and a REST API; it does not currently offer user-uploaded voice cloning.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-X&lt;/span&gt; POST https://natiq.studio/api/v1/speech &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$NATIQ_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "text": "سلام عليكم خاوتي، واش راكم اليوم؟",
    "voice": "leila"
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Retrieve current voice IDs through &lt;code&gt;GET /voices&lt;/code&gt;. Speech creation returns a job ID and status URL; poll until generation succeeds or fails. Keep the API key on your server.&lt;/p&gt;

&lt;p&gt;See the &lt;a href="https://natiq.studio/api/docs/" rel="noopener noreferrer"&gt;Natiq Studio API reference&lt;/a&gt; for the current request format, limits, and job-handling details. New accounts receive 100 starter tokens after email confirmation.&lt;/p&gt;

&lt;h2&gt;
  
  
  What still needs work
&lt;/h2&gt;

&lt;p&gt;Algerian Darija remains underrepresented in speech AI. There is room to improve regional accent coverage, pronunciation consistency, and mixed-language text handling.&lt;/p&gt;

&lt;p&gt;We hope the release helps other developers investigate those problems and share useful feedback.&lt;/p&gt;

&lt;p&gt;For more detail, read our &lt;a href="https://natiq.studio/en/articles/natiq-v1-algerian-ai-speech-model-en/" rel="noopener noreferrer"&gt;training approach and project background on Natiq Studio&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Have you worked on speech synthesis for an underrepresented dialect? What caused the most trouble: data coverage, transcript quality, or evaluation?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
