Como posso detectar se um arquivo WAV tem um cabeçalho de 44 ou 46 bytes?

Eu descobri que é perigoso supor que todos os arquivos de áudio wav do PCM têm 44 bytes de dados de cabeçalho antes do início das amostras. Embora isso seja comum, muitos aplicativos (por exemplo, ffmpeg) geram wavs com um cabeçalho de 46 bytes e ignoram esse fato enquanto o processamento resultará em um arquivo corrompido e ilegível. Mas como você pode detectar quanto tempo o cabeçalho realmente é?

Obviamente, há uma maneira de fazer isso, mas eu procurei e encontrei pouca discussão sobre isso. Muitos projetos de áudio por aí assumem 44 (ou, inversamente, 46) dependendo do contexto do próprio autor.

questionAnswers(3)

yourAnswerToTheQuestion