ساخت برنامه تشخیص گفتار با پایتون
- زمان مطالعه: 4 دقیقه
- اشتراک گذاری این نوشته در:
در این آموزش جذاب ساخت برنامه تشخیص گفتار با پایتون، نحوه تبدیل فایلهای صوتی به فایل متنی به کمک پایتون را یاد میگیریم. فرایندِ تشخیص گفتار را که امروزه در دنیای حقیقی مورد استفاده قرار میگیرد. به طور مثال، دستیارهای صوتی شخصی مثل «Home Mini» گوگل، «Alexa» آمازون و «Siri» اپل تنها تعدادی از ابزارهای محبوب و پرکاربرد این حوزه هستند که بسیار شناخته شده هستند.
تبدیل متن به صدا در پایتـون
تشخیص گفتار صرفهجویی در زمان را در پی دارد چراکه نیاز به تایپ کردن را از بین میبرد. با این سیستم میتوانیم با سایر وسیلهها ارتباط برقرار کنیم. این کار باعث میشود استفاده از ابزارها و فناوریها بسیار سریعتر و آسانتر باشد. در واقع تشخیص گفتار نمونه خوبی از هوش مصنوعی در دنیای حقیقی است.
در این نوشته، یک مدل تشخیص گفتار به کمک پایتون را پیاده سازی میکنیم. این مدل میتواند جملهها را از فایل صوتی شناسایی کند. در گام بعدی، این جملات به یک سند متنی وارد میشوند.
فراخوانی کتابخــانه
در ابتدا باید ماژول SpeechRecognition را نصب کنیم تا بتوانیم آن را در برنامه فراخوانی کنیم. ماژول SpeechRecognition از APIهای تشخیص مختلفی پشتیبانی میکند و Google Speech API یکی از آنهاست. شما میتوانید در اینجا(کلیک کنید) اطلاعات بیشتری در خصوص این ماژول بدست آورید.
حال کتابخانه را به کمک قطعه کد زیر Import می کنیم:
import speech_recognition as sr
ساخت سیستـم تشخیـص
در گام نخست، باید نمونه سیستم تشخیص خودمان را مقداردهی کنیم:
r = sr.Recognizer()
وارد کردن فایل صوتـی
پسوند فایل در هنگام وارد کردنِ فایل صوتی به برنامه اهمیت دارد. من کد را در فرمتهای دیگر نیز آزمایش کردم، اما نتیجهای که با فرمت «wav» به دست آمد، خیلی بهتر بود. امکان استفاده از وبسایت تبدیلکنندۀ فایل نیز وجود دارد. این وبسایتها قابلیت تبدیل فایلهای صوتی به wav را نیز فراهم میکنند. برای نمونه، اگر از memoهای صوتی مَکبوک برای ضبط صدا استفاده کنید، فایل در قالب m4a ذخیره خواهد شد. اگر این عبارت را در موتور جستجوی گوگل وارد کنید: «تبدیل فایل m4a به فرمت فایل wav به صورت آنلاین»، در نتایج به دست آمده می توانید وب سایتهای تبدیل کننده فرمتهای صوتی زیادی را بیابید.
AudioFile تابعی برای وارد کردن فایل و Sr ماژول تشخیص گفتار است.
audio_file = sr.AudioFile('test.wav')
تشخیص گفتار
از روش recognize_google برای تشخیص گفتار استفاده میکنیم:
with audio_file as source:
r.adjust_for_ambient_noise(source)
audio = r.record(source)result = r.recognize_google(audio)
# By KhaneCode
وارد کردن نتایج به فایل متنی
در کد زیر، یک فایل متنی ایجاد و باز میکنیم. سپس، نتیجهای که در کد قبلی بدست آمد را وارد میکنیم. وقتی فرایند به پایان برسد، عبارت «ready» را در پایانه خواهید دید:
with open('test.txt',mode ='w') as file:
file.write("Recognized text:")
file.write("\n")
file.write(result)
print("ready!")
کل کدهای پروژه به صورت یکجــا و کامل:
# importing the module
import speech_recognition as sr # define the recognizer
r = sr.Recognizer() # speech recognition
with audio_file as source:
r.adjust_for_ambient_noise(source)
audio = r.record(source)result = r.recognize_google(audio) # exporting the result
with open('test.txt',mode ='w') as file:
file.write("Recognized text:")
file.write("\n")
file.write(result)
print("ready!")