Bytes para inteiros
Você viu como importar e ler um arquivo de áudio usando o módulo wave do Python e o método readframes(). Mas isso resulta em um array de bytes.
Para converter os bytes em algo mais útil, vamos usar o método frombuffer() do NumPy.
Passando para frombuffer() os bytes das ondas sonoras e indicando um dtype de 'int16', podemos converter os bytes em inteiros. Inteiros são muito mais fáceis de manipular do que bytes.
A biblioteca wave do Python já foi importada, assim como o arquivo de áudio good_morning.wav (https://assets.datacamp.com/production/repositories/4637/datasets/d30b8e2319792fb3e9d7ce1e469b15ecf3f75227/good-morning.wav).
Este exercicio faz parte do curso
Processamento de Linguagem Falada em Python
Instruções do exercicio
- Importe o pacote
numpycom o alias comumnp. - Abra e leia o arquivo de áudio good morning.
- Converta os bytes de
signal_gmpara inteirosint16. - Veja os primeiros 10 valores da onda sonora.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
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[:____])