استفاده از SpeechRecognition برای گفتار در پایتون
در دنیای امروز، رابطهای کاربری مبتنی بر صدا به سرعت در حال محبوب شدن هستند. از دستیارهای صوتی مانند سیری و الکسا گرفته تا برنامههای کاربردی که امکان دیکته متن را فراهم میکنند، فناوری تشخیص گفتار نقش مهمی ایفا میکند. پایتون، با داشتن کتابخانههای قدرتمند، ابزارهای مناسبی برای توسعه این نوع برنامهها در اختیار توسعهدهندگان قرار میدهد. یکی از این کتابخانهها، SpeechRecognition است که استفاده از آن نسبتاً ساده بوده و امکان دسترسی به موتورهای تشخیص گفتار مختلف را فراهم میکند. این مقاله به بررسی عمیق کتابخانه SpeechRecognition، نحوه نصب و استفاده از آن، و همچنین مثالهای کاربردی برای پیادهسازی برنامههای تشخیص گفتار در پایتون میپردازد. این مقاله در دسته بندی ‘کتابخانههای خاص و کاربردی’ در آموزش پایتون قرار میگیرد.
مقدمهای بر SpeechRecognition
SpeechRecognition یک کتابخانه پایتون است که رابطی ساده برای دسترسی به موتورهای تشخیص گفتار مختلف، از جمله Google Speech Recognition، CMU Sphinx، Microsoft Bing Voice Recognition و غیره فراهم میکند. این کتابخانه به شما امکان میدهد تا صدا را از میکروفون یا یک فایل صوتی دریافت کرده و آن را به متن تبدیل کنید. SpeechRecognition به طور خاص برای مبتدیان طراحی شده است و استفاده از آن بسیار آسان است.
نصب SpeechRecognition
برای نصب SpeechRecognition، میتوانید از pip، مدیر بسته پایتون استفاده کنید. دستور زیر را در ترمینال یا خط فرمان خود اجرا کنید:
pip install SpeechRecognition
پس از نصب، ممکن است نیاز به نصب موتورهای تشخیص گفتار خاصی داشته باشید. به عنوان مثال، برای استفاده از Google Speech Recognition، باید بسته PyAudio را نیز نصب کنید.
pip install PyAudio
توجه داشته باشید که نصب PyAudio ممکن است در سیستمعاملهای مختلف، نیاز به مراحل اضافی داشته باشد. برای مثال، در لینوکس ممکن است نیاز به نصب کتابخانههای توسعهای مربوط به پورتآدیو داشته باشید.
مفاهیم کلیدی
قبل از شروع کدنویسی، مهم است که با مفاهیم کلیدی SpeechRecognition آشنا شوید:
- Recognizer: این کلاس، هسته اصلی کتابخانه است و وظیفه تشخیص گفتار را بر عهده دارد.
- Microphone: این کلاس، امکان دسترسی به میکروفون سیستم را فراهم میکند.
- AudioFile: این کلاس، امکان خواندن صدا از یک فایل صوتی را فراهم میکند.
- EnergyThreshold: این پارامتر، حداقل سطح انرژی صدا را تعیین میکند که باید برای تشخیص گفتار در نظر گرفته شود.
- PauseThreshold: این پارامتر، مدت زمانی را تعیین میکند که صدا باید ساکت باشد تا به عنوان یک مکث در نظر گرفته شود.
نمونه کد: تشخیص گفتار از میکروفون
در این بخش، یک نمونه کد ساده برای تشخیص گفتار از میکروفون ارائه میشود:
import speech_recognition as sr
# ایجاد یک شی Recognizer
r = sr.Recognizer()
# ایجاد یک شی Microphone
with sr.Microphone() as source:
print("لطفا صحبت کنید!")
audio = r.listen(source)
try:
# تشخیص گفتار با استفاده از Google Speech Recognition
text = r.recognize_google(audio, language="fa-IR")
print("شما گفتید: {}".format(text))
except sr.UnknownValueError:
print("Google Speech Recognition نتوانست گفتار را تشخیص دهد.")
except sr.RequestError as e:
print("نمیتوان با سرویس Google Speech Recognition ارتباط برقرار کرد؛ {0}".format(e))
در این کد، ابتدا کتابخانه SpeechRecognition را وارد میکنیم. سپس، یک شی Recognizer و یک شی Microphone ایجاد میکنیم. با استفاده از متد listen()، صدا را از میکروفون دریافت میکنیم. در نهایت، با استفاده از متد recognize_google()، صدا را به متن تبدیل میکنیم. پارامتر language=”fa-IR” برای تعیین زبان فارسی استفاده میشود.
نمونه کد: تشخیص گفتار از فایل صوتی
در این بخش، یک نمونه کد برای تشخیص گفتار از یک فایل صوتی ارائه میشود:
import speech_recognition as sr
# ایجاد یک شی Recognizer
r = sr.Recognizer()
# ایجاد یک شی AudioFile
with sr.AudioFile('audio.wav') as source:
audio = r.record(source)
try:
# تشخیص گفتار با استفاده از Google Speech Recognition
text = r.recognize_google(audio, language="fa-IR")
print("متن فایل صوتی: {}".format(text))
except sr.UnknownValueError:
print("Google Speech Recognition نتوانست گفتار را تشخیص دهد.")
except sr.RequestError as e:
print("نمیتوان با سرویس Google Speech Recognition ارتباط برقرار کرد؛ {0}".format(e))
در این کد، به جای Microphone، از AudioFile استفاده میکنیم. با استفاده از متد record()، صدا را از فایل صوتی میخوانیم. بقیه مراحل مشابه کد قبلی است.
تنظیمات پیشرفته
SpeechRecognition امکانات پیشرفتهای را برای تنظیم دقیق فرآیند تشخیص گفتار فراهم میکند. در اینجا به برخی از این تنظیمات اشاره میکنیم:
- Energy Threshold: با تنظیم این پارامتر، میتوانید حساسیت میکروفون را تنظیم کنید. اگر سطح انرژی صدا خیلی پایین باشد، ممکن است SpeechRecognition نتواند گفتار را تشخیص دهد.
- Pause Threshold: با تنظیم این پارامتر، میتوانید مدت زمانی را تعیین کنید که صدا باید ساکت باشد تا به عنوان یک مکث در نظر گرفته شود.
- Adjust for ambient noise: با استفاده از متد adjust_for_ambient_noise()، میتوانید SpeechRecognition را برای حذف نویز محیطی آموزش دهید.
مثال:
import speech_recognition as sr
r = sr.Recognizer()
with sr.Microphone() as source:
r.adjust_for_ambient_noise(source)
print("لطفا صحبت کنید!")
audio = r.listen(source)
try:
text = r.recognize_google(audio, language="fa-IR")
print("شما گفتید: {}".format(text))
except sr.UnknownValueError:
print("Google Speech Recognition نتوانست گفتار را تشخیص دهد.")
except sr.RequestError as e:
print("نمیتوان با سرویس Google Speech Recognition ارتباط برقرار کرد؛ {0}".format(e))
استفاده از موتورهای تشخیص گفتار مختلف
SpeechRecognition از موتورهای تشخیص گفتار مختلفی پشتیبانی میکند. برای استفاده از یک موتور خاص، باید متد مربوطه را فراخوانی کنید. به عنوان مثال، برای استفاده از CMU Sphinx، باید متد recognize_sphinx() را فراخوانی کنید.
text = r.recognize_sphinx(audio, language="fa-IR")
توجه داشته باشید که برای استفاده از برخی از موتورها، ممکن است نیاز به نصب بستههای اضافی داشته باشید.
کاربردهای SpeechRecognition
SpeechRecognition کاربردهای متنوعی دارد. برخی از این کاربردها عبارتند از:
- دیکته متن: تبدیل گفتار به متن برای نوشتن سریعتر و آسانتر.
- کنترل صوتی: کنترل برنامهها و دستگاهها با استفاده از دستورات صوتی.
- دستیارهای صوتی: ساخت دستیارهای صوتی شخصیسازی شده.
- ترجمه صوتی: ترجمه همزمان گفتار از یک زبان به زبان دیگر.
- سیستمهای پاسخگویی صوتی: ساخت سیستمهای پاسخگویی صوتی تعاملی.
نتیجهگیری
SpeechRecognition یک کتابخانه قدرتمند و آسان برای استفاده است که امکان توسعه برنامههای تشخیص گفتار در پایتون را فراهم میکند. با استفاده از این کتابخانه، میتوانید به راحتی صدا را به متن تبدیل کنید و از آن در برنامههای کاربردی مختلف استفاده کنید. با تنظیمات پیشرفته و پشتیبانی از موتورهای تشخیص گفتار مختلف، SpeechRecognition انعطافپذیری بالایی را برای توسعهدهندگان فراهم میکند. این کتابخانه ابزاری ارزشمند برای هر کسی است که به دنبال کار با فناوری تشخیص گفتار در پایتون است.

بدون دیدگاه