در این نوشته به چگونگی تبدیل فایلهای صوتی به فایلهای متنی با استفاده از پایتون میپردازیم. این تبدیل حاصل فرایندِ تشخیص گفتار است و به طور متداول در دنیای حقیقی مورد استفاده قرار میگیرد. برای مثال، دستیارهای صوتی شخصی مثل «Home Mini» گوگل، «Alexa» آمازون و «Siri» اپل تنها چند نمونه از ابزارهای محبوب و پرکاربردی هستند که نامشان را شنیدهایم.
تبدیل متن به صدا در پایتون
تشخیص گفتار باعث صرفهجویی در زمان میشود زیرا دیگر نیازی به تایپ کردن نیست. به کمک این سیستم میتوانیم با سایر وسیلهها ارتباط برقرار کنیم؛ بدون اینکه نیاز به نوشتنِ حتی یک خط کُد باشد. این کار باعث میشود وسایل و ابزارهای فناوری به میزان بیشتری در دسترس قرار گرفته و استفاده از آنها آسان شود. تشخیص گفتار نمونه خوبی از بکارگیری هوش مصنوعی در دنیای حقیقی است.
در نوشته حاضر، یک مدل تشخیص گفتار ساده ایجاد میشود. این مدل میتواند جملات را از فایل صوتی شناسایی کند. در وهله بعدی، این جملات به یک سند متنی وارد میشوند.
فراخوانی کتابخانه
در ابتدا باید ماژول SpeechRecognition را نصب کنیم تا بتوانیم آن را در برنامه فراخوانی کنیم. ماژول SpeechRecognition از APIهای تشخیص مختلفی پشتیبانی میکند و Google Speech API یکی از آنهاست. شما میتوانید در اینجا اطلاعات بیشتری در خصوص این ماژول بدست آورید.
حالا میتوان کتابخانه را وارد کرد:
۱ | 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) |
وارد کردن نتایج به فایل متنی
در کد زیر، یک فایل متنی ایجاد و باز میکنیم. سپس، نتیجهای که در کد قبلی بدست آمد را وارد میکنیم. وقتی فرایند به پایان برسد، عبارت «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!") |
اگر شما تابهحال با استفاده از پایتون فایل صوتیای را به متن تبدیل کردید برای ما از مشکلاتی که بر سر راهتان وجود داشته بنویسید.
پایتون عالیههه
موفق باشید دوست عزیز
مفید بود ممنون
ارور result رو میگیره . مشکلش چیه؟
سلام دوست عزیز
از اول امتحان کنین احتمالا یه مرحله ای رو اشتباه رفتین
من حدود ۲ ساله دارم پایتون کار میکنم و خیلی چیز ها هم یاد گرفتم. اما موقه ای که رفتم هوش مصنوعی یاد بگیرم از ۶۰ جلسه که هر کدام یک تا دو ساعت بود فقط تا پنج جلسه اش دوام اووردم!!
سلام من میخواستم یک متغیر تعریف کنم مانندی اینa=’bookو میخوام بدونم که این aاز لحاظ گرامر چه نوع است یعنی فعل است اسم است صفت است یا دیگر
حالا چه نوع کود بنویسم
Key=value
نقش aکلید هست وbook مقدار این کلید هست
من علاقه شدیدی به هوش مصنوعی دارم. اما هنوز شروع نکردم و این مقاله برام درکش سخته. لطفا راهنمایی کنید از کجا باید شروع کنم؟
سلام دوست عزیز
میتونید مقاله شروع یادگیری هوش مصنوعی؛ راهنمایی برای تازهکاران رو مطالعه کنید.
شما باید برای اولین قدم تو هوش مصنوعی زبان برنامه نویسی پایتون رو یاد بگیرید و بعدش برید سراغ machine learning یعنی آموزش فریم ورک های, numpy ,pandas , matplotlib, و …… و بعد برید سراغ دیپ لرنینگ ،مهم ترین بخش تو هوش مصنوعی ماشین لرنینگ و دیپ لرنینگ هست. منابع دقیق رو میتونید سرچ کنید.