كيفية جعل Raspberry Pi يقرأ النص باستخدام eSpeak.
تعليقاتⓘ Cet article peut avoir été partiellement ou totalement traduit à l'aide d'outils automatiques. Nous nous excusons des erreurs que cela pourrait engendrer.
في مجال الحوسبة ، ربما تكون مشكلة واجهة المستخدم واحدة من أكثر المشكلات تعقيدًا. ذلك تسمية الأشياء وإبطال ذاكرة التخزين المؤقت …
أسهل طريقة لتقديم المعلومات إلى الإنسان من الكمبيوتر هي عادةً استخدام الرؤية. ولكن من أجل ذلك تحتاج إلى شاشة ضخمة ومكلفة وبالتالي فهي غير مناسبة جدًا للاستخدام على متن الطائرة.
في هذا البرنامج التعليمي ، سنرى كيفية استخدام سمع المستخدم بدلاً من رؤيته ، من خلال جعل 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 يتحدث مباشرة ، فستحصل على أخطاء تتعلق بـ 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 حلاً وسطاً جيداً بين سهولة الاستخدام وسرعة التنفيذ والكفاءة.