Ripara una registrazione vocale corrotta

Quando un registratore Sony, Olympus, Zoom o Tascam rimane senza batteria o gli viene tolta la scheda a metà del salvataggio, il WAV o l'MP3 che lascia segna 0:00 e non si apre — anche se l'audio era già stato scritto. Ciò che si è rotto è il piccolo header che il registratore finalizza per ultimo, e ricostruirlo non significa mai consegnare la registrazione a un server.

Il tuo file non lascia mai il tuo dispositivo — la riparazione avviene nel browser. 0 byte caricati.

Your data is the big block — usually intact. What breaks is the small index. Repair rebuilds it.

Drop a file here or browseTap to choose a file

ZIP · Office · PDF · video · JPG · PNG · RAR/7z · SQLite — repaired right here in your browser. Nothing is uploaded

0 bytes uploadedFree: 3 repairs/day — up to 500 MB video, 100 MB docs & archives, 50 MB photos. Free download. Single repair €5.90. No account required.

Ripara ora

  1. Trascina il file
  2. La riparazione avviene in locale
  3. Scarica il risultato

I registratori vocali portatili — Sony ICD, Olympus/OM System WS e DS, Zoom H1/H4n/H5/H6, Tascam DR-05/DR-40, Philips DVT — salvano in uno di due formati: WAV non compresso (PCM lineare, di norma a 16 o 24 bit a 44,1, 48 o 96 kHz) oppure MP3 compresso. Entrambi scrivono l'audio sulla scheda mentre parli, ma lasciano un piccolo header di servizio da completare solo quando premi Stop. Togli la corrente prima di allora — batteria scarica, microSD estratta, un reset forzato — e il registratore stesso spesso mostra "File corrupted" (file danneggiato) o "Recording lost" (registrazione persa), mentre un computer apre il file su un piatto 0:00. Il suono è quasi sempre ancora sulla scheda; ciò che non è mai stato scritto è la mappa che porta ad esso. Trascina il .wav o l'.mp3 qui sopra e lo strumento ricostruisce quella mappa nel tuo browser e riscrive un file che un lettore aprirà davvero — senza che nulla lasci mai il tuo dispositivo.

Di cosa è fatto davvero un file di registratore vocale

Un file WAV è un contenitore RIFF: inizia con i byte ASCII RIFF all'offset 0, una dimensione a 32 bit little-endian all'offset 4 e il tipo di form WAVE all'offset 8. Dopo vengono i chunk, ciascuno un tag da 4 byte più una dimensione a 32 bit. I due che contano sono fmt  (nota lo spazio finale — è un tag di quattro caratteri) e data. Il chunk fmt  è dove il registratore annota come interpretare i campioni: un codice di formato audio a 16 bit (1 = PCM lineare), il numero di canali, la frequenza di campionamento in Hz, il byte rate, il block align e i bit per campione. Leggili e sai esattamente come decodificare i byte; perdili e il PCM grezzo non è che una serie di numeri anonimi. Il chunk data è l'audio vero e proprio: il suo tag da 4 byte, una lunghezza a 32 bit e poi i campioni interlacciati.

La trappola sta nel fatto che sia la dimensione RIFF di livello superiore sia la lunghezza del chunk data vengono scritte per ultime. Mentre registra, l'apparecchio non sa ancora quanto durerà la ripresa, così invia i campioni alla scheda e riscrive a posteriori quei due campi di dimensione quando premi Stop. I registratori che salvano in MP3 scrivono invece un flusso di frame audio MPEG autonomi, ognuno annunciato da una sincronizzazione di frame a 11 bit — il byte 0xFF seguito da un byte i cui tre bit superiori sono a uno (0xFFE…) — spesso preceduti da un tag ID3v2. In ogni caso, il payload arriva sulla scheda frame dopo frame o campione dopo campione; solo la struttura che li tiene insieme viene completata alla fine di tutto.

Perché un salvataggio interrotto lascia un file rotto

Poiché i campi di dimensione vengono riscritti allo Stop, le interruzioni che corrompono una registrazione si concentrano tutte nel momento in cui il file dovrebbe chiudersi:

La batteria si è scaricata a metà registrazione. I campioni fino a quell'istante sono sulla scheda, ma la dimensione RIFF all'offset 4 e la lunghezza data restano al loro valore provvisorio — spesso 0, o un valore obsoleto di quando il file era stato pre-allocato. Il lettore si fida del campo di lunghezza, legge zero (o un numero del tutto sbagliato) byte di audio e segnala 0:00 o "danneggiato".

