Restauração de fala — Sidon
Restaure fala ruidosa, reverberante ou com largura de banda limitada para áudio limpo a 48 kHz com o Sidon — um único modelo que combina supressão de ruído, dereverberação e extensão de largura de banda. Roda inteiramente no dispositivo (CoreML no Apple Silicon, ONNX Runtime em outras plataformas). Como ele reconstrói a fala a partir de representações aprendidas em vez de apenas mascarar o ruído, é especialmente bom para preparar uma referência de clonagem de voz: limpa a gravação preservando a identidade do falante.
O Aprimoramento de fala (DeepFilterNet3) é um supressor de ruído minúsculo, em tempo real. O Sidon é um modelo de restauração generativa mais pesado: ele também remove reverberação e reconstrói detalhe de alta frequência até 48 kHz. Use o DeepFilterNet3 para remoção de ruído ao vivo e o Sidon para limpeza offline de referências e gravações de arquivo.
Arquitetura
O Sidon é um pipeline de dois estágios: um preditor de features autossupervisionado limpa a representação da fala, e um vocoder neural ressintetiza uma forma de onda limpa a partir dela.
| Estágio | Detalhes |
|---|---|
| Front-end | Features log-mel do w2v-BERT 2.0 SeamlessM4T (16 kHz → 160 dimensões) |
| Preditor | w2v-BERT 2.0 (8 camadas) com uma cabeça de limpeza ajustada por LoRA → features limpas |
| Vocoder | O decodificador DAC ressintetiza áudio a 48 kHz a partir das features limpas |
O pipeline é 16 kHz audio → features → predictor → DAC decoder → 48 kHz audio. Total ≈ 246M parâmetros (193,6M do preditor + 52,4M do vocoder).
Pipeline de processamento
- Extração de features — Calcula as features log-mel do w2v-BERT 2.0 a partir da entrada a 16 kHz (Accelerate/vDSP no Apple, C++ em outras plataformas)
- Preditor — O codificador w2v-BERT adaptado por LoRA mapeia features ruidosas/reverberantes para features limpas
- Vocoder — O decodificador DAC reconstrói uma forma de onda limpa a 48 kHz a partir das features limpas
- Particionamento — Áudio mais longo é processado em janelas fixas (~10 s) e costurado na linha do tempo de 48 kHz
Qualidade
Em um trecho de referência reverberante, a restauração eleva a qualidade perceptual mantendo a identidade do falante intacta (MOS sem referência):
| Áudio | DNSMOS OVRL | UTMOS | Cosseno de falante |
|---|---|---|---|
| Entrada (reverberante) | 2.90 | 2.99 | — |
| Sidon restaurado | 3.29 | 3.40 | 0.79 |
O maior ganho está na pontuação de fundo (reverberação removida). A similaridade do falante é preservada, que é o que importa ao limpar uma referência de clonagem.
Variantes do modelo
A quantização comprime o preditor; o vocoder DAC permanece em precisão mais alta (qualidade de áudio). No Apple, o int8 usa palettization por k-means; no ONNX, o int8 é apenas de pesos, por canal.
| Formato | Precisão | Tamanho do pacote |
|---|---|---|
| CoreML | int8 (preditor) + FP16 (vocoder) | ~407 MB |
| CoreML | FP16 | ~713 MB |
| ONNX | int8 (preditor) + FP16 (vocoder) | ~286 MB |
| ONNX | FP16 | ~470 MB |
| ONNX | FP32 | ~939 MB |
Uso do 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
O Sidon produz áudio a 48 kHz independentemente da taxa de amostragem da entrada (ele faz upsampling e restaura a largura de banda). É um modelo de restauração offline — mais pesado que o DeepFilterNet3 — e funciona melhor em um arquivo do que em um stream ao vivo.
Downloads de modelos
| Modelo | Formato | HuggingFace |
|---|---|---|
| Sidon (CoreML) | fp16 + int8 | aufklarer/Sidon-CoreML |
| Sidon (ONNX) | int8 + fp16 + fp32 | soniqo/Sidon-ONNX |
Combinando com outros modelos
O Sidon é mais útil como etapa de pré-processamento:
- Antes da clonagem de voz — Limpe uma referência ruidosa/reverberante para que o clone herde a voz, não a sala
- Antes da transcrição — Restaure gravações de arquivo ou de campo distante para melhorar a precisão do ASR
- Antes do embedding de falante — Áudio mais limpo produz embeddings mais confiáveis
API Swift
import SpeechRestoration
let restorer = try await SpeechRestorer.fromPretrained()
let cleanAudio = try restorer.restore(audio: noisySamples, sampleRate: 16000)
Também disponível em Android, Linux e Windows via Speech Core (ONNX Runtime). Construído sobre o Sidon (MIT).