टाइम स्टैम्प ढूँढना
हमें पता है कि हमारी sound wave की sampling frequency 48 kHz है, लेकिन अगर यह न पता हो तो? हम इसे अपनी sound wave array की लंबाई को sound wave की अवधि से भाग देकर निकाल सकते हैं. हालाँकि, Python का wave मॉड्यूल इससे बेहतर तरीका देता है. किसी wave ऑब्जेक्ट पर getframerate() कॉल करने से उस wave ऑब्जेक्ट का frame rate मिलता है.
फिर हम NumPy के linspace() मेथड का उपयोग करके अपनी sound wave array के हर integer का time stamp निकाल सकते हैं. यह भविष्य में हमारी sound wave को visualize करने में मदद करेगा.
linspace() मेथड start, stop और num पैरामीटर लेता है और start और stop के बीच num समान दूरी वाले मान लौटाता है.
हमारे केस में, start शून्य होगा, stop हमारी sound wave array की लंबाई को frame rate से भाग देने पर (या हमारे audio फाइल की अवधि) और num हमारी sound wave array की लंबाई होगी.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Spoken Language Processing
अभ्यास निर्देश
- sound wave bytes को integers में कन्वर्ट करें.
getframerate()का उपयोग करके good morning ऑडियो फाइल का frame rate निकालें.stopकोsoundwave_gmकी लंबाई को frame rate से भाग देने पर सेट करें.numकोsoundwave_gmकी लंबाई पर सेट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Read in sound wave and convert from bytes to integers
good_morning = wave.open('good_morning.wav', 'r')
signal_gm = good_morning.readframes(-1)
soundwave_gm = np.frombuffer(____, dtype='int16')
# Get the sound wave frame rate
framerate_gm = good_morning.____
# Find the sound wave timestamps
time_gm = np.linspace(start=0,
stop=____/____,
num=____)
# Print the first 10 timestamps
print(time_gm[:10])