Da byte a interi
Hai visto come importare e leggere un file audio usando il modulo wave di Python e il metodo readframes(). Tuttavia, questo produce un array di byte.
Per convertire i byte in qualcosa di più utile, useremo il metodo frombuffer() di NumPy.
Passando a frombuffer() i byte dell'onda sonora e indicando un dtype pari a 'int16', possiamo convertire i byte in interi. Gli interi sono molto più semplici da gestire rispetto ai byte.
La libreria wave di Python è già stata importata, così come il file audio good_morning.wav.
Questo esercizio fa parte del corso
Elaborazione del linguaggio parlato in Python
Istruzioni dell'esercizio
- Importa il pacchetto
numpycon il suo alias comunenp. - Apri e leggi il file audio good morning.
- Converti i byte di
signal_gmin interiint16. - Visualizza i primi 10 valori dell'onda sonora.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
import ____ as ____
# Open good morning sound wave and read frames as bytes
good_morning = wave.open(____, 'r')
signal_gm = good_morning.readframes(-1)
# Convert good morning audio bytes to integers
soundwave_gm = np.frombuffer(____, dtype=_____)
# View the first 10 sound wave values
print(soundwave_gm[:____])