الذكاء الإصطناعي – خدمة جوجل كلاود للتعرف على الكلام

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

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

حمستني تغطية الزميلات من Arab Women in Computing لمؤتمر قوقل وخصوصا منتجات قوقل كلاود إلى تجربة أحد منتجاتها وهي Google Cloud AI و تحديدا Speech-to-Text API service .

سبب اختياري لهذه الخدمة ينبع من توجهي البحثي ,تقنيات الكلام أو speech technologies , والذي يتضمن أنظمة التعرف على الكلام, أو Automatic Speech Recognition System. تهدف الخدمة الى تفريغ محتويات أي ملف صوتي الى نص مكتوب. كذلك تدعم لغات كثيره منها اللغة العربية. يُستخدم التفريغ الصوتي في تطبيقات عدة منها تفريغ المقابلات الصوتية، ترجمة الأفلام ، دعم إمكانية الوصول (accessibility) لضعاف السمع عبر استبدال المحتوى الصوتي بآخر مقروء، وكذلك تحليل الخصائص الصوتية وخصائص الأصوات الكلامية للمتحدث (اذا كان التفريغ الصوتي مدعم بالطوابع الزمانية timestamps – أي توقيت بداية اصدار كل صوت كلامي ،ومدة اصدار هذا الصوت).

تستخدم قوقل نماذج تم تدريبها بواسطة الخلايا العصبية العميقة لتنفيذ عمل تفريغ المحتوى الصوتي. تتنوع طرق استخدام هده الخدمة حيث توفر قوقل مجموعة من المراجع وواجهات البرمجة الشائعة الاستخدام لدى المطورين. فمثلا يمكنك تحميلclient library واستخدامها في بيئتك البرمجية المفضلة لأرسال أوامر التفريغ الصوتي الى الكلاود، أو عبر أداة gcloud والتي توفر command line interface لمنصة قوقل كلاود. وفقا لقوقل، فإن هذه الخدمة يمكنها أن تفرغ صوتيا التالي:

  1. الملفات القصيرة والتي تقل مدتها عن دقيقة.
  2. الملفات الطويلة (أطول من دقيقة)
  3. الفيديوهات.
  4. و كذلك خدمة التفريغ الآني للبث المباشر.

كما توفر قوقل نماذج محسنة للتفريغ الآلي تم بناءها بشكل مخصوص لأصوات سجلت في حالات مختلفة كالصوت البشري عبر الهاتف ( حيث تتغير هنا خصائص الصوت البشري وبالتالي تحتاج إلى نماذج مختلفة عن تلك التي تم تدريبها على الصوت البشري في الظروف المثالية). تدعي قوقل كذلك أن نظامها عالي المتانة ضد الضجيج (Noise Robustness) حيث يستطيع استخلاص الصوت المسجل في ظروف رديئة بكفاءة عالية.

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

تهدف تجربتي الاستكشافية البسيطة السريعة الممتعة إلى استشعار إلى أي مدي يمكن الاستفادة من هذه الخدمة في المحتوى العربي، وكذلك من هي الفئة المستهدفة لهذا النوع من الخدمات: هل هم الباحثون أم المطورون ؟

في هذه التجربة، قمت باختبار التالي:

  • مدى كفاءة التفريغ الصوتي الآلي في معالجة نوعين من الكلام. النوع الاول هو الكلام المقروء read speech وكما يدل اسمه فهو ذلك الكلام الذي نصدره عندما نقرأ نصا ما بدون أي نية للتفاعل مع الآخرين. النوع الثاني وهو الكلام العفوي أو spontaneous speech . يتصف الكلام العفوي بالتوقف الموقت، احتوائه على كلمات وعبارات مكررة او كلمات تم نطقها بشكل خاطي .
  • مدى كفاءة التفريغ الصوتي في معالجة كلام فئات عمرية مختلفة من المتحدثين. هنا اخترت فئتين من المتحدثين: انثى طفل كبير، و انثى طفل صغير (كلتاهما في سن المدرسة). تختلف هذه الفئات العمرية في أمور عدة منها الخصائص الصوتية والكلامية، وبالتالي قد تحتاج الى نماذج تم تدريبها بشكل مستقل لهذه الفئات .
  • مدى كفاءة التفريغ الصوتي لملف صوتي تم تسجيله في ظروف رديئة (في ظل وجود الضجيج).

