تبدیل متن به گفتار TTS با برد رزبری پای

متن به گفتار (TTS) نوعی برنامه است که برای تولید نسخه صوتی متن مورد استفاده قرار می گیرد. TTS می تواند تفسیر اطلاعات رایانه را برای یک فرد کم بینا آسان کند یا می تواند برای درک مطلب پیام متنی استفاده شود. غیر از این ، می تواند برای صحبت کردن ربات شما استفاده شود یا می تواند در پروژه های کمکی برای نابینایان برای بیان دستورالعمل های نوشته شده مانند نام خیابان ، نام ساختمان و … استفاده شود.
بسیاری از برنامه های رایگان و پولی متن به گفتار مانند Cepstral و eSpeak وجود دارد. بنابراین ، در این آموزش ، ما قصد داریم چند روش تبدیل متن به گفتار در رزبری پای را بررسی و مقایسه کنیم.
بسته های مورد نیاز TTS
قبل از ادامه کار با متن به گفتار در Raspberry Pi ، برای دریافت خروجی صدا در Raspberry Pi ، باید چند بسته نرم افزاری صوتی را نصب کنیم. در ابتدا نیاز است سیستم عامل رزبیان را بروزرسانی کنیم.
sudo apt-get update sudo apt-get upgrade
سپس برنامه های صوتی alsa را نصب کنید. این بسته شامل ابزارهای مختلف برای پیکربندی دستگاه های صوتی از طریق ALSA (Advanced Linux Sound Architecture) است.
sudo apt-get install alsa-utils
سپس از دستور زیر برای نصب پخش کننده فیلم و صوت MPlayer استفاده کنید:
sudo apt-get install mplayer
توجه: فراموش نکنید که جک 3.5 میلی متری را به عنوان خروجی صدا انتخاب کنید. برای این کار ، دستور “sudo raspi-config” را وارد کنید ، سپس به “System Options” و به “Audio” و به “Force 3.5mm (‘headphone’) jack” بروید و در آخر “Finish” را بزنید.
برنامه های متن به گفتار در رزبری پای
- eSpeak Text-to-Speech
- Festival Text-to-Speech
- Google Text-to-Speech
- Pico Text-to-Speech
- PYTTSX3
1. متن به گفتار eSpeak
eSpeak یک بسته مناسب و کم حجم برای زبان انگلیسی و تعدادی زبان دیگر در سیستم عامل لینوکس و ویندوز است. این یک بسته مدرن و با کاربرد آسان در مقابل سایر بسته های TTS است. به طور کلی میتواند گزینه مناسبی برای اکثر پروژه ها باشد.
برای نصب eSpeak از دستور زیر استفاده کنید:
sudo apt-get install espeak
سپس eSpeak را با استفاده از دستور زیر تست کنید.
espeak “Hello Everyone”
مثال بالا یک مثال ساده برای استفاده از eSpeak بود. با تغییر صدا ، میزان صدا ، سرعت ، لهجه و تأخیر بین کلمات می توانید آن را اصلاح کنید.
تست eSpeak با: صدای زن انگلیسی ، تأکید بر حروف بزرگ (-k) ، صحبت آهسته (-s) در حجم کم (-a) با استفاده از متن مستقیم:
espeak -ven+f2 -k5 -s150 -a 100 -g10 "Hi, Welcome to Circuit Digest Tutorial"

-ven + f2: زبان مورد استفاده را نشان می دهد. “en” نشان دهنده زبان انگلیسی است و f2 صدای زن است. شما می توانید از بین چند صدای مختلف مرد و زن انتخاب کنید: + m1 ، + m2 ، + m3 ، + m4 ، + m5 ، + m6 ، + m7 ، و + f1 ، + f2 ، + f3 ، + f4.
-s150: سرعت صدا را نشان می دهد. پیش فرض 175 است.
-a 200: میزان صدا را برای استفاده از صدا نشان می دهد. دامنه آن از 0 تا 200 است.
-g10: مکث بین کلمات را نشان می دهد. “g” مخفف “gap word” است.
2. متن به گفتار Festival
Festival یکی دیگر از ابزارهای متن باز برای تبدیل متن به گفتار است. این بسته توسط مرکز تحقیقات فن آوری گفتار در انگلستان ساخته شده است ، و چارچوبی را برای ساخت سیستم های TTS ارائه می دهد. این جشنواره در حال حاضر از انگلیسی ، انگلیسی آمریکایی و اسپانیایی پشتیبانی می کند. صدایی مانند یک ربات خشن تولید می کند اما هنوز کیفیت صدای آن از eSpeak بهتر است.
برای نصب Festival از دستور زیر استفاده کنید:
sudo apt-get install festival
Festival را با استفاده از دستور زیر تست کنید:
echo “Hi, Welcome to Circuit Digest Tutorial” | festival --tts