La scheda è stata rimossa o il registratore si è resettato durante la scrittura. Questo tronca il file: il chunk data dichiara ancora la lunghezza completa che il registratore intendeva, ma il file su disco è più corto, quindi la dimensione dichiarata è maggiore dei byte realmente presenti. I lettori multimediali o rifiutano il file oppure riproducono fino alla fine dei dati reali e poi vanno in errore.

Una ripresa in MP3 non è mai stata finalizzata. La catena di frame è intatta, ma un tag ID3 troncato o corrotto, o dei dati spuri all'inizio, fa perdere al decodificatore la prima sincronizzazione 0xFF 0xEx — così la registrazione è lì ma il lettore non trova dove inizia. Nei file a bitrate variabile, l'header Xing/Info che memorizza il conteggio totale dei frame può mancare, per cui la barra di avanzamento e la durata risultano sbagliate anche una volta che il file suona.

In ognuno di questi casi i campioni audio erano già stati salvati nella memoria. Ciò che non è sopravvissuto è una manciata di campi di dimensione e byte di struttura — che è esattamente il caso riparabile. Ciò che non può mai tornare è l'audio successivo all'interruzione: quei campioni non sono mai stati scritti.

Come il browser ricostruisce l'header (senza ricodificare)

Per un WAV, la riparazione è una ricostruzione dell'header che gira come TypeScript puro nella tua scheda. Prima cerca il tag fmt  e legge il formato direttamente da lì: il codice di formato audio, il numero di canali, la frequenza di campionamento e i bit per campione. Se questi parametri di base sono sensati (nessuno è zero), ricalcola i due campi derivati di cui l'header ha bisogno — blockAlign = canali × (bit_per_campione ÷ 8) e byteRate = frequenza_campionamento × blockAlign — così da non doversi fidare dei valori forse corrotti presenti sul disco. Poi individua il tag data e confronta la lunghezza che dichiara con quanti byte sono realmente presenti. Quando la dimensione dichiarata è maggiore di ciò che resta, contrassegna il file come troncato e conserva ogni byte sopravvissuto; quando non c'è alcun header data, tratta tutto ciò che segue fmt  come PCM. Infine ritaglia i dati dei campioni a un numero intero di frame (scartando gli eventuali byte di coda di pcm.length % blockAlign) e scrive un header WAV canonico e pulito di 44 byte — RIFF, dimensione corretta, WAVE, un chunk fmt  di 16 byte e poi data con la lunghezza reale — davanti ai campioni recuperati. Poiché il PCM viene copiato tale e quale, non c'è alcuna decodifica né ricodifica: l'audio è bit per bit quello che hai registrato.

Lo strumento ti dice cosa ha fatto tramite un breve rapporto: una damageClass di header (solo le dimensioni erano sbagliate — un successo pulito), truncated-data o no-data-header (un risultato parziale, in cui mancava la coda), e la frequenza di campionamento, il numero di canali, i bit per campione e il conteggio dei byte di PCM recuperati, così puoi verificare il risultato. Una registrazione in MP3 viene invece gestita dal percorso MP3 gemello: elimina un tag ID3 iniziale rotto e qualsiasi dato spurio, si risincronizza sul primo frame autentico — accettando un candidato solo quando la lunghezza di frame che calcola cade esattamente su un'altra sincronizzazione valida, il che scarta i falsi positivi dentro l'audio — e copia i frame sopravvissuti tali e quali, senza perdita. Nulla di tutto ciò tocca la rete: puoi aprire la scheda Network (Rete) del browser e confermare che non viene inviato nemmeno un byte della registrazione.

Quando una registrazione davvero non è salvabile

Una ricostruzione dell'header può raggiungere solo l'audio che è arrivato sulla scheda. Se il chunk fmt  stesso è sparito, lo strumento fallisce onestamente invece di indovinare — senza il codice di formato, il numero di canali, la frequenza di campionamento e la profondità di bit non c'è modo di sapere se i byte sono stereo a 16 bit a 48 kHz o mono a 24 bit a 96 kHz, e inventare quei numeri produrrebbe rumore. Un file di meno di 44 byte (più piccolo di un singolo header valido) o uno che, una volta ritagliato, resta con zero frame di campioni interi viene segnalato come irrecuperabile per lo stesso motivo: dentro non c'è nulla di decodificabile.

Non può nemmeno recuperare ciò che una scheda difettosa ha sovrascritto o restituito come zeri — se l'interruzione ha lasciato vuota la regione audio, quei campioni non sono sul disco e nessun header li sistema; recupera prima i byte grezzi a livello di memoria e poi ripara il file. Le registrazioni cifrate o protette da DRM (alcuni apparecchi per dettatura e riunioni aziendali avvolgono i file con una chiave) non sono PCM né audio MPEG in chiaro, quindi non c'è alcun header da ricostruire senza la chiave. E dove una regione di un MP3 ha dovuto essere scartata, può restare un breve vuoto o un clic in quel punto — la riparazione conserva i frame buoni ma non sintetizza i millisecondi mancanti. Ciò che riottieni in modo affidabile è ogni campione e ogni frame che era stato scritto, in un contenitore che un lettore aprirà.

