كل المقالات

· Casimiro Ferreira· 4 دقيقة قراءة

قولها بشكل صحيح: إزالة اللبس في متجانسات النطق البرتغالية لتحويل النص إلى كلام

  • Datasets
  • Portuguese
  • TTS
  • Grapheme-to-Phoneme
  • NLP
  • Accessibility
  • FOSS

قولها بشكل صحيح: إزالة اللبس في متجانسات النطق البرتغالية لتحويل النص إلى كلام

عندما يقرأ صوت تحويل النص إلى كلام عبارة “Tenho sede”، يتوقّع المستمع البرتغالي أن يسمع كلمة عطش. لكن الكتابة نفسها تمامًا، sede، يمكن أن تعني أيضًا مقرًّا رئيسيًا — والاثنان يُنطقان بحرفَي علة مختلفين. انطقها بحرف العلة الخطأ فلا يبدو الصوت غريبًا فحسب؛ بل ينطق كلمة مختلفة بصوت عالٍ. وبالنسبة لمن يعتمد على TTS ليقرأ له الشاشة، فذلك هو الفارق بين المفهوم والمُربِك.

هذه مشكلة في الواجهة الأمامية — مرحلة تحويل الحرف إلى الصوت (grapheme-to-phoneme) التي تقرّر أيّ أصوات تُقابل الكلمة، قبل وقت طويل من أن يحوّل أي مُرمِّز صوتي عصبي تلك الأصوات إلى صوت مسموع. ولا تُصلح جودة المُرمِّز الصوتي هذا الأمر مهما بلغت. فإذا اختارت الواجهة الأمامية النطق الخطأ، نطق الصوتُ الكلمةَ الخطأ بوضوح تام.

المتجانسات الخطية المختلفة النطق: الكتابة نفسها، صوت مختلف، معنى مختلف

البرتغالية الأوروبية مليئة بكلمات تُكتب بشكل متطابق لكنها تُنطق بجودة حرف علة مختلفة — حرف علة مفتوح مقابل آخر مغلق — حيث يعتمد الاختيار الصحيح على المعنى، لا على القواعد النحوية فقط. إليك بعضها:

  • sedeعطش (e مغلقة، ˈsedɨ) مقابل مقر رئيسي/مقعد (e مفتوحة، ˈsɛdɨ). كلاهما اسم.
  • formaقالب / صينية خَبز (o مغلقة، ˈfoɾmɐ، تُكتب fôrma) مقابل شكل / طريقة (o مفتوحة، ˈfɔɾmɐ).
  • molhoصلصة (o مغلقة) مقابل حزمة (o مفتوحة).
  • corteبلاط ملكي (o مغلقة) مقابل قَطْع (o مفتوحة).

يلتزم نظام TTS الساذج بنطق واحد لكل طريقة كتابة. فيقرأ العطش بحرف علة المقر الرئيسي — في كل مرة — ويسمع المستمع الكلمة الخطأ.

لماذا لا يُجدي “مجرّد وسم قسم الكلام” نفعًا

الحل البديهي هو تشغيل واسم أقسام الكلام (POS) على الجملة واختيار النطق حسب قسم الكلام. وهذا يساعد في بعض الأزواج، لكنه يفشل بحكم التكوين كلما اشترك معنيان في قسم الكلام نفسه.

خذ sede مرة أخرى. العطش والمقر الرئيسي كلاهما اسم. يسِمهما واسم أقسام الكلام بالوسم نفسه — إذ لا توجد إشارة نحوية تُميّز بينهما — فلا يسعه إلا تخمين القراءة الأكثر شيوعًا. وقد قِسنا هذا بالضبط: على مجموعة الاختبار خاصتنا، يسجّل كلٌّ من spaCy و Stanza 0% على معنى العطش لكلمة sede. إذ يختاران دائمًا المقر الرئيسي. ويظهر السقف البنيوي نفسه في corte (قَطْع مقابل بلاط)، وforma (قالب مقابل شكل)، وmolho (صلصة مقابل حزمة): فحين ينقسم المعنى داخل قسم كلام واحد، تعجز القواعد النحوية عن رؤيته.