تفاصيل تقنية

قمت بتسجيل مجموعة من الأصوات باستخدام جهاز macbook pro عبر المحرر الصوتي المفتوح المصدر اوداستي (Audacity) وكذلك باستخدام الميكروفون المبني في الجهاز نفسه (خصائص التسجيل الصوتي: احادي القناة mono , مُعدّلات الاعتيان (Sampling Rate) : ٤٤١٠٠ هيرتز ، و معدل نقل البيانات (Bit Rate): ٣٢ بت في الثانية) – هنا مزيد من المعلومات حول الإعدادات الصوتية لملفات الصوت والتي توصي بها قوقل.

اخترت أداة gcloud لإرسال أوامر التفريغ للكلاود عبر واجهة الاوامر (التيرمنال). سبب اختياري لها يعود الى تفضيل شخصي لاستخدام واجهة الاوامر فقط لا اكثر. كبداية يجب تحميل وتنصيب Google Cloud SDK وكذلك انشاء GCP Console project ومصادقته. بعد ذلك يمكنك ارسال طلبات التفريغ عبر واجهة الاوامر. مثلا:

 gcloud ml speech recognize [file directory] --language-code='en-US'
 

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

هذا مثال من قوقل لتفريغ ملف صوتي موجود على الكلاود

gcloud ml speech recognize ‘gs://cloud-samples-tests/speech/brooklyn.flac’ \ –language-code=’en-US’
تستجيب قوقل كلاود لهذا الأمر بإرسال JSON file يحتوي على نص التفريغ وكذلك درجة الثقة ،وهي معيار لقياس دقة نظام التعرف على الكلام (مابين ٠-١ – الأقرب إلى ١ يعني الأكثر دقة) .

 

{   “results”: [    

{       “alternatives”: [        

{           “confidence”: 0.9840146,        

  “transcript”: “how old is the Brooklyn Bridge”        

}      

]    

}

  ]

}

 

يمكنك كذلك طلب تضمين الطوابع الزمانية للكلمات في التفريغ ، مثلا:

gcloud ml speech recognize 'gs://cloud-samples-tests/speech/brooklyn.flac' --language-code='en-US'--include-word-time-offsets

وهذه النتيجة متضمنة البداية والنهاية الزمنية لكل كلمة:

 

  “results”: [

    {

      “alternatives”: [

        {

          “confidence”: 0.98360395,

          “transcript”: “how old is the Brooklyn Bridge”,

          “words”: [

            {

              “endTime”: “0.300s”,

              “startTime”: “0s”,

              “word”: “how”

            },

            {

              “endTime”: “0.600s”,

              “startTime”: “0.300s”,

              “word”: “old”

            },

            {

              “endTime”: “0.800s”,

              “startTime”: “0.600s”,

              “word”: “is”

            },

            {

              “endTime”: “0.900s”,

              “startTime”: “0.800s”,

              “word”: “the”

            },

            {

              “endTime”: “1.100s”,

              “startTime”: “0.900s”,

              “word”: “Brooklyn”

            },

            {

              “endTime”: “1.500s”,

              “startTime”: “1.100s”,

              “word”: “Bridge”

            }

          ]

        }

      ]

    }

  ]

}

 

للأسف لا توفر قوقل full phonetic transcription اي توفير طوابع زمانية للأصوات الكلامية وهي خدمة مهمة للباحثين خصوصا المهتمين بتحليل الكلام speech analysis.

الاختبار الاول: مدى كفاءة التفريغ الصوتي الآلي في معالجة نوعين من الكلام– الكلام المقروء و الكلام العفوي

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

