LocalVQE v1.4-AEC
この Soniqo ページは、ローカルの speech-swift 実装にある LocalVQE v1.4-AEC を説明します。Hugging Face バンドルへのリンクは統合メモの後にあります。
まずサイト内ページへ
ランディングカードとドキュメントメニューは先にこのページへ向け、ソースモデルとバンドルのリンクは本ページ内に残します。
概要
| モデル | LocalVQE v1.4-AEC |
|---|---|
| 役割 | Explicit-reference acoustic echo cancellation |
| バックエンド | Native C++ adaptive filter plus stateful Core ML residual mask |
| 出力 | 16 kHz mono Float32 clean-microphone PCM |
| 言語 | Language-independent acoustic processing |
| ライセンス | Apache-2.0 code and weights |
| 状態 | Streaming and complete-clip speech-swift runtime |
| ソース | LocalVQE |
| Swift プロダクト | SpeechEnhancement |
| CLI / ランタイム | Programmatic LocalVQEEchoCanceller runtime |
使い方
以下のスニペットは、現在の speech-swift リポジトリが公開している API またはコマンドに合わせています。
import SpeechEnhancement
let aec = try await LocalVQEEchoCanceller.fromPretrained()
let cleanMicrophone = try aec.processFrame(
microphone: microphoneFrame,
reference: playbackReferenceFrame
)
モデルリンク
実装メモ
- Microphone and playback reference are separate, synchronized inputs; a mixed system-audio transcript is not a valid reference.
- Streaming accepts exactly 256 mono samples per input at 16 kHz and adds one 16 ms spectral hop of algorithmic latency.
- 各フレームは返る前に一時的な Core ML バッファを解放するため、長時間動作するキャプチャスレッドでも macOS の IOSurface 上限を使い果たしません。
- Reset after dropped frames, device changes, capture restarts, or recording boundaries so stale filter and neural state cannot cross discontinuities.
- A silent reference preserves microphone-only speech; the runtime never falls back to subtracting a mix or muting the microphone.
- Do not blindly cascade this path with Apple Voice Processing I/O because two adaptive cancellers can distort near-end speech.