Cosa può e cosa non può riparare

Può riparare

  • File WAV con una dimensione RIFF/data provvisoria o a zero dopo che il registratore ha perso corrente prima dello Stop (segna 0:00 ma il PCM è intatto)
  • File WAV troncati in cui il chunk data dichiara più byte di quelli presenti — recupera tutto ciò che è sopravvissuto
  • Registrazioni senza header del chunk 'data', trattando i byte successivi al chunk fmt come PCM e ricostruendo l'header
  • Un header WAV canonico e pulito di 44 byte ricostruito dai parametri fmt recuperati (canali, frequenza di campionamento, bit) con byteRate e blockAlign ricalcolati
  • Riprese MP3 mai finalizzate: viene rimosso un tag ID3 rotto o i dati spuri iniziali e i frame vengono risincronizzati perché il file suoni

Non può riparare

  • Un file il cui chunk 'fmt ' è sparito — senza il formato, i canali, la frequenza di campionamento e la profondità di bit il PCM non si può interpretare, quindi fallisce invece di indovinare
  • File di meno di 44 byte, o dove sopravvivono zero frame di campioni interi — non c'è nulla di decodificabile da scrivere
  • L'audio che la scheda ha sovrascritto o restituito come zeri durante il guasto — quei campioni non sono mai stati sul disco (recupera prima i byte grezzi)
  • Registrazioni di dettatura/riunioni cifrate o con DRM senza la loro chiave — non c'è alcun header in chiaro da ricostruire
  • L'audio esatto dentro un frame MP3 che ha dovuto essere scartato — può restare un breve vuoto dove è stata rimossa una regione corrotta

Se una riparazione fallisce, ti diciamo perché (dati mancanti rispetto a struttura danneggiata), e non ti viene mai addebitato nulla per una riparazione fallita.

Domande frequenti

Il mio registratore mostra "File corrupted" (file danneggiato) e il file suona come 0:00 — la registrazione è persa?

Di solito no. È la firma classica di un salvataggio non finalizzato: il registratore ha scritto l'audio sulla scheda ma ha perso corrente prima di riscrivere i campi di dimensione del WAV, così il lettore legge una lunghezza pari a zero. I campioni sono ancora lì — ricostruire gli header RIFF e data con le lunghezze reali fa tornare riproducibile la registrazione.

La riparazione ricomprime l'audio e ne fa perdere qualità?

No. Per il WAV i campioni PCM vengono copiati byte per byte dietro un nuovo header di 44 byte — non c'è alcun passaggio di decodifica e ricodifica, quindi l'audio è bit per bit identico a quello che hai registrato. Per l'MP3 i frame sopravvissuti vengono copiati tali e quali; l'unico audio che perdi è quello dentro i frame troppo corrotti per essere conservati.

Il file è molto più corto della mia registrazione — si può comunque riparare?

Se il salvataggio si è troncato, il chunk data dichiara ancora la lunghezza completa che il registratore intendeva, ma solo una parte dell'audio è sul disco. Lo strumento rileva che la dimensione dichiarata supera i byte presenti, conserva tutto ciò che è sopravvissuto e scrive un header con la lunghezza reale. Riottieni la parte che è stata scritta; l'audio successivo all'interruzione non è mai stato salvato.

Perché il file riparato indica una durata diversa o una barra di avanzamento sbagliata?

Per il WAV l'header ricostruito usa la lunghezza reale del PCM, quindi la durata è corretta. Per un MP3 a bitrate variabile, se l'header Xing/Info che memorizza il conteggio totale dei frame è andato perso, i lettori stimano la durata dal bitrate — l'audio suona dall'inizio alla fine, ma la durata indicata e la barra di avanzamento possono essere errate.

La mia registrazione viene caricata per essere riparata?

No. Il .wav o l'.mp3 viene letto dal tuo disco e ricostruito nella scheda del tuo browser; il codice di riparazione di WAV e MP3 è TypeScript puro senza alcun viaggio verso il server. Puoi aprire la scheda Network (Rete) e confermare che non esce nemmeno un byte della registrazione dalla tua macchina — cosa che conta per interviste, note mediche e riunioni riservate.

Correlati: L'MP3 non si riproduce (sincronizzazione di frame / ID3) · "Invalid data found when processing input" · "Formato non supportato" (0xc00d5212) · Verifica la promessa di zero caricamenti