BaşlayınÜcretsiz Başlayın

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ır
Kursu Görüntüle

Egzersiz 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.
  • stop değerini, kare hızına bölünmüş soundwave_gm uzunluğu olarak ayarla.
  • num değerini, soundwave_gm uzunluğ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])
Kodu Düzenle ve Çalıştır