Repáralo ahora
- Suelta el archivo
- La reparación ocurre en local
- Descarga el resultado
Las grabadoras de voz portátiles — Sony ICD, Olympus/OM System WS y DS, Zoom H1/H4n/H5/H6, Tascam DR-05/DR-40, Philips DVT — guardan en uno de dos formatos: WAV sin comprimir (PCM lineal, normalmente de 16 o 24 bits a 44,1, 48 o 96 kHz) o MP3 comprimido. Ambos escriben el audio en la tarjeta mientras hablas, pero dejan una pequeña cabecera de control para terminarla solo cuando pulsas Stop. Corta la corriente antes de eso — batería agotada, microSD arrancada, un reinicio forzado — y la propia grabadora suele mostrar "Archivo dañado" o "Grabación perdida", y un ordenador abre el archivo con un plano 0:00. El sonido casi siempre sigue en la tarjeta; lo que nunca se escribió es el mapa hacia él. Suelta el .wav o el .mp3 arriba y la herramienta reconstruye ese mapa en tu navegador y vuelve a escribir un archivo que un reproductor sí abrirá — sin que nada salga nunca de tu dispositivo.
De qué está hecho realmente un archivo de grabadora de voz
Un archivo WAV es un contenedor RIFF: empieza con los bytes ASCII RIFF en el desplazamiento 0, un tamaño de 32 bits little-endian en el desplazamiento 4 y el tipo de formulario WAVE en el desplazamiento 8. Después vienen los fragmentos (chunks), cada uno una etiqueta de 4 bytes más un tamaño de 32 bits. Los dos que importan son fmt (con el espacio final — es una etiqueta de cuatro caracteres) y data. El fragmento fmt es donde la grabadora anota cómo interpretar las muestras: un código de formato de audio de 16 bits (1 = PCM lineal), el número de canales, la frecuencia de muestreo en Hz, la tasa de bytes, la alineación de bloque y los bits por muestra. Léelos y sabrás exactamente cómo descodificar los bytes; piérdelos y el PCM en bruto no es más que números anónimos. El fragmento data es el propio audio: su etiqueta de 4 bytes, una longitud de 32 bits y luego las muestras entrelazadas.
La trampa está en que tanto el tamaño de nivel superior RIFF como la longitud del fragmento data se escriben en último lugar. Mientras graba, el aparato aún no sabe cuánto durará la toma, así que envía las muestras a la tarjeta y reescribe esos dos campos de tamaño cuando pulsas Stop. Las grabadoras que guardan en MP3 escriben en su lugar un flujo de tramas de audio MPEG autónomas, cada una anunciada por una sincronía de trama de 11 bits — el byte 0xFF seguido de un byte cuyos tres bits superiores están a uno (0xFFE…) — a menudo precedidas por una etiqueta ID3v2. En cualquier caso, la carga útil llega a la tarjeta trama a trama o muestra a muestra; solo la estructura que lo une se termina al final del todo.
Por qué un guardado interrumpido deja un archivo roto
Como los campos de tamaño se reescriben al pulsar Stop, las interrupciones que corrompen una grabación se concentran todas en el momento en que el archivo debería cerrarse:
La batería se agotó a mitad de la grabación. Las muestras hasta ese instante están en la tarjeta, pero el tamaño RIFF del desplazamiento 4 y la longitud data quedan en su valor provisional — con frecuencia 0, o un valor obsoleto de cuando el archivo se reservó. El reproductor se fía del campo de longitud, lee cero (o un número disparatado) bytes de audio e informa de 0:00 o de "dañado".
La tarjeta se retiró o la grabadora se reinició durante la escritura. Esto trunca el archivo: el fragmento data aún declara la longitud completa que la grabadora pretendía, pero el archivo en disco es más corto, así que el tamaño declarado es mayor que los bytes realmente presentes. Los reproductores multimedia o rechazan el archivo o reproducen hasta el final de los datos reales y luego dan error.
Una toma en MP3 nunca se finalizó. La cadena de tramas está intacta, pero una etiqueta ID3 truncada o corrupta, o basura al principio, hace que el descodificador pierda la primera sincronía 0xFF 0xEx — así que la grabación está ahí pero el reproductor no encuentra dónde empieza. En archivos de bitrate variable, la cabecera Xing/Info que almacena el recuento total de tramas puede faltar, de modo que la barra de avance y la duración salen mal aunque llegue a sonar.
En todos estos casos las muestras de audio ya se habían escrito en el almacenamiento. Lo que no sobrevivió es un puñado de campos de tamaño y bytes de estructura — que es justo el caso reparable. Lo que nunca puede volver es el audio posterior a la interrupción: esas muestras nunca se escribieron.
Cómo el navegador reconstruye la cabecera (sin recodificar)
Para un WAV, la reparación es una reconstrucción de cabecera que se ejecuta como TypeScript puro en tu pestaña. Primero busca la etiqueta fmt y lee el formato directamente de ella: el código de formato de audio, el número de canales, la frecuencia de muestreo y los bits por muestra. Si esos parámetros básicos son razonables (ninguno es cero), recalcula los dos campos derivados que la cabecera necesita — blockAlign = canales × (bits_por_muestra ÷ 8) y byteRate = frecuencia_muestreo × blockAlign — para no tener que fiarse de los valores posiblemente corruptos del disco. Luego localiza la etiqueta data y compara la longitud que declara con cuántos bytes hay realmente presentes. Cuando el tamaño declarado es mayor que lo que queda, marca el archivo como truncado y conserva cada byte que sobrevivió; cuando no hay ninguna cabecera data, trata todo lo que sigue a fmt como PCM. Por último recorta los datos de muestra a un número entero de tramas (descartando los bytes de cola de pcm.length % blockAlign) y escribe una cabecera WAV canónica y limpia de 44 bytes — RIFF, tamaño correcto, WAVE, un fragmento fmt de 16 bytes y luego data con la longitud verdadera — delante de las muestras recuperadas. Como el PCM se copia tal cual, no hay descodificación ni recodificación: el audio es bit a bit el que grabaste.
La herramienta te dice lo que hizo mediante un breve informe: una damageClass de header (solo los tamaños estaban mal — un éxito limpio), truncated-data o no-data-header (un resultado parcial, en el que faltaba la cola), y la frecuencia de muestreo, el número de canales, los bits por muestra y el recuento de bytes de PCM recuperados para que puedas comprobar el resultado. Una grabación en MP3 la gestiona en su lugar la ruta MP3 hermana: elimina una etiqueta ID3 inicial rota y cualquier basura, resincroniza sobre la primera trama genuina — aceptando un candidato solo cuando la longitud de trama que calcula aterriza exactamente sobre otra sincronía válida, lo que descarta los aciertos falsos dentro del audio — y copia las tramas supervivientes tal cual, sin pérdida. Nada de esto toca la red: puedes abrir la pestaña Red del navegador y confirmar que no se envía ni un byte de la grabación.
Cuándo una grabación no tiene salvación de verdad
Una reconstrucción de cabecera solo puede alcanzar el audio que llegó a la tarjeta. Si el propio fragmento fmt ha desaparecido, la herramienta falla con honestidad en lugar de adivinar — sin el código de formato, el número de canales, la frecuencia de muestreo y la profundidad de bits no hay forma de saber si los bytes son estéreo de 16 bits a 48 kHz o mono de 24 bits a 96 kHz, e inventar esos números produciría ruido. Un archivo de menos de 44 bytes (más pequeño que una única cabecera válida) o uno que al recortarse queda con cero tramas de muestra enteras se informa como irrecuperable por la misma razón: no hay nada descodificable dentro.
Tampoco puede recuperar lo que una tarjeta defectuosa sobrescribió o devolvió como ceros — si la interrupción dejó en blanco la región de audio, esas muestras no están en el disco y ninguna cabecera las arregla; recupera primero los bytes en bruto a nivel de almacenamiento y luego repara el archivo. Las grabaciones cifradas o envueltas en DRM (algunos aparatos de dictado y de reuniones empresariales envuelven los archivos con una clave) no son PCM ni audio MPEG en claro, así que no hay cabecera que reconstruir sin la clave. Y allí donde hubo que descartar una región de un MP3, puede quedar un breve hueco o chasquido en ese punto — la reparación conserva las tramas buenas pero no sintetiza los milisegundos que faltan. Lo que recuperas de forma fiable es cada muestra y cada trama que se escribió, en un contenedor que un reproductor abrirá.
Qué puede y qué no puede reparar
Puede reparar
- Archivos WAV con un tamaño RIFF/data provisional o a cero después de que la grabadora perdiera corriente antes de Stop (marca 0:00 pero el PCM está intacto)
- Archivos WAV truncados donde el fragmento data declara más bytes de los presentes — recupera todo lo que sobrevivió
- Grabaciones sin cabecera de fragmento 'data', tratando los bytes posteriores al fragmento fmt como PCM y reconstruyendo la cabecera
- Una cabecera WAV canónica y limpia de 44 bytes reconstruida a partir de los parámetros fmt recuperados (canales, frecuencia de muestreo, bits) con byteRate y blockAlign recalculados
- Tomas MP3 que nunca se finalizaron: se elimina una etiqueta ID3 rota o la basura inicial y se resincronizan las tramas para que el archivo suene
No puede reparar
- Un archivo cuyo fragmento 'fmt ' ha desaparecido — sin el formato, los canales, la frecuencia de muestreo y la profundidad de bits el PCM no se puede interpretar, así que falla en lugar de adivinar
- Archivos de menos de 44 bytes, o donde sobreviven cero tramas de muestra enteras — no hay nada descodificable que escribir
- El audio que la tarjeta sobrescribió o devolvió como ceros durante el fallo — esas muestras nunca estuvieron en disco (recupera primero los bytes en bruto)
- Grabaciones de dictado/reuniones cifradas o con DRM sin su clave — no hay cabecera en claro que reconstruir
- El audio exacto dentro de una trama MP3 que hubo que descartar — puede quedar un breve hueco donde se eliminó una región corrupta
Si una reparación falla, te decimos por qué (datos que faltan frente a estructura dañada), y nunca se te cobra por una reparación fallida.