Zaman damgalarını bulma
Ses dalgamızın frekansının 48 kHz olduğunu biliyoruz, peki ya bilmeseydik? Bunu, ses dalgası dizimizin uzunluğunu ses dalgamızın süresine bölerek bulabilirdik. Ancak Python'ın wave modülü daha iyi bir yol sunar. Bir wave nesnesi üzerinde getframerate() çağırmak, o nesnenin kare hızını döndürür.
Daha sonra NumPy'nin linspace() metodunu kullanarak ses dalgası dizimizdeki her tam sayının zaman damgasını bulabiliriz. Bu, ileride ses dalgamızı görselleştirmemize yardımcı olacak.
linspace() metodu start, stop ve num parametrelerini alır ve start ile stop arasında eşit aralıklı num değer döndürür.
Bizim durumumuzda, start sıfır olacak, stop ses dalgası dizimizin uzunluğunun kare hızına bölümü (ya da ses dosyamızın süresi) olacak ve num ses dalgası dizimizin uzunluğu olacak.
Bu egzersiz
Python ile Konuşma Dili İşleme
kursunun bir parçasıdırEgzersiz talimatları
- Ses dalgası baytlarını tam sayılara dönüştür.
getframerate()kullanarak good morning ses dosyasının kare hızını al.stopdeğerini, kare hızına bölünmüşsoundwave_gmuzunluğu olarak ayarla.numdeğerini,soundwave_gmuzunluğu olarak ayarla.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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])