Konverter Base64 til lyd

Lim inn Base64-lyd fra et tekst-til-tale-svar, en data URI eller en JSON-nyttelast. Verktøyet identifiserer formatet, spiller lyden av i nettleseren og lagrer den som en lydfil.

Kjører helt i nettleseren din. Ingenting lastes opp.

Slik bruker du verktøyet

  1. Lim inn Base64-lyden, eller en data URI som data:audio/mpeg;base64,..., i inndatafeltet.
  2. Sjekk det gjenkjente formatet og trykk på avspillingsknappen i lydavspilleren.
  3. Last ned filen. Den får en filtype som passer til det gjenkjente formatet, for eksempel .mp3 eller .wav.

Dekode utdata fra tekst-til-tale

Tekst-til-tale-tjenester som svarer med JSON, kan ikke legge binær lyd i svaret, så de koder den. Google Cloud Text-to-Speech returnerer for eksempel talen som en Base64-streng i et felt kalt audioContent, i kodingen du ba om, for eksempel MP3 eller OGG Opus. Andre tale- og chatbot-API-er bruker felt som audio, data eller audio_base64.

Lim inn verdien her for å lytte til resultatet mens du sammenligner stemmer, talehastigheter eller ledetekster. Kopier bare strengen mellom anførselstegnene. Tolker du JSON-dataene først, unngår du å få med anførselstegn eller escapede tegn som \/.

Lydformater som gjenkjennes

Formatet gjenkjennes fra de første bytene i de dekodede dataene, så en manglende eller feil MIME-type spiller ingen rolle:

FormatSignaturBase64 begynner med
MP3ID3-tagg eller et MPEG-rammehodeSUQz eller vanligvis //
WAVRIFF ... WAVEUklGR
OGG (Vorbis, Opus)OggST2dnUw
FLACfLaCZkxhQ
M4A (AAC)ftyp-boks med merket M4Avarierer (begynner med et størrelsesfelt)

Rå PCM: når lyden ikke vil spilles av

Noen tale-API-er, særlig de som jobber i sanntid og med strømming, sender rå PCM-sampler, ofte 16-biters mono ved 16 eller 24 kHz, uten filhode. Telefonistrømmer fører på samme måte μ-law-lyd ved 8 kHz uten hode. Uten et hode står det ingenting i bytene om hva de er: formatet kan ikke gjenkjennes, nettlesere kan ikke spille av dataene, og dette verktøyet kan ikke gjette samplingsfrekvensen eller antall kanaler. Du kan fortsatt laste ned de dekodede bytene, men for å høre dem må du legge til et WAV-hode med parameterne fra API-dokumentasjonen:

# FFmpeg: 16-biters little-endian, 24 kHz, mono
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)        # 16-biters sampler
    w.setframerate(24000)
    w.writeframes(base64.b64decode(pcm_base64))

Høres resultatet for raskt, for sakte eller ut som støy, stemmer ikke samplingsfrekvensen, samplestørrelsen eller byterekkefølgen med dataene. Når lyden spilles av, kan Lyd til Base64 kode WAV-filen på nytt hvis du trenger den som streng.

Ofte stilte spørsmål

Hvorfor kan ikke verktøyet spille av lyden min?

Enten er dataene rå PCM uten hode (se ovenfor), eller så støtter ikke nettleseren din kodeken. I det siste tilfellet er den nedlastede filen likevel riktig og kan åpnes i en mediespiller som VLC.

API-et mitt sender lyden i mange Base64-biter. Hvordan setter jeg dem sammen?

Dekod hver bit til byte og legg dem etter hverandre i riktig rekkefølge. Å slå sammen Base64-strengene først fungerer bare hvis hver bit unntatt den siste koder et multiplum av 3 byte, og det kan du vanligvis ikke stole på. Dette verktøyet dekoder én streng om gangen, så strømmede biter må settes sammen i din egen kode.

Er den dekodede lyden identisk med originalen?

Ja. Base64 er tapsfritt, så filen inneholder nøyaktig de bytene som ble kodet, med samme kvalitet og bithastighet. Verktøyet verken koder lyden på nytt eller konverterer den.

Kan jeg lime inn en data URI?
Ja. Lim inn hele strengen data:audio/...;base64,, eller ren Base64 uten prefiks. Formatet gjenkjennes uansett fra de dekodede bytene.
Blir lyden min sendt til en server?

Nei. Dekoding, formatgjenkjenning og avspilling skjer i nettleseren din.