কম্পিউটার

Google Speech API ব্যবহার করে পাইথনে স্পিচ রিকগনিশন


হোম অটোমেশন, এআই ইত্যাদির মতো বেশ কয়েকটি অ্যাপ্লিকেশনের মধ্যে স্পিচ রিকগনিশন হল সবচেয়ে দরকারী বৈশিষ্ট্যগুলির মধ্যে একটি৷ এই বিভাগে আমরা দেখব কিভাবে পাইথন এবং গুগলের স্পিচ API ব্যবহার করে বক্তৃতা শনাক্তকরণ করা যায়৷

এই ক্ষেত্রে আমরা স্পিচ রিকগনিজিং এর জন্য মাইক্রোফোন ব্যবহার করে একটি অডিও দেব। মাইক্রোফোন কনফিগার করতে, কিছু পরামিতি আছে।

এই মডিউলটি ব্যবহার করার জন্য, আমাদের SpeechRecognition মডিউলটি ইনস্টল করতে হবে। পিয়াডিও নামে আরেকটি মডিউল আছে, যা ঐচ্ছিক। এটি ব্যবহার করে আমরা অডিওর বিভিন্ন মোড সেট করতে পারি।

sudo pip3 install SpeechRecognition
sudo apt-get install python3-pyaudio

বাহ্যিক মাইক্রোফোন বা USB মাইক্রোফোনের জন্য, কোনো অসুবিধা এড়াতে আমাদের সঠিক মাইক্রোফোন প্রদান করতে হবে। লিনাক্সে, যদি আমরা USB ডিভাইসের জন্য সম্পর্কিত তথ্য দেখানোর জন্য 'lsusb' টাইপ করি।

দ্বিতীয় প্যারামিটারটি হল খণ্ডের আকার। এটি ব্যবহার করে আমরা একবারে কত ডেটা পড়তে চাই তা নির্দিষ্ট করতে পারি। এটি একটি সংখ্যা হবে যার শক্তি 2, যেমন 1024 বা 2048 ইত্যাদি৷

প্রক্রিয়াকরণের জন্য কত ঘন ঘন ডেটা রেকর্ড করা হয় তা নির্ধারণ করতে আমাদের নমুনার হারও নির্দিষ্ট করতে হবে।

যেহেতু আশেপাশে কিছু অনিবার্য শব্দ হতে পারে, তাই সঠিক ভয়েস নেওয়ার জন্য আমাদের পরিবেষ্টিত নয়েজ সামঞ্জস্য করতে হবে।

বক্তৃতা শনাক্ত করার পদক্ষেপগুলি

  • বিভিন্ন মাইক্রোফোন সম্পর্কিত তথ্য নিন।

  • খণ্ড আকার, স্যাম্পলিং রেট, অ্যাম্বিয়েন্ট নয়েজ অ্যাডজাস্টমেন্ট ইত্যাদি ব্যবহার করে মাইক্রোফোন কনফিগার করুন৷

  • ভয়েস পেতে কিছু সময় অপেক্ষা করুন

    • ভয়েসটি স্বীকৃত হলে, এটিকে পাঠ্যে রূপান্তর করার চেষ্টা করুন, অন্যথায় কিছু ত্রুটি দেখান।

  • প্রক্রিয়া বন্ধ করুন।

উদাহরণ কোড

import speech_recognition as spreg
#Setup the sampling rate and the data size
sample_rate = 48000
data_size = 8192
recog = spreg.Recognizer()
with spreg.Microphone(sample_rate = sample_rate, chunk_size = data_size) as source:
recog.adjust_for_ambient_noise(source)
print('Tell Something: ')
   speech = recog.listen(source)
try:
   text = recog.recognize_google(speech)
   print('You have said: ' + text)
except spreg.UnknownValueError:
   print('Unable to recognize the audio')
except spreg.RequestError as e: 
   print("Request error from Google Speech Recognition service; {}".format(e))

আউটপুট

$ python3 318.speech_recognition.py
Tell Something: 
You have said: here we are considering the asymptotic notation Pico to calculate the upper bound 
of the time complexity so then the definition of the big O notation is like this one
$

মাইক্রোফোন ব্যবহার না করেও, আমরা কিছু অডিও ফাইলকে ইনপুট হিসেবে নিতে পারি যাতে এটিকে স্পীকে রূপান্তর করা যায়।

উদাহরণ কোড

import speech_recognition as spreg
sound_file = 'sample_audio.wav'
recog = spreg.Recognizer()
with spreg.AudioFile(sound_file) as source:
   speech = recog.record(source) #use record instead of listning
   try:
      text = recog.recognize_google(speech)
      print('The file contains: ' + text)
   except spreg.UnknownValueError:
      print('Unable to recognize the audio')
   except spreg.RequestError as e: 
      print("Request error from Google Speech Recognition service; {}".format(e))

আউটপুট

$ python3 318a.speech_recognition_file.py 
The file contains: staying ahead of the curve demand planning new technology it also helps you progress in your career
$ 

  1. পাইথন কোড ব্যবহার করে গুগল সার্চ করছেন?

  2. পাইথনে gmplot প্যাকেজ ব্যবহার করে গুগল ম্যাপ প্লট করছেন?

  3. পাইথনে নিউজ API ব্যবহার করে শীর্ষ সংবাদ আনা হচ্ছে

  4. পাইথনে CX_Freeze ব্যবহার করা