Восстановление речи — Sidon

Восстанавливайте зашумлённую, реверберирующую или ограниченную по полосе частот речь до чистого аудио 48 кГц с помощью Sidon — единой модели, объединяющей шумоподавление, дереверберацию и расширение полосы частот. Она работает полностью на устройстве (CoreML на Apple Silicon, ONNX Runtime на остальных платформах). Поскольку она восстанавливает речь из выученных представлений, а не просто маскирует шум, она особенно хорошо подходит для подготовки референса для клонирования голоса: модель очищает запись, сохраняя при этом идентичность диктора.

Когда использовать Sidon, а когда DeepFilterNet3

Улучшение речи (DeepFilterNet3) — это крошечный шумоподавитель реального времени. Sidon — более тяжёлая модель генеративного восстановления: она также убирает реверберацию и восстанавливает высокочастотную детализацию до 48 кГц. Используйте DeepFilterNet3 для удаления шума в реальном времени, а Sidon — для офлайн-очистки референсов и архивных записей.

Архитектура

Sidon — это двухэтапный пайплайн: самообучаемый предиктор признаков очищает речевое представление, а нейросетевой вокодер ресинтезирует из него чистый сигнал.

ЭтапДетали
ФронтендЛог-мел-признаки w2v-BERT 2.0 SeamlessM4T (16 кГц → 160 измерений)
Предикторw2v-BERT 2.0 (8 слоёв) с дообученной через LoRA головой очистки → очищенные признаки
ВокодерДекодер DAC ресинтезирует аудио 48 кГц из очищенных признаков

Пайплайн: 16 kHz audio → features → predictor → DAC decoder → 48 kHz audio. Всего ≈ 246M параметров (193.6M предиктор + 52.4M вокодер).

Пайплайн обработки

  1. Извлечение признаков — Вычислить лог-мел-признаки w2v-BERT 2.0 из входа 16 кГц (Accelerate/vDSP на Apple, C++ на других платформах)
  2. Предиктор — Адаптированный через LoRA энкодер w2v-BERT отображает зашумлённые/реверберирующие признаки в чистые
  3. Вокодер — Декодер DAC восстанавливает чистый сигнал 48 кГц из очищенных признаков
  4. Разбиение на блоки — Более длинное аудио обрабатывается фиксированными окнами (~10 с) и сшивается на временной шкале 48 кГц

Качество

На реверберирующем референсном фрагменте восстановление повышает воспринимаемое качество, сохраняя при этом идентичность диктора (MOS без референса):

АудиоDNSMOS OVRLUTMOSКосинус по диктору
Вход (реверберирующий)2.902.99
Восстановлено Sidon3.293.400.79

Наибольший прирост приходится на фоновую составляющую (реверберация удалена). Сходство по диктору сохраняется, а именно это важно при очистке референса для клонирования.

Варианты модели

Квантизация сжимает предиктор; вокодер DAC остаётся на более высокой точности (качество аудио). На Apple int8 использует палитризацию методом k-средних; в ONNX int8 — только веса, поканально.

ФорматТочностьРазмер бандла
CoreMLint8 (предиктор) + FP16 (вокодер)~407 МБ
CoreMLFP16~713 МБ
ONNXint8 (предиктор) + FP16 (вокодер)~286 МБ
ONNXFP16~470 МБ
ONNXFP32~939 МБ

Использование 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 выдаёт аудио 48 кГц независимо от частоты дискретизации входа (он повышает частоту дискретизации и восстанавливает полосу частот). Это офлайн-модель восстановления — тяжелее, чем DeepFilterNet3 — и её лучше запускать на файле, а не на живом потоке.

Загрузка моделей

МодельФорматHuggingFace
Sidon (CoreML)fp16 + int8aufklarer/Sidon-CoreML
Sidon (ONNX)int8 + fp16 + fp32soniqo/Sidon-ONNX

Сочетание с другими моделями

Sidon наиболее полезен как шаг предобработки:

Swift API

import SpeechRestoration

let restorer = try await SpeechRestorer.fromPretrained()
let cleanAudio = try restorer.restore(audio: noisySamples, sampleRate: 16000)

Также доступно на Android, Linux и Windows через Speech Core (ONNX Runtime). Построено на Sidon (MIT).