音声復元 — Sidon
ノイズの多い、残響のある、または帯域制限された音声を、クリーンな 48 kHz 音声へと復元します。Sidon は、ノイズ除去、残響除去、帯域拡張を単一のモデルで組み合わせています。完全にオンデバイスで動作します(Apple Silicon では CoreML、それ以外では ONNX Runtime)。単にノイズをマスクするのではなく、学習された表現から音声を再構築するため、特に音声クローンのリファレンスの準備に優れています。話者の同一性を保持したまま録音をクリーンにします。
音声強調 (DeepFilterNet3) は、軽量でリアルタイムのノイズ抑制器です。Sidon はより重量級の生成的復元モデルで、残響も除去し、高周波の詳細を 48 kHz まで再構築します。ライブのノイズ除去には DeepFilterNet3 を、リファレンスやアーカイブ録音のオフラインクリーンアップには Sidon を使用してください。
アーキテクチャ
Sidon は 2 ステージのパイプラインです。自己教師あり特徴量予測器が音声表現を浄化し、ニューラルボコーダーがそこからクリーンな波形を再合成します。
| ステージ | 詳細 |
|---|---|
| フロントエンド | w2v-BERT 2.0 SeamlessM4T の対数メル特徴量(16 kHz → 160 次元) |
| 予測器 | w2v-BERT 2.0(8 層)と LoRA で微調整された浄化ヘッド → 浄化された特徴量 |
| ボコーダー | DAC デコーダーが浄化された特徴量から 48 kHz 音声を再合成 |
パイプラインは 16 kHz audio → features → predictor → DAC decoder → 48 kHz audio です。合計で約 246M パラメーター(予測器 193.6M + ボコーダー 52.4M)。
処理パイプライン
- 特徴量抽出 — 16 kHz 入力から w2v-BERT 2.0 の対数メル特徴量を計算(Apple では Accelerate/vDSP、他のプラットフォームでは C++)
- 予測器 — LoRA 適応された w2v-BERT エンコーダーが、ノイズや残響のある特徴量をクリーンなものへマッピング
- ボコーダー — DAC デコーダーが浄化された特徴量からクリーンな 48 kHz 波形を再構築
- チャンク処理 — 長い音声は固定ウィンドウ(約 10 秒)で処理され、48 kHz のタイムライン上で結合される
品質
残響のあるリファレンスクリップでは、復元によって話者の同一性を保ったまま知覚品質が向上します(参照なしの MOS)。
| 音声 | DNSMOS OVRL | UTMOS | 話者コサイン類似度 |
|---|---|---|---|
| 入力(残響あり) | 2.90 | 2.99 | — |
| Sidon 復元後 | 3.29 | 3.40 | 0.79 |
最も大きな向上はバックグラウンドスコア(残響が除去された点)にあります。話者の類似度は保持されており、これがクローンのリファレンスをクリーンにする際に重要となる点です。
モデルバリアント
量子化は予測器を圧縮します。DAC ボコーダーは音声品質のためにより高い精度を維持します。Apple では int8 に k-means パレット化を使用し、ONNX では int8 はチャンネルごとの重みのみの量子化です。
| フォーマット | 精度 | バンドルサイズ |
|---|---|---|
| CoreML | int8(予測器)+ FP16(ボコーダー) | 約 407 MB |
| CoreML | FP16 | 約 713 MB |
| ONNX | int8(予測器)+ FP16(ボコーダー) | 約 286 MB |
| ONNX | FP16 | 約 470 MB |
| ONNX | FP32 | 約 939 MB |
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 kHz 音声を出力します(アップサンプリングして帯域を復元します)。これは DeepFilterNet3 より重量級のオフライン復元モデルであり、ライブストリームよりもファイルに対して実行するのが最適です。
モデルダウンロード
| モデル | フォーマット | HuggingFace |
|---|---|---|
| Sidon (CoreML) | fp16 + int8 | aufklarer/Sidon-CoreML |
| Sidon (ONNX) | int8 + fp16 + fp32 | soniqo/Sidon-ONNX |
他のモデルとの組み合わせ
Sidon は前処理ステップとして最も有用です:
- 音声クローンの前 — ノイズや残響のあるリファレンスをクリーンにし、クローンが部屋の特性ではなく声そのものを引き継ぐようにする
- 文字起こしの前 — アーカイブ録音や遠方音場の録音を復元して ASR の精度を向上
- 話者embeddingの前 — クリーンな音声はより信頼性の高いembeddingを生成
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)を基盤としています。