O módulo wave lê e grava arquivos WAV com áudio PCM não comprimido. Ele expõe canais, largura da amostra, taxa e frames brutos, sendo adequado para inspeção e transformações simples.
Inspecione os parâmetros de um WAV
import wave
with wave.open("entrada.wav", "rb") as audio:
channels = audio.getnchannels()
sample_width = audio.getsampwidth()
frame_rate = audio.getframerate()
frame_count = audio.getnframes()
frames = audio.readframes(frame_count)
print(channels, sample_width, frame_rate, len(frames))
Diferencie frames e amostras
readframes(n) devolve bytes de até n frames. Um frame contém uma amostra por canal, e cada amostra ocupa a largura informada. Para interpretar números, considere ordem de bytes, sinal e interleaving dos canais.
Grave um cabeçalho coerente
Antes de writeframes(), defina canais, sample width e frame rate compatíveis com os bytes. Context managers finalizam o cabeçalho ao fechar. Valide tamanho e parâmetros de arquivos não confiáveis antes de alocar memória.
Continue estudando
Leia também interpretação de dados binários com struct. A documentação oficial do Python, consultada em 22 de julho de 2026, detalha modos de leitura, escrita e suporte a cabeçalhos WAV.