Faire parler la Raspberry

كيفية جعل Raspberry Pi يقرأ النص باستخدام eSpeak.

محدث 5 November 2019 - 0 تعليقات - , , ,

ⓘ ربما تمت ترجمة هذه المقالة جزئيًا أو كليًا باستخدام أدوات آلية. نحن نعتذر عن أي أخطاء قد يسببها هذا.

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

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

في هذا البرنامج التعليمي ، سنرى كيفية استخدام سمع المستخدم بدلاً من رؤيته ، من خلال جعل Raspberry Pi الخاص بك يتكلم النص باستخدام برنامج eSpeak ، والذي يسمى Text To Speech.

الأجهزة التي تجعل Raspberry Pi حديثًا

لكي نتمكن من جعل Raspberry Pi الخاص بك يتحدث ، سنحتاج إلى المعدات التالية:

قم بتثبيت eSpeak على Raspberry Pi

لجعل Raspberry Pi الخاص بك يتحدث ، سنستخدم برنامج eSpeak ، وهو برنامج تحويل النص إلى كلام مفتوح المصدر.

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

يعد تثبيت eSpeak على Raspberry Pi أمرًا بسيطًا للغاية لأنه موجود بالفعل في المستودعات. لذلك نحتاج فقط إلى تحديث المستودعات ونطلب تثبيت eSpeak:

sudo apt update
sudo apt install espeak -y

اقرأ جملة مع eSpeak

الآن بعد أن تم تثبيت eSpeak ، سنتمكن من جعلها تقرأ الجملة الأولى. ولكن قبل ذلك ، سوف نتأكد من خروج الصوت من منفذ Jack الخاص بـ Raspberry Pi للوصول إلى مكبرات الصوت الخاصة بنا.

للقيام بذلك ، قم بتشغيل الأمر sudo raspi-config ، ثم انتقل إلى "Advanced Options" ، و "Audio" ، و "Force 3.5mm ('headphone') jack" وأخيراً "Finish".

سنقوم بإنشاء مجلد espeak في دليل المستخدم ، قم بتنزيل ملف صوتي وتشغيله للتحقق من أن كل شيء يعمل بشكل صحيح:

mkdir /home/pi/espeak
cd /home/pi/espeak
wget https://raspberry-pi.fr/download/espeak/test.mp3 -O test.mp3
ffplay -nodisp test.mp3

يجب أن تسمع عزفًا على مقياس C كبير.

الآن بعد أن علمنا أن المتحدثين يعملون ، سنطلب من eSpeak قول العبارة ، "توت العليق تطفو على كرسي جدي". لهذا ، نستخدم الأمر أدناه:

espeak -a 200 -v fr+f3 "Les framboises sont perchées sur le tabouret de mon grand-père." --stdout | aplay

الذي يعطينا شيئًا كهذا …

نعم ، الصوت سيء ، لكننا سنحسن ذلك لاحقًا.

دعنا نلتف حول الأمر قليلاً لمحاولة فهم:

  • espeak قم بتشغيل برنامج espeak
  • -a 200 يشير إلى مستوى الصوت الذي سيتم استخدامه للصوت. يتراوح من 0 إلى 200 ويكون 100 افتراضيًا.
  • -v fr+f3 يخبرنا اللغة التي يجب استخدامها. fr يتوافق مع اللغة الفرنسية ، +f3 يشير إلى أننا نريد استخدام الشكل الثالث لصوت الإناث الذي اقترحته eSpeak. تذكر أن تقوم بتكييف رمز اللغة مع النص الخاص بك.
  • الجملة في الاقتباسات هي الجملة التي ستتحدث بها eSpeak. بدلاً من ذلك ، كان بإمكاننا أيضًا أن نطلب منه قراءة ملف نصي عرضيًا. -f le_chemin/du/fichier.txt.
  • --stdout يخبر eSpeak أنه بدلاً من تشغيل الصوت مباشرة ، يجب أن يرسل البيانات التي تم إنشاؤها إلى الإخراج القياسي للمحطة.
  • | aplay يشير إلى أنه سيتم إعادة توجيه الإخراج الذي تم إنشاؤه بواسطة eSpeak إلى مدخلات برنامج aplay ، وهو برنامج يسمح بتشغيل ملفات الصوت بتنسيق Wave ، الذي تم إنشاؤه بواسطة eSpeak. لاحظ أنه بدلاً من ذلك يمكننا استخدام > mon_fichier.wav لحفظ إخراج الصوت في ملف.

