تبدیل متن به گفتار در پایتون
پروژه تبدیل متن به گفتار در پایتون
در این مقاله با نحوه تبدیل متن خود به صدا با APIهای پایتون و گوگل آشنا خواهید شد.
تبدیل متن به گفتار فرایندی است که در آن، متن ورودی به وویس تبدیل می شود. در این فرآیند، کلمات را در دستگاه های دیجیتالی می گیرد و با یک کلیک یا لمس انگشت آنها را به صدا تبدیل می کند. پروژه پایتون متن به گفتار برای افرادی که با خواندن مشکل دارند بسیار مفید خواهد بود.
پیش نیازهای پروژه
برای اجرای این پروژه، ما از مفاهیم اولیه Python ،Tkinter ،gTTS و کتابخانه های playound استفاده خواهیم کرد.
Tkinter یک کتابخانه GUI پایتون استاندارد است که یکی از سریع ترین و ساده ترین راه ها برای ایجاد برنامه های GUI با استفاده از Tkinter است.
gTTS (Google Text-to-Speech) یک کتابخانه پایتون است که یک کتابخانه بسیار آسان است و متن را به صدا تبدیل می کند.
ماژول playsound برای پخش فایل های صوتی استفاده می شود. با استفاده از این ماژول، می توانیم یک فایل صوتی را با یک خط کد پخش کنیم.
برای نصب کتابخانه های مورد نیاز، می توانید از دستور pip install استفاده کنید:
pip install tkinter pip install gTTS pip install playsound
پروژه تبدیل متن به گفتار
در این پروژه، ما پیامی را که می خواهیم به صدا تبدیل شود اضافه می کنیم و روی دکمه پخش کلیک می کنیم تا وویس مربوط به آن پیام متنی پخش شود. انجام پروژه شامل مراحل زیر است:
- افزودن کتابخانه های مورد نیاز
- ایجاد واسط کاربری (پنجره نمایش)
- تعریف توایع
اینها مراحل اساسی هستند که ما در این پروژه پایتون انجام خواهیم داد. پس بیایید شروع کنیم.
- افزودن کتابخانه های مورد نیاز
from tkinter import * From gtts import gTTS From playsound import playsound
2. ایجاد واسط کاربری
root = Tk() geometry root.("350x300") root.configure(bg='ghost white') root.title("Viraai - TEXT TO SPEECH")
Tk () به ایجاد tkinter اولیه برای GUI استفاده می شود
geometry () برای تنظیم عرض و ارتفاع پنجره استفاده می شود
configure () برای دسترسی به ویژگی های پنجره استفاده می شود
bg برای تنظیم رنگ پس زمینه استفاده می شود
title () عنوان پنجره را تنظیم می کند
Label(root, text = "TEXT_TO_SPEECH", font = "arial 20 bold", bg='white smoke').pack() Label(text ="Viraai", font = 'arial 15 bold', bg ='white smoke' , width = '20').pack(side = 'bottom') Msg = StringVar() Label(root,text ="Enter Text", font = 'arial 15 bold', bg ='white smoke').place(x=20,y=60) entry_field = Entry(root, textvariable = Msg ,width ='50') entry_field.place(x=20,y=100)
ویجت Label برای نمایش یک یا چند خط متنی که کاربران قادر به تغییر آن نیستند استفاده می شود.
root نامی است که ما به پنجره خود انتخاب می کنیم.
text متنی که روی برچسب نمایش می دهیم.
font که متن در آن نوشته شده است.
pack بسته بندی ویجت سازمان یافته در بلوک.
Msg یک متغیر نوع رشته است.
Entry () برای ایجاد یک قسمت متن ورودی استفاده می شود.
textvariable برای بازیابی متن فعلی به ویجت ورودی استفاده می شود.
place () ویجت ها را با قرار دادن آنها در موقعیت خاصی در ویجت والد سازماندهی می کند.
3. نوشتن توابع و کدهای مورد نیاز
تابعی برای تبدیل متن به گفتار
def Text_to_speech(): Message = entry_field.get() speech = gTTS(text = Message) speech.save('Viraai.mp3') playsound('Viraai.mp3')
تابع خروج
def Exit(): root.destroy()
تابع ریست
def Reset(): Msg.set("")
ایجاد دکمه ها
Button(root, text = "PLAY", font = 'arial 15 bold' , command = Text_to_speech ,width = '4').place(x=25,y=140) Button(root, font = 'arial 15 bold',text = 'EXIT', width = '4' , command = Exit, bg = 'OrangeRed1').place(x=100 , y = 140) Button(root, font = 'arial 15 bold',text = 'RESET', width = '6' , command = Reset).place(x=175 , y = 140)
این تابع زمانی فراخوانی می شود که برنامه اجرا شود.
root.mainloop()
همه کدهای پروژه به صورت یکجا
## import libraries from tkinter import * from gtts import gTTS from playsound import playsound ################### Initialized window#################### root = Tk() root.geometry('350x300') root.resizable(0,0) root.config(bg = 'ghost white') root.title('Viraai - TEXT_TO_SPEECH') ##heading Label(root, text = 'TEXT_TO_SPEECH' , font='arial 20 bold' , bg ='white smoke').pack() Label(root, text ='Viraai' , font ='arial 15 bold', bg = 'white smoke').pack(side = BOTTOM) #label Label(root, text ='Enter Text', font ='arial 15 bold', bg ='white smoke').place(x=20,y=60) ##text variable Msg = StringVar() #Entry entry_field = Entry(root,textvariable =Msg, width ='50') entry_field.place(x=20 , y=100) ###################define function############################## def Text_to_speech(): Message = entry_field.get() speech = gTTS(text = Message) speech.save('Viraai.mp3') playsound('Viraai.mp3') def Exit(): root.destroy() def Reset(): Msg.set("") #Button Button(root, text = "PLAY" , font = 'arial 15 bold', command = Text_to_speech, width =4).place(x=25, y=140) Button(root,text = 'EXIT',font = 'arial 15 bold' , command = Exit, bg = 'OrangeRed1').place(x=100,y=140) Button(root, text = 'RESET', font='arial 15 bold', command = Reset).place(x=175 , y =140) #infinite loop to run program root.mainloop()
دیدگاهتان را بنویسید