3. متن به گفتار Google
موتور Google Text to Speech برخلاف Festival و eSpeak به صورت آفلاین کار نمی کند. این بسته ابتدا متن را به سرورهای Google ارسال می کند تا فایل گفتاری را ایجاد کند و سپس به Pi شما بازگردانده می شود و با استفاده از MPlayer پخش می شود. Google Text-to-Speech دارای بهترین کیفیت صدا در بین سایر ابزارهای TTS است اما تنها اشکال آن این است که به اتصال اینترنت نیاز دارد.
با استفاده از دستور زیر یک فایل word.sh ایجاد کنید:
nano speech.sh
این خطوط را به پرونده اضافه کنید و با استفاده از CTRL + X > Y آن را ذخیره کنید.
#!/bin/bash
say() { local IFS=+;/usr/bin/mplayer -ao alsa -really-quiet -noconsolecontrols "http://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=$*&tl=en"; }
say $* سپس با استفاده از دستور زیر مجوزها را برای اسکریپت خود تنظیم کنید:
chmod u+x speech.sh
و در نهایت آن را با دستور زیر تست کنید.
./speech.sh “Hi, Welcome to Circuit Digest Tutorial”
4. متن به گفتار Pico
سرویس Pico Text-to-Speech (TTS) از باینری TTS از SVOX برای تولید متن گفتاری استفاده می کند. این کار مستلزم نصب کتابخانه pico TTS بر روی سیستم است. در دبیان ، فقط sudo apt-get install libttspico-utils را وارد کنید. در Debian Buster ، بسته موجود نیست ، اما می توانید بسته ها را به صورت دستی با استفاده از دستورات زیر بارگیری و نصب کنید:
wget http://ftp.us.debian.org/debian/pool/non-free/s/svox/libttspico0_1.0+git20130326-9_armhf.deb wget http://ftp.us.debian.org/debian/pool/non-free/s/svox/libttspico-utils_1.0+git20130326-9_armhf.deb sudo apt-get install -f ./libttspico0_1.0+git20130326-9_armhf.deb ./libttspico-utils_1.0+git20130326-9_armhf.deb
متن به گفتار Pico را با استفاده از دستور زیر تست کنید.
pico2wave -w lookdave.wav "Hi, Welcome to Circuit Digest Tutorial" && aplay lookdave.wav
Pico TTS در حال حاضر از انگلیسی ، انگلیسی آمریکایی ، اسپانیایی ، هلندی ، فرانسوی و ایتالیایی پشتیبانی می کند. کدهای زبان en-GB ، en-US ، es-ES ، de-DE ، fr-FR و it-IT هستند. دستور صحبت کردن متن فوق به زبان ایتالیایی در زیر آورده شده است:
pico2wave -l it-IT -w lookdave.wav "Hi, Welcome to Circuit Digest Tutorial" && aplay lookdave.wav

5. PYTTSX3
pyttsx3 یک کتابخانه تبدیل متن به گفتار در پایتون است. به صورت آفلاین کار می کند و با پایتون 2 و 3 سازگار است. صدا در PYTTSX مشخص نیست و کمی حالت گرفتگی دارد. برای نصب PYTTSX3 از دستور زیر استفاده کنید:
pip install pyttsx3
برای تست PYTTSX3 با گزینه های پیش فرض ، از کد زیر استفاده کنید:
import pyttsx3
engine = pyttsx3.init()
engine.say("Hi, Welcome to Circuit Digest Tutorial")
engine.runAndWait() 
نتیجه گیری
در لیست بالا تا از بهترین برنامه های تبدیل متن به گفتار متن باز قرار داده شده اند. توصیه میشود از سرویس متن به گفتار گوگل استفاده کنید زیرا دارای بهترین کیفیت صدا است اما به اتصال اینترنت نیاز دارد. بسته آفلاین Pico TTS کیفیت بسیار خوبی دارد و از چندین زبان پشتیبانی می کند ، Festival دارای صدای خوبی نیز است ، استفاده از eSpeak آسان است و گزینه های سفارشی سازی خوبی دارد اما کیفیت صدا در آن مناسب نیست.








سلام خوب هستین آیا امکانش هست یک TTS که زبان فارسی رو پشتیبانی کنه نصب کنیم؟
سلام عزیز
به صورت آماده وجود نداره مگر اینکه خودتون طراحی کنید