تحويل النص إلى كلام ثنائي اللغة بالعربية والإنجليزية: التعامل مع التبديل اللغوي

ثنائي اللغة بالعربية والإنجليزية
في هذه الصفحة
  1. ما هو التبديل اللغوي في تحويل النص إلى كلام باللغة العربية؟
  2. لماذا يمثل التبديل اللغوي تحدياً في تحويل النص إلى كلام؟
  3. ما معدل التبديل بين العربية والإنجليزية في النصوص الخليجية؟
  4. هل تبقى الكلمات الإنجليزية بالإنجليزية أم تُكتب بأحرف عربية؟
  5. كيف ينبغي التعامل مع البادئات العربية المتصلة بالكلمات الإنجليزية؟
  6. كيف تؤثر الاختصارات والأرقام والعربيزي على النصوص ثنائية اللغة؟
  7. لماذا قد يبدو النص ثنائي اللغة سليماً للقراءة لكنه يبدو خاطئاً عند نطقه؟
  8. أي صوت ينبغي أن يقرأ نصاً ثنائي اللغة بالعربية والإنجليزية؟
  9. كيف يمكنك فحص النصوص ثنائية اللغة تلقائياً؟
  10. إخلاء المسؤولية

في منطقة الخليج، نادراً ما تقتصر رسائل خدمة العملاء أو إشعارات التطبيقات أو نصوص مقاطع الفيديو على لغة واحدة؛ فكلمات مثل app وlogin وmeeting وoffer تَرِد بتلقائية داخل الجمل العربية، بينما تظل أسماء العلامات التجارية بالإنجليزية. يسمع الناس هذا المزيج يومياً، لذا فإن أي صوت لتحويل النص إلى كلام يتعثر عند كل انتقال سيبدو مصطنعاً على الفور.

يوضح هذا الدليل كيفية إعداد نصوص ثنائية اللغة بالعربية والإنجليزية ليقرأها الصوت الاصطناعي بانسيابية تامة. قمنا بصياغة عشر عبارات شائعة بالأسلوب الخليجي، واختبرناها عبر أداة فحص طورناها، فوجدنا 33 حالة تبديل لغوي و14 موضعاً قد يُربك الصوت. نستعرض أدناه ما وجدناه، وطريقة معالجة كل مشكلة، بالإضافة إلى أداة الفحص نفسها.

ما هو التبديل اللغوي في تحويل النص إلى كلام باللغة العربية؟

التبديل اللغوي (Code Switching) هو الانتقال بين لغتين داخل محادثة أو جملة واحدة، مثل إدراج كلمات إنجليزية ضمن سياق عربي. أما في تقنية تحويل النص إلى كلام، فهذا يعني قدرة الصوت على تمييز الكلمات الإنجليزية ونطقها نطقاً صحيحاً دون كسر إيقاع العبارات العربية المحيطة بها.

يُعد التبديل اللغوي جزءاً طبيعياً من الحديث اليومي في الخليج وليس خطأً. وقد أشار تقرير نشرته Gulf News عام 2025 حول مزج الشباب الإماراتي بين العربية والإنجليزية إلى تنقل الشباب بين اللغتين داخل الحوار الواحد، مستشهداً بأبحاث تؤكد لجوء الأفراد من مختلف الأعمار إلى التبديل اللغوي، ولا سيما الفئات الأصغر سناً وفي السياقات غير الرسمية. كما يوضح دليلنا حول اللهجات والتبديل اللغوي في معالجة اللغة العربية طبيعياً سبب أهمية ذلك لتقنيات الصوت.

لماذا يمثل التبديل اللغوي تحدياً في تحويل النص إلى كلام؟

تكمن صعوبة التبديل اللغوي في حاجة المحرك الصوتي لتحديد لغة كل كلمة على حدة أثناء القراءة، ثم التحول بين الأنظمة الصوتية والتنغيم في منتصف الجملة. وتزداد هذه المهمة تعقيداً مع تباين طرق الهجاء، وإلصاق البادئات العربية بالكلمات الإنجليزية، واستخدام الاختصارات.

