Restauration de la parole — Sidon
Restaurez une parole bruitée, réverbérée ou à bande limitée en audio propre à 48 kHz avec Sidon — un modèle unique qui combine débruitage, déréverbération et extension de bande passante. Il s'exécute entièrement sur l'appareil (CoreML sur Apple Silicon, ONNX Runtime ailleurs). Parce qu'il reconstruit la parole à partir de représentations apprises plutôt que de simplement masquer le bruit, il est particulièrement efficace pour préparer une référence de clonage vocal : il nettoie l'enregistrement tout en préservant l'identité du locuteur.
L'amélioration de la parole (DeepFilterNet3) est un minuscule suppresseur de bruit en temps réel. Sidon est un modèle de restauration générative plus lourd : il supprime aussi la réverbération et reconstruit les détails haute fréquence jusqu'à 48 kHz. Utilisez DeepFilterNet3 pour la suppression de bruit en direct, et Sidon pour le nettoyage hors ligne de références et d'enregistrements d'archives.
Architecture
Sidon est un pipeline à deux étapes : un prédicteur de caractéristiques auto-supervisé nettoie la représentation de la parole, et un vocodeur neuronal resynthétise un signal propre à partir de celle-ci.
| Étape | Détails |
|---|---|
| Front-end | Caractéristiques log-mel w2v-BERT 2.0 SeamlessM4T (16 kHz → 160 dimensions) |
| Prédicteur | w2v-BERT 2.0 (8 couches) avec une tête de nettoyage affinée par LoRA → caractéristiques nettoyées |
| Vocodeur | Le décodeur DAC resynthétise l'audio à 48 kHz à partir des caractéristiques nettoyées |
Le pipeline est 16 kHz audio → features → predictor → DAC decoder → 48 kHz audio. Au total ≈ 246M de paramètres (193,6M pour le prédicteur + 52,4M pour le vocodeur).
Pipeline de traitement
- Extraction de caractéristiques — Calcule les caractéristiques log-mel w2v-BERT 2.0 à partir de l'entrée à 16 kHz (Accelerate/vDSP sur Apple, C++ sur les autres plateformes)
- Prédicteur — L'encodeur w2v-BERT adapté par LoRA convertit les caractéristiques bruitées/réverbérées en caractéristiques propres
- Vocodeur — Le décodeur DAC reconstruit un signal propre à 48 kHz à partir des caractéristiques nettoyées
- Découpage en blocs — Les audios plus longs sont traités par fenêtres fixes (~10 s) puis assemblés sur la trame temporelle à 48 kHz
Qualité
Sur un extrait de référence réverbéré, la restauration améliore la qualité perceptuelle tout en préservant l'identité du locuteur (MOS sans référence) :
| Audio | DNSMOS OVRL | UTMOS | Cosinus de locuteur |
|---|---|---|---|
| Entrée (réverbérée) | 2.90 | 2.99 | — |
| Restauré par Sidon | 3.29 | 3.40 | 0.79 |
Le gain le plus important concerne le score d'arrière-plan (réverbération supprimée). La similarité du locuteur est préservée, ce qui est essentiel lors du nettoyage d'une référence de clonage.
Variantes du modèle
La quantification compresse le prédicteur ; le vocodeur DAC reste à une précision plus élevée (qualité audio). Sur Apple, l'int8 utilise une palettisation k-means ; sur ONNX, l'int8 est appliqué uniquement aux poids, par canal.
| Format | Précision | Taille du bundle |
|---|---|---|
| CoreML | int8 (prédicteur) + FP16 (vocodeur) | ~407 Mo |
| CoreML | FP16 | ~713 Mo |
| ONNX | int8 (prédicteur) + FP16 (vocodeur) | ~286 Mo |
| ONNX | FP16 | ~470 Mo |
| ONNX | FP32 | ~939 Mo |
Utilisation en 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 produit de l'audio à 48 kHz quel que soit le taux d'échantillonnage d'entrée (il suréchantillonne et restaure la bande passante). C'est un modèle de restauration hors ligne — plus lourd que DeepFilterNet3 — et il est préférable de l'exécuter sur un fichier plutôt que sur un flux en direct.
Téléchargements des modèles
| Modèle | Format | HuggingFace |
|---|---|---|
| Sidon (CoreML) | fp16 + int8 | aufklarer/Sidon-CoreML |
| Sidon (ONNX) | int8 + fp16 + fp32 | soniqo/Sidon-ONNX |
Combinaison avec d'autres modèles
Sidon est particulièrement utile comme étape de prétraitement :
- Avant le clonage vocal — Nettoyez une référence bruitée/réverbérée pour que le clone hérite de la voix, et non de la pièce
- Avant la transcription — Restaurez des enregistrements d'archives ou en champ lointain pour améliorer la précision de l'ASR
- Avant l'empreinte de locuteur — Un audio plus propre produit des empreintes plus fiables
API Swift
import SpeechRestoration
let restorer = try await SpeechRestorer.fromPretrained()
let cleanAudio = try restorer.restore(audio: noisySamples, sampleRate: 16000)
Également disponible sur Android, Linux et Windows via Speech Core (ONNX Runtime). Construit sur Sidon (MIT).