কম্পিউটার টিউটোরিয়াল

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


স্পিচ রিকগনিশন হোম অটোমেশন, AI ইত্যাদি অ্যাপ্লিকেশনে সবচেয়ে উপকারী ফিচারের একটি। এই বিভাগে আমরা দেখব কীভাবে পাইথন এবং গুগলের স্পিচ API ব্যবহার করে স্পিচ রিকগনিশন করা যায়।

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

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

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

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

দ্বিতীয় প্যারামিটার হলো চান্ক সাইজ। এটি ব্যবহার করে আমরা নির্দিষ্ট করতে পারি একবারে কত ডেটা পড়তে চাই। এটি ২-এর ঘাতের একটি সংখ্যা হবে, যেমন ১০২৪ বা ২০৪৮ ইত্যাদি।

আমাদের স্যাম্পলিং রেটও নির্দিষ্ট করতে হবে যাতে কতক্ষণ পর পর ডেটা রেকর্ড করা হচ্ছে প্রসেসিং-এর জন্য তা নির্ধারণ করা যায়।

যেহেতু আশেপাশে কিছু অনিবার্য নויז থাকতে পারে, তাই আমাদের সঠিক ভয়েস लेने के জন্য অ্যাম্বিয়েন্ট নויז অ্যাডজাস্ট করতে হবে।

স্পিচ রিকগনিশনের ধাপসমূহ

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

  • চান্ক সাইজ, স্যাম্পলিং রেট, অ্যাম্বিয়েন্ট নויז অ্যাডজাস্টমেন্ট ইত্যাদি ব্যবহার করে মাইক্রোফোন কনফিগার করুন।

  • ভয়েস পাওয়ার জন্য কিছুক্ষণ অপেক্ষা করুন

    • যখন ভয়েস রিকগনাইজ হয়, তখন এটিকে টেক্সটে কনভার্ট করার চেষ্টা করুন, অন্যথায় কিছু এরর দেখান।

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

উদাহরণ কোড

import speech_recognition as spreg

# স্যাম্পলিং রেট এবং ডেটা সাইজ সেটআপ
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)  # লিসেনিং-এর বদলে record ব্যবহার
    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. পাইথনে News API ব্যবহার করে শীর্ষ সংবাদ আনা

  4. পাইথনে cx_Freeze ব্যবহার করে এক্সিকিউটেবল বানানো