تختلف اللغتان العربية والإنجليزية من حيث مخارج الأصوات، ومواضع النبر، والإيقاع الصوتي. فالصوت المدرب غالباً على لغة واحدة قد يقرأ الكلمة الإنجليزية بأصوات عربية، أو يتوقف بشكل غير طبيعي عند نقطة التحول. وعادةً ما تتعامل الأنظمة متعددة اللغات العامة مع كل لغة بمعزل عن الأخرى، وهو أحد الأسباب التي تجعل الذكاء الاصطناعي الصوتي للغة العربية بحاجة إلى تقنية مخصصة بدلاً من الاعتماد على إضافة ملحقة بنموذج إنجليزي.

bash
<style>
  .voice-table {
    width: 100%;
    font-family: Inter, sans-serif;
  }

  .voice-table table {
    width: 100%;
    border-collapse: collapse;
    border-radius: 12px;
    overflow: hidden;
    font-size: 16px;
    margin: 0;
  }

  .voice-table th,
  .voice-table td {
    border: 1px solid #ffffff;
    padding: 16px 18px;
    text-align: left;
    vertical-align: top;
    background: #f3eafa;
    color: #1a1a1a;
  }

  .voice-table th {
    background: #2c0f4a;
    font-weight: 600;
    color: #ffffff;
    font-size: 20px;
    border: none;
  }

  .voice-table tr:nth-child(even) td {
    background: #f7f1fb;
  }

  @media (max-width: 700px) {
    .voice-table table thead {
      display: none;
    }

    .voice-table table,
    .voice-table tbody,
    .voice-table tr,
    .voice-table td {
      display: block;
      width: auto;
    }

    .voice-table tr {
      margin-bottom: 20px;
      background: #fff;
      border-radius: 10px;
      padding: 12px;
      box-shadow: 0 2px 6px rgba(0,0,0,0.08);
    }

    .voice-table td {
      background: #f3eafa;
      border: none;
      position: relative;
      padding: 14px;
      font-size: 14px;
    }

    .voice-table td::before {
      content: attr(data-label);
      font-weight: 600;
      color: #5b3a85;
      display: block;
      margin-bottom: 6px;
      font-size: 16px;
    }
  }
</style>

<div class="voice-table">
  <table>
    <thead>
      <tr>
        <th>Problem</th>
        <th>What the voice hears</th>
        <th>Typical result</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td data-label="Problem"><strong>English word inside Arabic</strong></td>
        <td data-label="What the voice hears">A sudden change of alphabet</td>
        <td data-label="Typical result">Wrong accent or a pause at the switch</td>
      </tr>

      <tr>
        <td data-label="Problem"><strong>Arabic prefix on English word (<bdi dir="rtl">الـapp</bdi>)</strong></td>
        <td data-label="What the voice hears">One token in two scripts</td>
        <td data-label="Typical result">Prefix skipped, misread or spelled out</td>
      </tr>

      <tr>
        <td data-label="Problem"><strong>Acronym (OTP, VAT)</strong></td>
        <td data-label="What the voice hears">Capital letters with no vowels</td>
        <td data-label="Typical result">Read as a word, or letters in the wrong language</td>
      </tr>

      <tr>
        <td data-label="Problem"><strong>Arabizi (7abibi)</strong></td>
        <td data-label="What the voice hears">Latin letters mixed with digits</td>
        <td data-label="Typical result">Digits read as numbers</td>
      </tr>

      <tr>
        <td data-label="Problem"><strong>Text direction</strong></td>
        <td data-label="What the voice hears">Characters in stored order</td>
        <td data-label="Typical result">Correct audio, but a script that looks wrong when edited</td>
      </tr>
    </tbody>
  </table>
</div>

ما معدل التبديل بين العربية والإنجليزية في النصوص الخليجية؟

