Inizia subitoInizia gratis

Trovare i timestamp

Sappiamo che la frequenza della nostra onda sonora è 48 kHz, ma se non lo sapessimo? Potremmo trovarla dividendo la lunghezza del nostro array dell’onda sonora per la durata dell’onda stessa. Tuttavia, il modulo wave di Python offre un modo migliore. Chiamando getframerate() su un oggetto wave si ottiene il frame rate di quell’oggetto.

Possiamo poi usare il metodo linspace() di NumPy per trovare il timestamp di ciascun intero nel nostro array dell’onda sonora. Questo ci aiuterà a visualizzare la nostra onda sonora in seguito.

Il metodo linspace() accetta i parametri start, stop e num e restituisce num valori equidistanti tra start e stop.

Nel nostro caso, start sarà zero, stop sarà la lunghezza del nostro array dell’onda sonora divisa per il frame rate (cioè la durata del nostro file audio) e num sarà la lunghezza del nostro array dell’onda sonora.

Questo esercizio fa parte del corso

Elaborazione del linguaggio parlato in Python

Visualizza corso

Istruzioni dell'esercizio

  • Converti i byte dell’onda sonora in interi.
  • Ottieni il frame rate del file audio "good morning" usando getframerate().
  • Imposta stop come la lunghezza di soundwave_gm divisa per il frame rate.
  • Imposta num come la lunghezza di soundwave_gm.

esercizio interattivo pratico

Prova questo esercizio completando questo codice di esempio.

# 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])
Modifica ed esegui il codice