كما ترون ، ليس eSpeak بل هو aplay الذي يشغل الصوت. السبب في ذلك بسيط للغاية ، لقد تم التنصت على espeak في Raspberry Pi لبعض الإصدارات …

بضعة أسطر من البق espeak.
وهذا يا صديقي ، هذا ما نسميه "حشرة" …

إذا حاولت جعل eSpeak يتحدث مباشرة ، فستحصل على أخطاء تتعلق بـ Alsa ، خادم الصوت Raspberry Pi. لذلك فإن أبسط حل هو إرسال البيانات إلى اللعب ، والذي يعمل في حد ذاته بشكل مثالي. في النهاية يعمل وهذا كل ما يهم.

قم بتحسين صوت eSpeak عن طريق تثبيت MBROLA على Raspberry.

كما ترى ، فإن الأصوات التي تصدرها eSpeak قذرة تمامًا. لا داعي للذعر ، لدينا حل لتحسين هذا.

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

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

الغريب أن برنامج MBROLA غير متوفر في مستودعات Raspbian ، بينما تتوفر بيانات اللغة. وقد أدى ذلك إلى جعل تثبيت بيانات اللغة هذه مستحيلاً …

حتى كيفن هارت يجده عربات التي تجرها الدواب!
ماذا ماذا؟

لا تقلق ، لدينا الحل! في الواقع ، كانت الروح الطيبة كريمة بما يكفي لإنشاء حزمة MBROLA لـ Raspberry Pi نفسها ، وبالتالي قررنا إنشاء مرآة على الموقع.

لذلك سنقوم بتنزيل وتثبيت هذه الحزمة بالأوامر أدناه:

cd ~/espeak
wget https://raspberry-pi.fr/download/espeak/mbrola3.0.1h_armhf.deb -O mbrola.deb
sudo dpkg -i mbrola.deb

والآن بعد تثبيت MBROLA ، سنتمكن من تنزيل ملفات اللغة التي نحتاجها. لذلك بالنسبة لي سيكون كذلك mbrola-fr1، أي أول صوت فرنسي. تكييف الأمر مع لغتك.

sudo apt install mbrola-fr1 -y

كل ما يتعين علينا القيام به الآن هو الحصول على طلب eSpeak السابق وتكييفه لإنشاء الصوتيات وقراءتها بواسطة MBROLA. الذي سيعطينا الأمر أدناه.

espeak -a 200 -v mb-fr1 -s 150 "Les framboises sont perchées sur le tabouret de mon grand-père." --stdout | aplay

الذي يعطينا الصوت أدناه:

بالطبع ، نشعر دائمًا أنه روبوت. لكن اعترف أنه لا يزال هناك الأفضل!

ستجد جزئيًا نفس المعلمات كما في السابق ، ولكن مع تغييرين:

  • -v mb-fr1 يشير إلى أننا نريد استخدام MBROLA لإنشاء ملف صوتي mbوالصوت الفرنسي رقم 1 -fr1.
  • -s 150 يشير إلى متى نريد إنشاء الملف بسرعة 150 كلمة في الدقيقة. القيمة الافتراضية هي 165 ، لكنني أجدها سريعة بعض الشيء ، على الأقل بالنسبة للفرنسية.

كما في السابق ، يمكنك بالطبع تعديل الأمر لإنشاء ملف وقراءة النص من ملف txt وما إلى ذلك.

من خلال دمج هذه الأوامر مع أشياء مثل قراءة علامات RFID وما شابه ، يمكنك بسهولة إنشاء أنظمة داخل السيارة بواجهات كاملة نسبيًا.

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

مشاركة
النشرة الإخبارية
الكاتب :
Raspberry Pi FR
انضم إلى مجتمع Raspberry Pi
كمبيوتر بقيمة 35 دولارًا باع بالفعل 10 ملايين نسخة
شراء RASPBERRY PI الجديد 4
البرامج التعليمية ذات الصلة
اتصل بـ Raspberry Pi بدون إنترنت باستخدام المنفذ التسلسلي. استخدم قارئ RFID مع Raspberry Pi. لماذا يجب أن أشرح بيتكوين لفرانسيس إنفو بدلاً من جدتي؟ كيفية عمل موجه Tor باستخدام Raspberry Pi. قم بتشغيل وإيقاف تشغيل مؤشر LED باستخدام Raspberry Pi و Python.
No Comments
مشاركة
الاشتراك في الرسائل الإخبارية
اشترك في النشرة الإخبارية.
هل أعجبك هذا المقال ؟
اشترك وابق على اطلاع!