في عينتنا المكونة من عشر عبارات لخدمة العملاء والتطبيقات بالأسلوب الخليجي، بلغت نسبة الكلمات الإنجليزية 27%، وتكرر التبديل اللغوي 33 مرة، بمعدل 3.3 تبديلات في كل سطر. وتضمنت إحدى العبارات الخاصة بتحميل تطبيق تبديلاً للغة ثماني مرات خلال عشر كلمات فقط.

صغنا هذه العبارات لتعكس الاستخدام اليومي الشائع في الخليج، مثل الرسائل المصرفية، وإرشادات التطبيقات، وعروض عطلة نهاية الأسبوع، والتذكير بالاجتماعات، وتحديثات التوصيل، ثم قمنا بحساب عدد التبديلات باستخدام أداة الفحص الموضحة لاحقاً في هذا الدليل.

ست عبارات خليجية نموذجية توضح الكلمات الإنجليزية المظللة وعدد مرات التبديل اللغوي في كل منها
عينات النصوص لدينا، نوفمبر 2026. يشير اللون الوردي إلى المشكلة الأكثر شيوعاً: بادئة عربية متصلة بكلمة إنجليزية.

هل تبقى الكلمات الإنجليزية بالإنجليزية أم تُكتب بأحرف عربية؟

أبقِ الكلمة الإنجليزية كما هي بالإنجليزية إذا كان جمهورك ينطقها كذلك وكان النموذج ينطقها جيداً؛ واكتبها بحروف عربية إذا أخطأ الصوت في نطقها؛ وتَرجمها عندما يتوفر مقابل عربي شائع. اتخذ هذا القرار مرة واحدة لكل مصطلح والتزم بالصيغة نفسها في النص كاملاً.

bash
<style>
  .voice-table-2 {
    width: 100%;
    font-family: Inter, sans-serif;
  }

  .voice-table-2 table {
    width: 100%;
    border-collapse: collapse;
    border-radius: 12px;
    overflow: hidden;
    font-size: 16px;
    margin: 0;
  }

  .voice-table-2 th,
  .voice-table-2 td {
    border: 1px solid #ffffff;
    padding: 16px 18px;
    text-align: left;
    vertical-align: top;
    background: #f3eafa;
    color: #1a1a1a;
  }

  .voice-table-2 th {
    background: #2c0f4a;
    font-weight: 600;
    color: #ffffff;
    font-size: 20px;
    border: none;
  }

  .voice-table-2 tr:nth-child(even) td {
    background: #f7f1fb;
  }

  @media (max-width: 700px) {
    .voice-table-2 table thead {
      display: none;
    }

    .voice-table-2 table,
    .voice-table-2 tbody,
    .voice-table-2 tr,
    .voice-table-2 td {
      display: block;
      width: auto;
    }

    .voice-table-2 tr {
      margin-bottom: 20px;
      background: #fff;
      border-radius: 10px;
      padding: 12px;
      box-shadow: 0 2px 6px rgba(0,0,0,0.08);
    }

    .voice-table-2 td {
      background: #f3eafa;
      border: none;
      position: relative;
      padding: 14px;
      font-size: 14px;
    }

    .voice-table-2 td::before {
      content: attr(data-label);
      font-weight: 600;
      color: #5b3a85;
      display: block;
      margin-bottom: 6px;
      font-size: 16px;
    }
  }
</style>

<div class="voice-table-2">
  <table>
    <thead>
      <tr>
        <th>Option</th>
        <th>Best for</th>
        <th>Example</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td data-label="Option"><strong>Keep in English</strong></td>
        <td data-label="Best for">Brand and product names your audience says in English</td>
        <td data-label="Example">App Store, Face ID</td>
      </tr>

      <tr>
        <td data-label="Option"><strong>Write in Arabic letters</strong></td>
        <td data-label="Best for">Names the voice mispronounces in Latin letters</td>
        <td data-label="Example"><bdi dir="rtl">آيفون</bdi> instead of iPhone</td>
      </tr>

      <tr>
        <td data-label="Option"><strong>Translate</strong></td>
        <td data-label="Best for">Everyday words with a common Arabic equivalent</td>
        <td data-label="Example"><bdi dir="rtl">تقرير</bdi> instead of report</td>
      </tr>
    </tbody>
  </table>
