파일 업로드
  1. base64hub
  2. 파일 도구
  3. Base64 → WAV

Base64를 WAV로

Base64 WAV를 붙여넣어 재생하고 .wav 파일로 내려받으세요. 재생되지 않으면 hex 덤프의 헤더가 이유를 알려 주며, 헤더 없는 원시 PCM은 몇 줄의 코드로 감쌀 수 있습니다.

무료 가입 없음, 제한 없음 로컬 업로드 없음 헤더 hex 덤프에서 코덱, 샘플 레이트, 채널 확인 업데이트 2026. 10. 27.
입력 –출력 –크기 –

브라우저에서 처리됩니다. 이 페이지는 데이터를 어디로도 보낼 수 없습니다 – 확인 방법

Base64를 WAV로 디코딩하는 방법

  1. Base64 또는 data URI에 Base64를 붙여넣으세요. data:audio/wav;base64,나 data:audio/x-wav;base64, 접두사가 붙어 있어도 됩니다.
  2. 플레이어에서 재생하세요. 재생 시간에 길이가 분과 초로 표시됩니다.
  3. hex 덤프 표시를 누르면 처음 512바이트가 보입니다. 무엇을 봐야 하는지는 다음 섹션에서 설명합니다.
  4. 파일 다운로드를 눌러 .wav를 저장하세요.

디코딩과 재생은 브라우저에서 이루어집니다. 페이지에는 Cloudflare 조회수 집계 외에 네트워크로 데이터를 보낼 권한이 없으므로 음성 녹음은 기기에 그대로 남습니다.

hex 덤프에서 WAV 헤더 읽기

WAV 파일은 12바이트 RIFF 헤더로 시작하고, 보통 바로 뒤에 오디오를 설명하는 fmt 청크가 옵니다. hex 덤프에서 다음 위치를 보면 어떤 파일인지 알 수 있습니다.

오프셋 (hex)바이트필드예: 16 kHz 모노 PCM
004RIFF52 49 46 46
084WAVE57 41 56 45
142포맷 코드01 00
162채널 수01 00 (모노)
184샘플 레이트80 3e 00 00 (16,000)
222샘플당 비트 수10 00 (16)

모든 숫자는 리틀 엔디언이므로 80 3e 00 00은 0x3e80, 즉 16,000입니다. 브라우저가 파일을 재생할 수 있는지는 포맷 코드가 결정합니다.

포맷 코드코덱Chrome에서 재생
01 00PCM예
03 0032비트 부동소수점예
06 00, 07 00A-law, µ-law (전화)예
02 00, 11 00Microsoft ADPCM, IMA ADPCM아니요
31 00GSM 6.10아니요
fe ffExtensible: 실제 코덱은 청크 뒷부분에 지정되며 대개 PCMPCM이면 예

PCM은 모든 브라우저가 재생하지만 다른 코덱의 지원은 브라우저마다 다르므로, 청취자가 쓰는 브라우저에서 테스트하세요. 브라우저가 파일을 디코딩하지 못하면 “이 브라우저는 이 WAV 파일을 재생할 수 없습니다.” 안내가 나타나고 재생 시간에 해당 없음이 표시됩니다. 그래도 다운로드한 파일은 올바르며, VLC 같은 데스크톱 플레이어는 이 코덱을 모두 처리합니다.

길이도 헤더에서 계산할 수 있습니다. 재생 시간은 data 청크의 크기를 샘플 레이트 × 채널 수 × 샘플당 바이트 수로 나눈 값입니다. 16 kHz 모노 16비트 오디오 2초는 샘플 64,000바이트에 최소 44바이트의 헤더가 더해집니다.

헤더 없는 원시 PCM

음성 API는 RIFF 헤더 없이 16 kHz나 24 kHz의 16비트 PCM 샘플만 돌려주는 경우가 많습니다. 이런 바이트에는 시그니처가 없어서 도구는 “WAV 형식으로 보이지 않습니다(감지됨: 바이너리)“라고 표시하며, .wav 확장자로 저장해도 어떤 플레이어에서도 재생되지 않습니다. API 문서에 나온 샘플 레이트, 채널 수, 샘플 크기로 헤더를 씌우세요.

import base64, wave

with open("speech.b64") as f:
    pcm = base64.b64decode(f.read())

with wave.open("speech.wav", "wb") as w:
    w.setnchannels(1)
    w.setsampwidth(2)
    w.setframerate(24000)
    w.writeframes(pcm)

setsampwidth(2)는 16비트 샘플이라는 뜻입니다. 24 kHz 모노 오디오 2초, 즉 PCM 96,000바이트는 UklGR로 시작하는 96,044바이트 WAV가 되며 여기서도, 어떤 플레이어에서도 재생됩니다. 결과가 너무 빠르거나 느리거나 잡음처럼 들리면 샘플 레이트나 샘플 형식이 틀린 것입니다. 다른 흔한 샘플 레이트를 시도하거나 API가 8비트 µ-law를 보내는지 확인하세요. 자세한 내용은 Python에서 Base64에 있습니다.

WAV 페이지에 들어온 다른 형식

데이터가 다른 오디오 형식이면 도구가 그 이름을 알려 줍니다. WAV가 아니라 MP3로 보인다는 안내와 함께 .mp3(으)로 다운로드 버튼이 나타나며, 플레이어는 그대로 작동합니다. WAV 파일은 크기 때문에 API와 앱이 용량을 아끼려고 MP3나 Opus로 바꾸는 경우가 많은데, 문서에는 여전히 WAV라고 적혀 있곤 합니다. 크기 차이와 WAV 파일 인코딩은 WAV를 Base64로를, 모든 오디오 형식은 Base64를 오디오로를 참고하세요.

자주 묻는 질문

Base64를 WAV 파일로 변환하려면 어떻게 하나요?

위에 Base64를 붙여넣고 파일 다운로드를 누르면 오디오가 decoded.wav로 저장됩니다. 저장하기 전에 플레이어에서 재생해 원하는 내용인지 확인하세요.

WAV여야 하는 Base64인데 도구가 바이너리라고 합니다. 왜 그런가요?

WAV 파일은 RIFF(Base64로 UklGR)로 시작합니다. 이것이 없다면 여러 음성 API가 돌려주는 원시 PCM 샘플일 가능성이 높습니다. 이 페이지에 나온 방법대로 API 문서의 샘플 레이트를 넣어 헤더를 추가하세요.

어떤 WAV는 재생되고 어떤 WAV는 재생되지 않는 이유는 무엇인가요?

WAV는 컨테이너이고 코덱은 헤더 안의 숫자로 지정됩니다. 일반 PCM은 어디서나 재생되지만, 오래된 전화 시스템과 음성 사서함에서 흔한 ADPCM과 GSM은 대개 브라우저에서 재생되지 않습니다. ffmpeg -i in.wav -c:a pcm_s16le out.wav로 변환하세요.