Restauración de voz — Sidon
Restaura voz ruidosa, reverberante o de ancho de banda limitado a audio limpio de 48 kHz con Sidon: un único modelo que combina supresión de ruido, dereverberación y extensión de ancho de banda. Se ejecuta por completo en el dispositivo (CoreML en Apple Silicon, ONNX Runtime en el resto). Como reconstruye la voz a partir de representaciones aprendidas en lugar de limitarse a enmascarar el ruido, resulta especialmente apto para preparar una referencia de clonación de voz: limpia la grabación a la vez que preserva la identidad del hablante.
La Mejora de voz (DeepFilterNet3) es un diminuto supresor de ruido en tiempo real. Sidon es un modelo de restauración generativa más pesado: también elimina la reverberación y reconstruye el detalle de alta frecuencia hasta 48 kHz. Usa DeepFilterNet3 para la eliminación de ruido en vivo y Sidon para la limpieza offline de referencias y grabaciones de archivo.
Arquitectura
Sidon es un pipeline de dos etapas: un predictor de características autosupervisado depura la representación de la voz y un vocoder neuronal resintetiza una forma de onda limpia a partir de ella.
| Etapa | Detalles |
|---|---|
| Front-end | Características log-mel de w2v-BERT 2.0 SeamlessM4T (16 kHz → 160 dimensiones) |
| Predictor | w2v-BERT 2.0 (8 capas) con una cabeza de depuración ajustada con LoRA → características depuradas |
| Vocoder | El decodificador DAC resintetiza audio a 48 kHz a partir de las características depuradas |
El pipeline es 16 kHz audio → features → predictor → DAC decoder → 48 kHz audio. En total ≈ 246M parámetros (193,6M del predictor + 52,4M del vocoder).
Pipeline de procesamiento
- Extracción de características — Calcula las características log-mel de w2v-BERT 2.0 a partir de la entrada a 16 kHz (Accelerate/vDSP en Apple, C++ en otras plataformas)
- Predictor — El encoder w2v-BERT adaptado con LoRA mapea las características ruidosas/reverberantes a características limpias
- Vocoder — El decodificador DAC reconstruye una forma de onda limpia de 48 kHz a partir de las características depuradas
- Segmentación — El audio más largo se procesa en ventanas fijas (~10 s) y se ensambla en la línea de tiempo de 48 kHz
Calidad
En un clip de referencia reverberante, la restauración eleva la calidad perceptual a la vez que mantiene intacta la identidad del hablante (MOS sin referencia):
| Audio | DNSMOS OVRL | UTMOS | Coseno de hablante |
|---|---|---|---|
| Entrada (reverberante) | 2.90 | 2.99 | — |
| Restaurado con Sidon | 3.29 | 3.40 | 0.79 |
La mayor mejora está en la puntuación de fondo (reverberación eliminada). La similitud del hablante se preserva, que es lo que importa al limpiar una referencia de clonación.
Variantes del modelo
La cuantización comprime el predictor; el vocoder DAC se mantiene en mayor precisión (calidad de audio). En Apple, int8 usa palettización por k-means; en ONNX, int8 es por canal solo de pesos.
| Formato | Precisión | Tamaño del paquete |
|---|---|---|
| CoreML | int8 (predictor) + FP16 (vocoder) | ~407 MB |
| CoreML | FP16 | ~713 MB |
| ONNX | int8 (predictor) + FP16 (vocoder) | ~286 MB |
| ONNX | FP16 | ~470 MB |
| ONNX | FP32 | ~939 MB |
Uso desde la CLI
# Restore audio (denoise + dereverb) to clean 48 kHz
.build/release/speech restore noisy.wav -o clean.wav
# Clean a voice-cloning reference before TTS
.build/release/speech speak "Hello world" --voice-sample ref.wav --clean-reference
Sidon produce audio a 48 kHz con independencia de la frecuencia de muestreo de entrada (sobremuestrea y restaura el ancho de banda). Es un modelo de restauración offline —más pesado que DeepFilterNet3— y conviene ejecutarlo sobre un archivo en lugar de un flujo en vivo.
Descargas de modelos
| Modelo | Formato | HuggingFace |
|---|---|---|
| Sidon (CoreML) | fp16 + int8 | aufklarer/Sidon-CoreML |
| Sidon (ONNX) | int8 + fp16 + fp32 | soniqo/Sidon-ONNX |
Combinación con otros modelos
Sidon es más útil como paso de preprocesamiento:
- Antes de la clonación de voz — Limpia una referencia ruidosa/reverberante para que el clon herede la voz, no la sala
- Antes de la transcripción — Restaura grabaciones de archivo o de campo lejano para mejorar la precisión del ASR
- Antes del embedding de hablante — Un audio más limpio produce embeddings más fiables
API Swift
import SpeechRestoration
let restorer = try await SpeechRestorer.fromPretrained()
let cleanAudio = try restorer.restore(audio: noisySamples, sampleRate: 16000)
También disponible en Android, Linux y Windows vía Speech Core (ONNX Runtime). Construido sobre Sidon (MIT).