</div>

عادةً ما يناسب المحتوى الرسمي، كالإشعارات الحكومية والمصطلحات المصرفية، استخدام اللغة الفصحى بالكامل. في حين تبدو نصوص منصات التواصل الاجتماعي وشاشات الإعداد الأولية للتطبيقات الموجهة للشباب الخليجي أكثر عفوية وطبيعية عند الإبقاء على بعض المفردات الإنجليزية. يوضح دليلنا لتصميم تجربة المستخدم الصوتية باللغة العربية كيفية ملاءمة نبرة الصوت لطبيعة الجمهور.

كيف ينبغي التعامل مع البادئات العربية المتصلة بالكلمات الإنجليزية؟

تجنب وصل البادئات العربية مثل «الـ» أو «بـ» أو «و» مباشرة بكلمة إنجليزية. إما أن تعيد صياغة العبارة لتأتي الكلمة الإنجليزية منفصلة، أو تكتب المصطلح بأكمله بالحروف العربية، حتى يتعامل الصوت مع لغة واحدة في الكلمة الواحدة.

يميل كُتّاب المحتوى عادةً إلى كتابة «الـapp» أو «بالـFace ID» محاكاةً لطريقة النطق. لكن بالنسبة للمحرك الصوتي، فإن كل رمز من هذه الرموز يدمج أبجديتين مختلفتين، ما قد يؤدي إلى إسقاط البادئة أو نطقها بطريقة غريبة. وكانت هذه المشكلة الأكثر تكراراً في عينتنا؛ إذ ظهرت 10 مرات في 6 عبارات من أصل 10.

bash
<style>
  .voice-table-3 {
    width: 100%;
    font-family: Inter, sans-serif;
  }

  .voice-table-3 table {
    width: 100%;
    border-collapse: collapse;
    border-radius: 12px;
    overflow: hidden;
    font-size: 16px;
    margin: 0;
  }

  .voice-table-3 th,
  .voice-table-3 td {
    border: 1px solid #ffffff;
    padding: 16px 18px;
    text-align: left;
    vertical-align: top;
    background: #f3eafa;
    color: #1a1a1a;
  }

  .voice-table-3 th {
    background: #2c0f4a;
    font-weight: 600;
    color: #ffffff;
    font-size: 20px;
    border: none;
  }

  .voice-table-3 tr:nth-child(even) td {
    background: #f7f1fb;
  }

  @media (max-width: 700px) {
    .voice-table-3 table thead {
      display: none;
    }

    .voice-table-3 table,
    .voice-table-3 tbody,
    .voice-table-3 tr,
    .voice-table-3 td {
      display: block;
      width: auto;
    }

    .voice-table-3 tr {
      margin-bottom: 20px;
      background: #fff;
      border-radius: 10px;
      padding: 12px;
      box-shadow: 0 2px 6px rgba(0,0,0,0.08);
    }

    .voice-table-3 td {
      background: #f3eafa;
      border: none;
      position: relative;
      padding: 14px;
      font-size: 14px;
    }

    .voice-table-3 td::before {
      content: attr(data-label);
      font-weight: 600;
      color: #5b3a85;
      display: block;
      margin-bottom: 6px;
      font-size: 16px;
    }
  }
</style>

