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

পাইথনে Pydub এবং Google Speech Recognition API দিয়ে অডিও প্রসেসিং

এই টিউটোরিয়ালে আমরা অডিও ফাইল নিয়ে কাজ করব। অডিওকে ছোট টুকরোতে ভাগ করে কনটেন্ট রিকগনিশন করব এবং টেক্সট ফাইলে সেভ করব।

প্রয়োজনীয় মডিউল ইনস্টল করুন:

pip install pydub
pip install audioread
pip install SpeechRecognition

প্রক্রিয়ার দুটি ধাপ:

  • অডিওকে চাংক (chunks) তে ভাগ করা।
  • SpeechRecognition ব্যবহার করে কনটেন্ট এক্সট্রাক্ট করা।

আপনার লাইব্রেরি থেকে একটি অডিও ফাইল নিন। কোড শুরু করা যাক।

উদাহরণ কোড

import pydub
import speech_recognition

# অডিও ফাইল লোড
audio = pydub.AudioSegment.from_wav('audio.wav')

# অডিওর দৈর্ঘ্য (মিলিসেকেন্ডে)
audio_length = len(audio)
print(f'Audio Length: {audio_length}')

chunk_counter = 1
audio_text = open('audio_text.txt', 'w+')

# স্লাইস করার পয়েন্ট (৬০ সেকেন্ড)
point = 60000
# ওভারল্যাপ
rem = 8000

flag = 0
start = 0
end = 0

# অডিওর মধ্য দিয়ে ইটারেট
for i in range(0, 2 * audio_length, point):
    # প্রথম ইটারেশন
    if i == 0:
        start = 0
        end = point
    else:
        start = end - rem
        end = start + point
    
    # শেষ চেক
    if end >= audio_length:
        end = audio_length
        flag = 1
    
    # চাংক বের করুন
    chunk = audio[start:end]
    chunk_name = f'chunk_{chunk_counter}'
    
    # চাংক সেভ করুন
    chunk.export(chunk_name, format='wav')
    print(f'{chunk_name} start: {start} end: {end}')
    
    chunk_counter += 1
    
    # স্পিচ রিকগনিশন
    recognizer = speech_recognition.Recognizer()
    with speech_recognition.AudioFile(chunk_name) as chunk_audio:
        chunk_listened = recognizer.listen(chunk_audio)
    
    try:
        # গুগল API থেকে টেক্সট পান
        content = recognizer.recognize_google(chunk_listened)
        audio_text.write(content + '\n')
    except speech_recognition.UnknownValueError:
        print('Audio is not recognized')
    except speech_recognition.RequestError as Error:
        print("Can't connect to the internet")
    
    if flag == 1:
        audio_text.close()
        break

আউটপুট

Audio Length: 480052
chunk_1 start: 0 end: 60000
chunk_2 start: 52000 end: 112000
...
chunk_10 start: 468000 end: 480052

টেক্সট ফাইলের কনটেন্ট:

English and I am here in San Francisco I am back in San Francisco last week we were in Texas at a teaching country and The Reader of the teaching conference was a plan e Re improve teaching as a result you are house backup file with bad it had some English is coming soon one day only time 12 o1 a.m. everything about her English now or powering on my email list sports in your city check your email email Harjeet girlfriend next Tuesday checking the year enjoying office English keep listening keep smiling keep enjoying your English learning

উপসংহার

অডিও প্রসেসিং এবং স্পিচ রিকগনিশনের বেসিক উদাহরণ। প্রশ্ন থাকলে কমেন্ট করুন।


  1. পাইথন এবং Scrapy দিয়ে ওয়েব স্ক্রেপিং

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

  3. পাইথনে News API ব্যবহার করে শীর্ষ সংবাদ আনা

  4. Mac-এ Python 3 আপগ্রেড ও ব্যবহার করা