مجموعة البيانات: وسم المعنى، لا القواعد النحوية

لذلك بنينا مجموعة بيانات مفتوحة تسِم ما يهمّ فعلًا — المعنى. bifonia-pt-homographs هي 56,891 جملة برتغالية أوروبية تغطّي 27 متجانسًا خطيًا مختلف النطق. كل جملة موسومة بالكلمة، ومعناها (الدلالة)، وقسم كلامها، ونطقها بالـ IPA، وصيغة مُستعادة العلامات التشكيلية (على سبيل المثال sêde مقابل séde) تجعل القراءة المقصودة غير ملتبسة على الصفحة.

مفتاح التصنيف هو المعنى — وهذا هو بيت القصيد كله. يبدو سجل واحد هكذا:

{
  "word": "sede",
  "sense": "thirst",
  "pos": "NOUN",
  "ipa": "ˈsedɨ",
  "sentence": "Depois da corrida tinha tanta sede que bebi um litro de água."
}

جرى التحقق من طرق النطق مقابل قاموس infopédia (Porto Editora) بدلًا من تخمينها، وتقسيمات التدريب/الاختبار مُطبَّقة حسب (word, meaning) بحيث يرى نموذج لاحق — BiLSTM مثلًا — كل دلالة في كلا النصفين. وهي منشورة على Hugging Face باسم TigreGotico/bifonia-pt-homographs.

إلى أي مدى يمكن حل المشكلة؟

بوجود بيانات موسومة بالمعنى، تمكّنا من قياس مدى نجاح المقاربات المختلفة في اختيار المعنى الصحيح — وبالتالي النطق الصحيح:

المقاربةالدقة
تخمين الدلالة الأكثر شيوعًا دائمًا≈53%
spaCy POS ← المعنى≈66%
Stanza POS ← المعنى≈75%
مُحلِّل bifonia القائم على القواعد والمعنى≈94%

تتوقّف المقاربات القائمة على أقسام الكلام عند النقطة المتوقّعة تمامًا: إذ يمكنها التوجيه بالقواعد النحوية لكن لا بالمعنى أبدًا، فالانقسامات داخل الأسماء بعيدة المنال. أما مُحلِّلنا — مكتبة bifonia، الخفيفة والخالية تمامًا من الاعتماديات — فيبلغ ≈94%، والأهم أنه يحقّق 100% في حالة sede/العطش التي يسجّل فيها واسمو أقسام الكلام 0%.

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

لماذا يهمّ هذا

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

ولأن مجموعة البيانات مفتوحة والمُحلِّل صغير وقابل للاشتقاق، يمكن لأي شخص يبني واجهة أمامية برتغالية لـ TTS أن يُتقن هذا دون نموذج ضخم — وتنتقل المقاربة نفسها بسلاسة إلى لغة قريبة كالجاليقية، حيث يخلق تمييز حرف العلة المفتوح/المغلق الفخّ نفسه. وتؤدّي البيانات الموسومة دورًا مزدوجًا أيضًا: فهي تمامًا ما تحتاجه لتدريب نماذج إحصائية مُدمجة، كمُصنِّف لكل كلمة، للفرق التي تملك المتن وتريد مُحلِّلًا مُتعلَّمًا إلى جانب المُحلِّل القائم على القواعد.

جرّبها

مجموعة البيانات على Hugging Face على TigreGotico/bifonia-pt-homographs، والمُحلِّل موجود على bifonia. وهو يندمج ضمن عمل الصوتيات البرتغالية الأوسع خلف معالجة اللغة الطبيعية الكلاسيكية للبرتغالية و**منظومة تحويل الحرف إلى IPA لأكثر من 350 لغة** — قطع صغيرة حتمية تجعل الصوت ينطق اللغة بالطريقة التي ينطقها بها أهلها فعلًا.