Zaman damgalarını bulma
Ses dalgamızın örnekleme frekansının 48 kHz olduğunu biliyoruz, peki ya bilmiyor olsaydık? Ses dalgası dizimizin uzunluğunu ses dalgamızın süresine bölerek bunu bulabilirdik. Ancak Python'un wave modülünde daha iyi bir yol var. Bir dalga nesnesi üzerinde getframerate() çağırmak, o dalga nesnesinin çerçeve hızını döndürür.
Daha sonra NumPy'nin linspace() yöntemini kullanarak ses dalgası dizimizdeki her bir tamsayının zaman damgasını bulabiliriz. Bu, ileride ses dalgamızı görselleştirmemize yardımcı olacak.
linspace() yöntemi 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 durumda start sıfır olacak, stop ses dalgası dizimizin uzunluğunun çerçeve hızına bölümü (veya ses dosyamızın süresi) olacak ve num ses dalgası dizimizin uzunluğu olacak.
Bu egzersiz, kursun bir parçasıdır
Python ile Konuşma Dili İşleme
Egzersiz talimatları
- Ses dalgası baytlarını tamsayılara dönüştür.
- Good morning ses dosyasının çerçeve hızını
getframerate()kullanarak al. stopdeğerini, çerçeve hızına bölünmüşsoundwave_gmuzunluğu olacak şekilde ayarla.numdeğerinisoundwave_gmuzunluğu olacak şekilde ayarla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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])