الأمر المختار هو: ضع احمر في الف ٤ الان ، وهي الجملة الرديفة ل place red in A4 now

استجابة التفريغ الصوتي :

“results”: [

    {

      “alternatives”: [

        {

          “confidence”: 0.69072545,

          “transcript”: “\u0636\u0639 \u0627\u062d\u0645\u0631 \u0641\u064a \u0627\u0644\u0641 \u0627\u0631\u0628\u0639\u0647 \u0627\u0644\u0627\u0646”,

         

    }

  ]

 

نظرا لعدم دعم التيرمنال في جهازي للغة العربية فإن الحروف العربية تظهر على شاكلة Unicode . يمكنك تحويل اليونيكود الى حروف عربية باستخدام أي لغة برمجية تناسبك أو عبر هذا الموقع. هذه نتيجة التحويل:

 

results”: [

    {

      “alternatives”: [

        {

          “confidence”: 0.69072545,

          “transcript”: “ضع احمر في الف اربعه الان”,

}

]

}

]

 

وهي استجابة صحيحة بعد حوالى سبع ثواني (بطيئة نوعا ما – قد تكون بسبب سرعة الانترنت).
هنا قمت بزيادة التحدي قليلا عبر قراءة نص أحدى التغريدات باللهجة السعودية المحلية.
وكانت استجابة قوقل ممتازة فاجئتني للأمانة ولكن بعد وقت طويل نسبيا يقدر ب بعد حوالى 39 ثانية:

 

“transcript”: “يا زين رمضان بس من اول ما تبدا التراويح في اخر يوم من شعبان تبدي روحانيه رمضان يا رب ما يطول و لا يخلص بسرعه كعادته”

 

رفعت عيار التحدي وقمت بقراءة قصيدة نبطية ( ظهرت لي كأحد نتائج بحث قوقل لكلمة قصيدة نبطية – اختيار عشوائي للقصيدة فليس لدي أي اهتمام شعري)
وهذه هي نتيجة قوقل بعد 38 ثانية – سقطت فيها كلمة “من” ،واخطأ في كلمة ” فصحى”, لكن مرة أخرى فاق اداء قوقل توقعاتي .

“transcript”: “ابشرك ياسالم الحال سالم فضل ربي و النوايا السليمه العمر فصحى و الليالي غنايم و العافيه يا سالم اكبر غنيمه”

 
بعد اختبار آداء قوقل في الكلام المقروء ، حان وقت اختبار الكلام العفوي:

وهذه النتيجة بعد تقريبا دقيقة حيث نلاحظ ان ال word error rate ارتفع بشكل واضح عن الكلام المقروء .

“transcript”: “الحمدلله هذا اول رمضان اقضي في السعوديه بعد اربع سنوات غربا في بريطانيا اللهم لك الحمد و الشكر على هذه النعمه شعوري ام لا يوسف و توجه بالدعاء و الشكر لله عز وجل على المن علينا”, 

هذا ملف آخر:

وهذه النتيجة بعد ٥١ ثانية ،وتتكرر فيها نفس الملاحظة السابقة:

“transcript”: “اعتقد انه سنه17 كانت سنه صعبه شوي كانت اخر سنه في الدكتوره قضيه سواق تطويل منها في الكتابه هو يعني كان سنه جدا و تعبان و انا عندي اطفال كامل يعني اداره الوقت من اصعب الأشياء”,

 

ما يستفاد من هذه التجربة

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

الاختبار الثاني: مدى كفاءة التفريغ الصوتي في معالجة كلام فئات عمرية مختلفة من المتحدثين.

أول اختبار كان لطفلة صغيرة في سن المدرسة ولكن مازالت في مراحة مبكرة من تطور النطق. هنا طلبت من هذه الطفلة (بعد اخذ موافقة ولي الامر) ان تعد من ١ ال ٦:
كانت استجابة قوقل سليمة بعد تسع ثواني:

“transcript”: “واحد اثنين ثلاثه اربعه خمسه سته”

 

اما هنا فقد طلبت منها ان تقرأ هذه الجملة.

   “transcript”: “انا اسمي يلا نكلم عربي”,

 

اما هنا فقد دار حوار بيني وبينها حول اصدقائها :

استجابة قوقل والتي كانت بعد ٣٦ ثانية يظهر فيها نسبة خطا عالية

“transcript”: “وش اسمك يارا كم عمرك يا رائعه طيب وش اسم اصحابك نايمه فرح ليلى شكرا يا رب”,

 

عدت السيناريو تقريبا مع طفلة كبيره وكانت النتائج نوعا ما افضل للكلام المقروء:

“transcript”: “واحد اثنين ثلاثه اربعه خمسه سته”,

 

“transcript”: “انا اسمي ديمه و انا اتكلم عربي”

 

هنا كنت اتحاور مع ديما حول اسماء صديقاتها وكانت استجابة قوقل بشكل عام جيدة (بغض النظر عن تجاهله لكلمتي “١١” و “ماشاالله”)

“results”: [

    {

      “alternatives”: [

        {

          “confidence”: 0.80511206,

          “transcript”: “وش اسمك ديما كم عمرك ممكن تقولي اسماء اصدقائك ليله تالا دانا فاطمه جانا جانا ريناد في اسماء ثانيه جود”

        }

      ]

    },

    {

      “alternatives”: [

        {

          “confidence”: 0.7552084,

          “transcript”: ” ريوف”

        }

      ]

    },

    {

      “alternatives”: [

        {

          “confidence”: 0.7425305,

          “transcript”: ” شكرا يا ديمه”

        }

      ]

    }

  ]

} 

مايستفاد من هذه التجربة

قد لاتعطي خدمة التفريغ الالي نتائج جيدة اذا كان المتحدث طفل في مرحلة تطور النطق والكلام (اقرا هنا عن مراحل تطور الكلام لدى الأطفال). في هذه الحالة قد يتطلب منك ان تجمع قاعدة بيانات لأطفال في المرحلة العمرية المطلوبة ومن ثم تدريب نظامك للتعرف على الكلام عليها.

الاختبار الأخير: مدى كفاءة التفريغ لملف صوتي تم تسجيله في ظروف رديئة (في ظل وجود الضجيج)

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

هنا أقوم باختبار هذه الميزة عبر تشغيل ضوضاء في الخلفية تحاكي ازعاج المطاعم بشدة 70 db اثناء تسجيلي لجملة قريد (ضع احمر في الف اربعة الان)

قد يتسأل سائل لماذا قمت بتشغيل الضوضاء في نفس الوقت الذي سجلت فيه الجملة ولم اقم بدمجها لاحقا بعد التسجيل في الملف الصوتي.

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

وهذه هي استجابة قوقل بعد ١٥ ثانية ،والتي تظهر نسبة خطا عالية:

“transcript”: “احلى انا في اربعه الان”,

 

هنا قمت بتخفيف الضجيج ل 60 db

“transcript”: “احمر في الاربعاء الان”,

 

مايستفاد من هذه التجربة

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

في الختام

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

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

  • ارحب بجميع الملاحظات والاقتراحات فيما يخص المحتوي العلمي والترجمة.
  • اعتذر مسبقا عن الاخطاء الاملائية نظرا لاستخدامي لوحة مفاتيح غير معربة.
المصدر: Dr. Najwa Alghamdi

أخبرنا عن رأيك في التعليقات أو اترك رداً

اشترك معنا لتكون أول من يعلم بجديدنا

لا تقلق، لن نرسل لك آي رسائل مزعجة. وجودك معنا يعني اننا سنشاركك بالكثير من الاحداث والمقالات، وستصلك آخر المستجدات.

لاتقلق على بياناتك. لن يتم مشاركتها آي طرف آخر!