De bytes a enteros
Ya has visto cómo importar y leer un archivo de audio usando el módulo wave de Python y el método readframes(). Pero eso devuelve un array de bytes.
Para convertir esos bytes en algo más útil, usaremos el método frombuffer() de NumPy.
Si pasamos a frombuffer() los bytes de la onda de sonido e indicamos un dtype de 'int16', podemos convertir los bytes a enteros. Los enteros son mucho más fáciles de manejar que los bytes.
La librería wave de Python ya se ha importado junto con el archivo de audio good_morning.wav.
Este ejercicio forma parte del curso
Procesamiento del lenguaje hablado en Python
Instrucciones del ejercicio
- Importa el paquete
numpycon su alias habitualnp. - Abre y lee el archivo de audio de buenos días.
- Convierte los bytes de
signal_gma enterosint16. - Mira los primeros 10 valores de la onda de sonido.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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[:____])