Sådan bruger du værktøjet
- Indsæt Base64-lyden eller en data URI som data:audio/mpeg;base64,... i inputfeltet.
- Tjek det genkendte format, og tryk på afspil i lydafspilleren.
- Download filen. Den får et filtypenavn, der passer til det genkendte format, for eksempel .mp3 eller .wav.
Afkod output fra tekst-til-tale
Tekst-til-tale-tjenester, der svarer med JSON, kan ikke lægge binær lyd direkte i svaret, så de koder den. Google Cloud Text-to-Speech returnerer for eksempel talen som en Base64-streng i et felt med navnet audioContent, i den kodning, du har bedt om, for eksempel MP3 eller OGG Opus. Andre stemme- og chatbot-API'er bruger felter som audio, data eller audio_base64.
Indsæt værdien her for at lytte til resultatet, mens du sammenligner stemmer, talehastigheder eller prompts. Kopiér kun strengen mellem anførselstegnene; parser du JSON'en først, undgår du at få anførselstegn eller escapede tegn som \/ med.
Genkendte lydformater
Formatet genkendes ud fra de første bytes i de afkodede data, så en manglende eller forkert MIME-type er ligegyldig:
| Format | Signatur | Base64 starter med |
|---|---|---|
| MP3 | ID3-tag eller en MPEG-frameheader | SUQz eller som regel // |
| WAV | RIFF ... WAVE | UklGR |
| OGG (Vorbis, Opus) | OggS | T2dnUw |
| FLAC | fLaC | ZkxhQ |
| M4A (AAC) | ftyp-boks med brandet M4A | varierer (begynder med et størrelsesfelt) |
Rå PCM: når lyden ikke kan afspilles
Nogle stemme-API'er, især realtids- og streaming-API'er, sender rå PCM-samples, ofte 16-bit mono ved 16 eller 24 kHz, uden filheader. Lydstrømme i telefoni indeholder på samme måde headerløs 8 kHz μ-law-lyd. Uden en header er der intet i bytene, der fortæller, hvad de er: Formatet kan ikke genkendes, browsere kan ikke afspille dataene, og dette værktøj kan ikke gætte samplingfrekvensen eller antallet af kanaler. Du kan stadig downloade de afkodede bytes, men for at høre dem skal du tilføje en WAV-header med parametrene fra API-dokumentationen:
# FFmpeg: 16-bit-samples i 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-bit-samples
w.setframerate(24000)
w.writeframes(base64.b64decode(pcm_base64))
Lyder resultatet for hurtigt, for langsomt eller som støj, passer samplingfrekvensen, samplestørrelsen eller byterækkefølgen ikke til dataene. Når lyden kan afspilles, kan Lyd til Base64 kode WAV-filen igen, hvis du har brug for den som streng.
Ofte stillede spørgsmål
Hvorfor kan værktøjet ikke afspille min lyd?
Enten er dataene rå PCM uden header (se ovenfor), eller også understøtter din browser ikke codec'et. I det andet tilfælde er den downloadede fil stadig korrekt og kan åbnes i en medieafspiller som VLC.
Mit API sender lyden i mange Base64-bidder. Hvordan sætter jeg dem sammen?
Afkod hver bid til bytes, og sæt dem efter hinanden i den rigtige rækkefølge. Hvis du sætter Base64-strengene sammen først, virker det kun, når hver bid undtagen den sidste koder et multiplum af 3 bytes, og det kan du som regel ikke regne med. Dette værktøj afkoder én streng ad gangen, så saml streamede bidder i din egen kode.
Er den afkodede lyd identisk med originalen?
Ja. Base64 er tabsfrit, så filen indeholder nøjagtig de bytes, der blev kodet, med samme kvalitet og bitrate. Værktøjet hverken genkoder eller konverterer lyden.
Kan jeg indsætte en data URI?
data:audio/...;base64,, eller indsæt rå Base64 uden præfiks. Formatet genkendes under alle omstændigheder ud fra de afkodede bytes.Bliver min lyd sendt til en server?
Nej. Afkodning, formatgenkendelse og afspilning foregår alt sammen i din browser.