Bytes naar integers
Je hebt gezien hoe je met Pythons wave-module en de methode readframes() een audiobestand importeert en leest. Maar dat levert een array met bytes op.
Om de bytes om te zetten in iets handigere data, gebruiken we NumPy's frombuffer()-methode.
Door frombuffer() de bytes van onze geluidsgolven te geven en een dtype van 'int16' op te geven, kunnen we de bytes naar integers converteren. Met integers werk je veel makkelijker dan met bytes.
De Python wave-bibliotheek is al geïmporteerd, samen met het good_morning.wav- audiobestand.
Deze oefening maakt deel uit van de cursus
Spoken Language Processing in Python
Oefeninstructies
- Importeer het pakket
numpymet de gebruikelijke aliasnp. - Open en lees het good morning-audiobestand.
- Converteer de
signal_gm-bytes naarint16-integers. - Bekijk de eerste 10 waarden van de geluidsgolf.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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[:____])