<div class="voice-table-3">
  <table>
    <thead>
      <tr>
        <th>Written</th>
        <th>Rewrite with English kept</th>
        <th>Rewrite fully in Arabic</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td data-label="Written"><bdi dir="rtl">الـiPhones</bdi></td>
        <td data-label="Rewrite with English kept"><bdi dir="rtl">أجهزة iPhone</bdi></td>
        <td data-label="Rewrite fully in Arabic"><bdi dir="rtl">أجهزة آيفون</bdi></td>
      </tr>

      <tr>
        <td data-label="Written"><bdi dir="rtl">بالـFace ID</bdi></td>
        <td data-label="Rewrite with English kept"><bdi dir="rtl">باستخدام Face ID</bdi></td>
        <td data-label="Rewrite fully in Arabic"><bdi dir="rtl">ببصمة الوجه</bdi></td>
      </tr>

      <tr>
        <td data-label="Written"><bdi dir="rtl">من الـApp Store</bdi></td>
        <td data-label="Rewrite with English kept"><bdi dir="rtl">من متجر App Store</bdi></td>
        <td data-label="Rewrite fully in Arabic"><bdi dir="rtl">من آب ستور</bdi></td>
      </tr>

      <tr>
        <td data-label="Written"><bdi dir="rtl">الـtracking link</bdi></td>
        <td data-label="Rewrite with English kept"><bdi dir="rtl">رابط tracking</bdi></td>
        <td data-label="Rewrite fully in Arabic"><bdi dir="rtl">رابط التتبع</bdi></td>
      </tr>
    </tbody>
  </table>
</div>

كيف تؤثر الاختصارات والأرقام والعربيزي على النصوص ثنائية اللغة؟

تمثل الاختصارات والأرقام والعربيزي مآزق شائعة أخرى؛ فقد تُقرأ الاختصارات ككلمات مدمجة، أو تُنطق الأرقام باللغة الخطأ، كما تُقرأ أرقام العربيزي مثل 7 و3 كأرقام حرفية. لذا، اكتب كل عنصر منها صراحةً بالطريقة التي ترغب بسماعها.

bash
<style>
  .voice-table-4 {
    width: 100%;
    font-family: Inter, sans-serif;
  }

  .voice-table-4 table {
    width: 100%;
    border-collapse: collapse;
    border-radius: 12px;
    overflow: hidden;
    font-size: 16px;
    margin: 0;
  }

  .voice-table-4 th,
  .voice-table-4 td {
    border: 1px solid #ffffff;
    padding: 16px 18px;
    text-align: left;
    vertical-align: top;
    background: #f3eafa;
    color: #1a1a1a;
  }

  .voice-table-4 th {
    background: #2c0f4a;
    font-weight: 600;
    color: #ffffff;
    font-size: 20px;
    border: none;
  }

  .voice-table-4 tr:nth-child(even) td {
    background: #f7f1fb;
  }

  @media (max-width: 700px) {
    .voice-table-4 table thead {
      display: none;
    }

    .voice-table-4 table,
    .voice-table-4 tbody,
    .voice-table-4 tr,
    .voice-table-4 td {
      display: block;
      width: auto;
    }

    .voice-table-4 tr {
      margin-bottom: 20px;
      background: #fff;
      border-radius: 10px;
      padding: 12px;
      box-shadow: 0 2px 6px rgba(0,0,0,0.08);
    }

    .voice-table-4 td {
      background: #f3eafa;
      border: none;
      position: relative;
      padding: 14px;
      font-size: 14px;
    }

    .voice-table-4 td::before {
      content: attr(data-label);
      font-weight: 600;
      color: #5b3a85;
      display: block;
      margin-bottom: 6px;
      font-size: 16px;
    }
  }
</style>

