ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Importa el paquete numpy con su alias habitual np.
  • Abre y lee el archivo de audio de buenos días.
  • Convierte los bytes de signal_gm a enteros int16.
  • 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[:____])
Editar y ejecutar código