Base64-naar-audio-converter

Plak Base64-audio uit een tekst-naar-spraak-antwoord, een data-URI of een JSON-payload. De tool herkent het formaat, speelt het af in de browser en slaat het op als audiobestand.

Werkt volledig in je browser. Er wordt niets geüpload.

Zo gebruik je het

  1. Plak de Base64-audio, of een data-URI zoals data:audio/mpeg;base64,..., in het invoervak.
  2. Controleer het herkende formaat en druk op afspelen in de audiospeler.
  3. Download het bestand. Het krijgt een extensie die bij het herkende formaat past, zoals .mp3 of .wav.

Uitvoer van tekst-naar-spraak decoderen

Tekst-naar-spraak-diensten die met JSON antwoorden, kunnen geen binaire audio in het antwoord zetten, dus coderen ze die. Google Cloud Text-to-Speech geeft de spraak bijvoorbeeld terug als Base64-string in een veld met de naam audioContent, in de codering die je hebt opgevraagd, zoals MP3 of OGG Opus. Andere spraak- en chatbot-API's gebruiken velden zoals audio, data of audio_base64.

Plak de waarde hier om naar het resultaat te luisteren terwijl je stemmen, spreeksnelheden of prompts vergelijkt. Kopieer alleen de string tussen de aanhalingstekens; als je de JSON eerst ontleedt, neem je geen aanhalingstekens of geëscapete tekens zoals \/ mee.

Herkende audioformaten

Het formaat wordt herkend aan de eerste bytes van de gedecodeerde gegevens, dus een ontbrekend of verkeerd MIME-type maakt niet uit:

FormaatHandtekeningBase64 begint met
MP3ID3-tag of een MPEG-frameheaderSUQz of meestal //
WAVRIFF ... WAVEUklGR
OGG (Vorbis, Opus)OggST2dnUw
FLACfLaCZkxhQ
M4A (AAC)ftyp-box met merk M4Awisselend (begint met een grootteveld)

Ruwe PCM: als de audio niet afspeelt

Sommige spraak-API's, vooral realtime- en streaming-API's, sturen ruwe PCM-samples zonder bestandsheader, vaak 16-bit mono op 16 of 24 kHz. Telefoniestreams bevatten op dezelfde manier headerloze μ-law-audio op 8 kHz. Zonder header staat er in de bytes niets over wat ze zijn: het formaat is niet te herkennen, browsers kunnen de gegevens niet afspelen en deze tool kan de samplefrequentie of het aantal kanalen niet raden. Je kunt de gedecodeerde bytes wel downloaden, maar om ze te horen moet je een WAV-header toevoegen met de parameters uit de API-documentatie:

# FFmpeg: 16-bit little-endian, 24 kHz, mono (1 kanaal)
ffmpeg -f s16le -ar 24000 -ac 1 -i speech.pcm speech.wav

# Python
import base64, wave
with wave.open('speech.wav', 'wb') as w:
    w.setnchannels(1)
    w.setsampwidth(2)        # samples van 16 bit
    w.setframerate(24000)
    w.writeframes(base64.b64decode(pcm_base64))

Klinkt het resultaat te snel, te langzaam of als ruis, dan passen de samplefrequentie, de samplegrootte of de bytevolgorde niet bij de gegevens. Speelt het eenmaal af, dan kan Audio naar Base64 de WAV opnieuw coderen als je hem als string nodig hebt.

Veelgestelde vragen

Waarom kan de tool mijn audio niet afspelen?

Of de gegevens zijn ruwe PCM zonder header (zie hierboven), of je browser ondersteunt de codec niet. In het tweede geval is het gedownloade bestand nog steeds correct en opent het in een mediaspeler zoals VLC.

Mijn API stuurt de audio in veel Base64-stukken. Hoe voeg ik die samen?

Decodeer elk stuk naar bytes en plak die in volgorde achter elkaar. Eerst de Base64-strings samenvoegen werkt alleen als elk stuk behalve het laatste een veelvoud van 3 bytes codeert, en daar kun je meestal niet op rekenen. Deze tool decodeert één string tegelijk, dus voeg gestreamde stukken samen in je eigen code.

Is de gedecodeerde audio identiek aan het origineel?

Ja. Base64 is verliesvrij, dus het bestand bevat precies de bytes die zijn gecodeerd, met dezelfde kwaliteit en bitrate. De tool codeert de audio niet opnieuw en converteert hem ook niet.

Kan ik een data-URI plakken?
Ja. Plak de hele string data:audio/...;base64,, of kale Base64 zonder voorvoegsel. Het formaat wordt in beide gevallen herkend aan de gedecodeerde bytes.
Wordt mijn audio naar een server gestuurd?

Nee. Decoderen, formaatherkenning en afspelen gebeuren allemaal in je browser.