<div class="voice-table-4">
  <table>
    <thead>
      <tr>
        <th>Written</th>
        <th>Risk</th>
        <th>Write this instead</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td data-label="Written"><strong>OTP</strong></td>
        <td data-label="Risk">Read as a word, or letters in English</td>
        <td data-label="Write this instead"><bdi dir="rtl">رمز التحقق</bdi></td>
      </tr>

      <tr>
        <td data-label="Written"><strong>VAT</strong></td>
        <td data-label="Risk">Read as a word</td>
        <td data-label="Write this instead"><bdi dir="rtl">ضريبة القيمة المضافة</bdi></td>
      </tr>

      <tr>
        <td data-label="Written"><strong>Dr. Sarah</strong></td>
        <td data-label="Risk">Abbreviation read letter by letter</td>
        <td data-label="Write this instead"><bdi dir="rtl">الدكتورة سارة</bdi></td>
      </tr>

      <tr>
        <td data-label="Written"><strong>7abibi</strong></td>
        <td data-label="Risk">The 7 read as a number</td>
        <td data-label="Write this instead"><bdi dir="rtl">حبيبي</bdi></td>
      </tr>

      <tr>
        <td data-label="Written"><strong>5%</strong></td>
        <td data-label="Risk">Number read in English</td>
        <td data-label="Write this instead"><bdi dir="rtl">خمسة بالمئة</bdi></td>
      </tr>
    </tbody>
  </table>
</div>

العربيزي، وهو كتابة العربية بأحرف وأرقام لاتينية، شائع في المحادثات اليومية لكن ينبغي ألا يصل أبداً إلى نصوص توليد الصوت؛ فالأرقام تمثل أصواتاً عربية ليس لها مقابل لاتيني، وسيقوم النموذج الصوتي بقراءتها كأرقام مجردة.

لماذا قد يبدو النص ثنائي اللغة سليماً للقراءة لكنه يبدو خاطئاً عند نطقه؟

قد يظهر النص المختلط بين العربية والإنجليزية بترتيب مشوش بصرياً بحسب اتجاه النص في المحرر، غير أن الصوت يقرأ المحارف دائماً وفق الترتيب المخزن في الذاكرة. لذا فإن الكُتّاب الذين يحررون في حقول موجهة من اليسار إلى اليمين قد يحاولون «إصلاح» سطر سليم في الأصل، فيتسببون في إفساده.

تُرتّب الشاشات النصوص ثنائية الاتجاه باستخدام Unicode bidirectional algorithm، التي تعتمد على اتجاه الفقرة المحيطة. قمنا بعرض الجملتين نفسهما في حقل من اليسار إلى اليمين وحقل آخر من اليمين إلى اليسار؛ ورغم تطابق المحارف تماماً، ظهرت الكلمات الإنجليزية ونقطة نهاية الجملة وبادئة "الـ" في أماكن مختلفة في الحقل المكتوب من اليسار إلى اليمين.

عرض الجمل نفسها ثنائية اللغة (عربي وإنجليزي) في حقل من اليسار إلى اليمين وحقل من اليمين إلى اليسار، مع ترتيب الكلمات المخزن
اختبار العرض لدينا، نوفمبر 2026: المحارف نفسها، وعرض مختلف، وترتيب قراءة واحد.

القاعدة العملية: اكتب نصوص السيناريو ثنائية اللغة وراجعها في محرر نصوص يعمل من اليمين إلى اليسار، مثل مستند مضبوط باللغة العربية، وتأكد من ترتيب الكلمات عبر الاستماع إليها بدلاً من مجرد النظر إليها.

أي صوت ينبغي أن يقرأ نصاً ثنائي اللغة بالعربية والإنجليزية؟

استخدم صوتاً مصمماً لكلا اللغتين عندما يحتوي النص على العديد من الكلمات الإنجليزية، وصوتاً عربياً عندما تقتصر الإنجليزية على أسماء علامات تجارية متفرقة. وأياً كان اختيارك، اختبر المصطلحات الإنجليزية بعينها في نصك قبل توليد الملف الصوتي بالكامل.

تتضمن قائمة الأصوات المميزة في Munsit صوت Maya، وهو صوت يدعم اللغتين الإنجليزية والعربية، إلى جانب أصوات باللهجات السعودية والإماراتية وبالفصحى. كما يقبل API التوليد إعدادات لهجة تشمل auto أو emirati أو fusha. استمع إلى كيفية تعامل كل صوت مع أسماء علاماتك التجارية في Munsit text to speech studio، وقارن بين أصوات اللهجات في Arabic AI voice generator guide.

