علی نادری
علی نادری
خواندن ۲ دقیقه·۴ سال پیش

تبدیل متن به صدا با پایتون

GTTS (Google Text-to-Speech)

یک کتابخانه است که از ترجمه گوگل برای تبدیل متن به صدا استفاده می کند

نصب کتابخانه
pip install gtts -U

خب بریم سراغ آموزش، اول کتابخانه را اضافه می کنیم (توجه gtts کتابخانه کوچکی بوده و تنها دو فانکشن gTTs و gttserror را در خود دارد برای همین ما فقط gTTs را اضافه می کنیم)

from gtts import gTTS

خب خیلی ساده رشته مورد نظر را به gTTs می فرستیم و خروجی را در متغییری می ریزیم

speech = gTTs(&quotHello World&quot)

خب حالا می خواهیم خروجی را ذخیره کنیم

speech.save(&quotsound.mp3&quot)
or
gTTs(&quotHello World&quot).save(&quotsound.mp3&quot)

در بالا دو روش مختلف را بیان کردیم یکی اینکه خروجی را داخل یک متغییر ریخته و بعد save را روی آن صدا بزنیم و دوم اینکه در همان خط save را صدا بزنیم

tts (text_to_speech)

یکی دیگر از کتابخانه های معروف در این زمینه tts است

pip install text_to_speech -U

خب بعد از نصب آن را اضافه می کنیم (کتابخانه فقط یک فانکشن دارد)

#import library from text_to_speech import speak

خب حالا به همین راحتی رشته را به کتابخانه می فرستیم

speak(&quothello&quot)

اما هنوز تمام نشد

با استفاده از متود lang می توانیم زبان را انتخاب کنیم

speak(&quothello&quot, lang=&quoten&quot)

با استفاده از متود slow می توانیم سرعت را مشخص کنیم (false یعنی معمولی , True یعنی ارام)

speak(&quothello&quot, lang=&quoten&quot, slow=True)

همان طور که می بینید صدا بلا فاصله پخش می شود، با استفاده از save می توانیم بگوییم که خروجی ذخیره شود

speak(&quothello&quot, lang=&quoten&quot, slow=True, save=True, file=&quotfilename .mp3&quot)

همان طور که می بینید متود file هم اضافه شده است، با استفاده از فایل می گوییم که خروجی را کجا و با چه اسم و فرمتی ذخیره کند


pyttsx3

به گفته یکی از دوستان (navid shaghozahi) از فارسی پشتیبانی میکنه و اضافه شد :) [خودم اطلاعات دقیقی ندارم و سعی نکردم داکیومنت ها را کامل بخوانم پس مباحث کامل نیست]

نصب کتابخانه
pip install pyttsx3 -U
تبدیل متن به صدا
import pyttsx3 engine = pyttsx3.init() engine.say(&quotHello World&quot) engine.runAndWait()

خط اول کتابخانه را وارد کردیم

خط دوم engine را برابر با شی pyttsx3.init() قرار دادیم

خط سوم تابع say را صدا زدیم (برای تنظیم متن) و مقدار "Hello World" را بهش فرستادیم

و در اخر با runAndWait() شی را اجرا می کنیم

چگونه پیکربندی کنیم

برای گرفتن تنظیمات فعلی از

.getProperty()

استفاده می کنیم به این شکل که تنظیمات مورد نظر را بهش ارسال کنیم مثلا :

volume = engine.getProperty('volume')

برای گفتن ولم صدا است (کلمات دیگری ام هست مانند {rate, voices, ......} )

برای تنظیم پیکربندی مورد نظر :

.setProperty()

به این شکل که مقدار مورد نظر و کلید واژه مربوطه را به تابع ارسال می کنیم مثلا :

engine.setProperty('volume',1.0)

که در اینجا ولم صدا را برابر 1.0 قرار دادیم (کلید واژه ها مانند مورد قبل است)

ذخیره صدا
engine.save_to_file('Hello World', 'test.mp3') engine.runAndWait()

اسونه پس توضیح نمیدم

توجه : در لینوکس باید espeak و ffmpeg نصب باشند




شاد و پیروز باشید ;-)

https://pyttsx3.readthedocs.io/en/latest/
https://pypi.org/project/pyttsx3/
https://pypi.org/project/gTTS/
https://pypi.org/project/text-to-speech/


gttsttsپایتونتبدیل متن به صدا با پایتونpyttsx3
اگه خواستی می تونیم با khod.naderi@gmail.com با هم در ارتباط باشیم ;)
شاید از این پست‌ها خوشتان بیاید