Mulai sekarangMulai gratis

Menemukan cap waktu

Kita tahu frekuensi sampling gelombang suara kita adalah 48 kHz, tetapi bagaimana jika kita tidak mengetahuinya? Kita dapat menemukannya dengan membagi panjang array gelombang suara dengan durasi gelombang suara. Namun, modul wave di Python memiliki cara yang lebih baik. Memanggil getframerate() pada sebuah objek wave akan mengembalikan laju bingkai dari objek tersebut.

Kita kemudian dapat menggunakan metode linspace() dari NumPy untuk menemukan cap waktu dari setiap integer dalam array gelombang suara kita. Ini akan membantu kita memvisualisasikan gelombang suara di kemudian hari.

Metode linspace() menerima parameter start, stop, dan num, lalu mengembalikan num nilai yang berjarak sama antara start dan stop.

Dalam kasus kita, start akan bernilai nol, stop akan bernilai panjang array gelombang suara dibagi laju bingkai (atau durasi berkas audio), dan num akan bernilai panjang array gelombang suara kita.

Latihan ini merupakan bagian dari kursus

Pemrosesan Bahasa Lisan dengan Python

Lihat Kursus

Instruksi latihan

  • Konversikan byte gelombang suara menjadi integer.
  • Dapatkan laju bingkai berkas audio good morning menggunakan getframerate().
  • Atur stop menjadi panjang soundwave_gm dibagi laju bingkai.
  • Atur num menjadi panjang soundwave_gm.

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

# 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])
Edit dan Jalankan Kode