بالنسبة لخطوط الهاتف، حيث لا يستطيع المتصلون رؤية النص ولديهم فرصة واحدة فقط لسماعه، يُفضل التقليل من الكلمات الإنجليزية قدر الإمكان. يغطي دليلنا حول best Arabic text to speech voices for call centres أنظمة الاتصال الهاتفي بمزيد من التفصيل.

كيف يمكنك فحص النصوص ثنائية اللغة تلقائياً؟

مرّر النص عبر أداة فحص تحدد كل كلمة إنجليزية، وتَحسب مرات التبديل بين اللغتين، وتنبّهك إلى البادئات المتصلة والاختصارات والعربيزي، ثم صحّح الكلمات المُشار إليها قبل توليد الصوت. يستغرق الفحص بضع ثوانٍ فقط، ويكتشف المشكلات التي يسهل إغفالها بالعين المجردة أثناء القراءة.

كتبنا لهذا المقال أداة فحص برمجية بسيطة بلغة Python. لا تتطلب أي مكتبات إضافية وتعمل سطراً بسطر.

switch_check.py
"""Find Arabic and English switch points in a text to speech script."""
import sys

ARABIZI_DIGITS = set("235679") # 3 = ع, 7 = ح, 5 = خ and so on


def is_arabic(ch):
return "ء" <= ch <= "ي" or ch == "ـ"


def is_latin(ch):
return ch.isascii() and ch.isalpha()


def is_word_char(ch):
return is_arabic(ch) or is_latin(ch) or ch.isdigit()


def clean(word):
"""Strip punctuation from both ends of a word."""
junk = "".join(c for c in word if not is_word_char(c))
return word.strip(junk)


def script_of(word):
ar = any(is_arabic(c) for c in word)
en = any(is_latin(c) for c in word)
return "mixed" if ar and en else "en" if en else "ar" if ar else "other"


def flag(word, script):
if script == "mixed":
return "Arabic prefix joined to English" # بالـAI
if script != "en":
return None
if word.isascii() and set(word) & ARABIZI_DIGITS and not word.isdigit():
return "Arabizi (Arabic in Latin letters)" # 7abibi
core = word.removesuffix("s")
if 2 <= len(core) <= 6 and core.isupper():
return "acronym" # OTP, VAT
return None


def analyse(line):
words = [w for w in (clean(w) for w in line.split()) if w]
scripts = [script_of(w) for w in words]
spoken = [s for s in scripts if s != "other"]
switches = sum(1 for a, b in zip(spoken, spoken[1:]) if a != b)
flags = [(flag(w, s), w) for w, s in zip(words, scripts) if flag(w, s)]
english = sum(1 for s in scripts if s in ("en", "mixed"))
return len(words), english, switches, flags


if __name__ == "__main__":
lines = open(sys.argv[1], encoding="utf8").read().splitlines()
for n, line in enumerate(lines, 1):
if not line.strip():
continue
words, english, switches, flags = analyse(line)
print(f"line {n}: {words} words, {english} English, {switches} switches")
for kind, word in flags:
print(f" {kind}: {word}")


شغّله باستخدام الأمر python switch_check.py script.txt. في عيّنتنا المكونة من 10 أسطر، رصد البرنامج 33 تبديلاً بين اللغتين و14 مشكلة: 10 بادئات متصلة، و3 اختصارات، وكلمة عربيزي واحدة. وبعد إعادة صياغة الأسطر بالكامل باللغة العربية، لم يسجل البرنامج أي كلمات إنجليزية أو مشكلات. أما إذا أعدت الصياغة بنص مختلط يُبقي أسماء العلامات التجارية بالإنجليزية، فسيستمر ظهور مرات التبديل، وهو أمر طبيعي بمجرد أن تكون كل كلمة إنجليزية منفصلة بذاتها.

