یک کتابخانه است که از ترجمه گوگل برای تبدیل متن به صدا استفاده می کند
نصب کتابخانه
pip install gtts -U
خب بریم سراغ آموزش، اول کتابخانه را اضافه می کنیم (توجه gtts کتابخانه کوچکی بوده و تنها دو فانکشن gTTs و gttserror را در خود دارد برای همین ما فقط gTTs را اضافه می کنیم)
from gtts import gTTS
خب خیلی ساده رشته مورد نظر را به gTTs می فرستیم و خروجی را در متغییری می ریزیم
speech = gTTs("Hello World")
خب حالا می خواهیم خروجی را ذخیره کنیم
speech.save("sound.mp3")
or
gTTs("Hello World").save("sound.mp3")
در بالا دو روش مختلف را بیان کردیم یکی اینکه خروجی را داخل یک متغییر ریخته و بعد save را روی آن صدا بزنیم و دوم اینکه در همان خط save را صدا بزنیم
یکی دیگر از کتابخانه های معروف در این زمینه tts است
pip install text_to_speech -U
خب بعد از نصب آن را اضافه می کنیم (کتابخانه فقط یک فانکشن دارد)
#import library from text_to_speech import speak
خب حالا به همین راحتی رشته را به کتابخانه می فرستیم
speak("hello")
اما هنوز تمام نشد
با استفاده از متود lang می توانیم زبان را انتخاب کنیم
speak("hello", lang="en")
با استفاده از متود slow می توانیم سرعت را مشخص کنیم (false یعنی معمولی , True یعنی ارام)
speak("hello", lang="en", slow=True)
همان طور که می بینید صدا بلا فاصله پخش می شود، با استفاده از save می توانیم بگوییم که خروجی ذخیره شود
speak("hello", lang="en", slow=True, save=True, file="filename .mp3")
همان طور که می بینید متود file هم اضافه شده است، با استفاده از فایل می گوییم که خروجی را کجا و با چه اسم و فرمتی ذخیره کند
به گفته یکی از دوستان (navid shaghozahi) از فارسی پشتیبانی میکنه و اضافه شد :) [خودم اطلاعات دقیقی ندارم و سعی نکردم داکیومنت ها را کامل بخوانم پس مباحث کامل نیست]
نصب کتابخانه
pip install pyttsx3 -U
تبدیل متن به صدا
import pyttsx3 engine = pyttsx3.init() engine.say("Hello World") 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 نصب باشند
شاد و پیروز باشید ;-)