ست خطوات لإعداد سيناريو تحويل النص إلى كلام ثنائي اللغة بالعربية والإنجليزية
من اختيار الصوت إلى الاستماع عند كل تبديل في اللغة.

من اختيار الصوت إلى الاستماع عند كل تبديل في اللغة.

يمكن لفِرق العمل التي تُولّد مقاطع صوتية بأحجام كبيرة إجراء الفحص نفسه قبل كل طلب؛ ويوضح Arabic text to speech API guide for developers كيفية أتمتة عملية التوليد.

إخلاء المسؤولية

  • كُتبت الأسطر التجريبية العشرة لهذا المقال لتعكس الاستخدام الشائع في اللهجة الخليجية، ولم تُؤخذ من بيانات عملاء حقيقيين؛ لذا ستُظهر النصوص الفعلية معدلات تبديل مختلفة.
  • تُحدد أداة فحص التبديل المخاطر الشائعة بالاعتماد على قواعد بسيطة، ولا ترصد جميع مشكلات النطق؛ لذا احرص دائماً على الاستماع إلى الملف الصوتي.
  • تستند تفاصيل أصوات ومعاملات Munsit إلى وثائقها الرسمية المتاحة للجمهور والتي جرت مراجعتها في أكتوبر 2026، وقد تخضع للتغيير. يختلف نطق المصطلحات الإنجليزية المحددة من صوت لآخر، وينبغي اختباره دائماً.
  • تعود ملكية أسماء المنتجات والعلامات التجارية لأصحابها المعنيين، ولا يعني ذكرها أي تبعية أو تأييد.

الأسئلة الشائعة

هل يمكن لصوت واحد في تحويل النص إلى كلام قراءة اللغتين العربية والإنجليزية؟

يمكن لصوت واحد في تحويل النص إلى كلام قراءة اللغتين العربية والإنجليزية إذا كان مصمماً لدعم كلتيهما، ومع ذلك ينبغي اختبار كل مصطلح إنجليزي في النص، نظراً لأن نطق أسماء العلامات التجارية والكلمات التقنية يختلف من صوت لآخر.

هل يجب كتابة أسماء العلامات التجارية الإنجليزية بحروف عربية في تحويل النص إلى كلام؟

يُفضّل إبقاء أسماء العلامات التجارية الإنجليزية بحروف لاتينية إذا كان الصوت ينطقها بشكل صحيح وكان الجمهور يلفظها بالإنجليزية، وتُكتب بحروف عربية فقط عندما يخطئ الصوت في نطق التهجئة اللاتينية.

لماذا يخطئ تحويل النص إلى كلام في قراءة كلمات مثل الـapp؟

يخطئ تحويل النص إلى كلام في قراءة كلمات مثل الـapp لأن البادئة العربية والكلمة الإنجليزية تُشكّلان وحدة واحدة (token) بأبجديتين مختلفتين، لذا قد يُسقط الصوت البادئة أو يقرؤها على نحو خاطئ؛ وتفادياً لهذه المشكلة، يُفضَّل كتابة التطبيق أو فصل الكلمة الإنجليزية.

ما مدى شيوع التبديل اللغوي في نصوص اللهجة الخليجية؟

يُعد التبديل اللغوي شائعاً للغاية في نصوص اللهجة الخليجية؛ ففي عينتنا المكونة من 10 أسطر بالأسلوب الخليجي، كانت 27% من الكلمات بالإنجليزية وتغيرت اللغة 33 مرة، بمعدل 3.3 تحولاً لكل سطر.

هل يمكن لتحويل النص إلى كلام قراءة العربيزي؟

لا ينبغي تزويد تحويل النص إلى كلام بنصوص العربيزي، لأن الأرقام مثل 7 و3 التي تُعبّر عن أصوات عربية ستُقرأ كأرقام؛ ويجب كتابة كلمات العربيزي بأحرف عربية قبل توليد الصوت.

مشاركةLinkedInXWhatsApp