Khôi phục giọng nói — Sidon

Khôi phục giọng nói bị nhiễu, vang hoặc giới hạn băng thông thành âm thanh sạch 48 kHz với Sidon — một mô hình duy nhất kết hợp khử nhiễu, khử vang và mở rộng băng thông. Mô hình chạy hoàn toàn trên thiết bị (CoreML trên Apple Silicon, ONNX Runtime ở nơi khác). Vì nó tái dựng giọng nói từ các biểu diễn đã học thay vì chỉ che nhiễu, mô hình đặc biệt phù hợp để chuẩn bị mẫu tham chiếu cho nhân bản giọng nói: nó làm sạch bản ghi trong khi vẫn giữ nguyên danh tính người nói.

Khi nào dùng Sidon thay vì DeepFilterNet3

Cải thiện chất lượng giọng nói (DeepFilterNet3) là một bộ khử nhiễu nhỏ gọn, thời gian thực. Sidon là một mô hình khôi phục sinh tạo nặng hơn: nó còn loại bỏ tiếng vang và tái dựng chi tiết tần số cao lên 48 kHz. Dùng DeepFilterNet3 để khử nhiễu trực tiếp, còn Sidon để làm sạch ngoại tuyến các mẫu tham chiếu và bản ghi lưu trữ.

Kiến trúc

Sidon là một pipeline hai giai đoạn: một bộ dự đoán đặc trưng tự giám sát làm sạch biểu diễn giọng nói, và một vocoder nơ-ron tổng hợp lại dạng sóng sạch từ đó.

Giai đoạnChi tiết
Front-endĐặc trưng log-mel w2v-BERT 2.0 SeamlessM4T (16 kHz → 160 chiều)
Bộ dự đoánw2v-BERT 2.0 (8 lớp) với đầu làm sạch tinh chỉnh bằng LoRA → đặc trưng đã làm sạch
VocoderBộ giải mã DAC tổng hợp lại âm thanh 48 kHz từ các đặc trưng đã làm sạch

Pipeline là 16 kHz audio → features → predictor → DAC decoder → 48 kHz audio. Tổng cộng ≈ 246M tham số (193.6M bộ dự đoán + 52.4M vocoder).

Pipeline xử lý

  1. Trích xuất đặc trưng — Tính các đặc trưng log-mel w2v-BERT 2.0 từ đầu vào 16 kHz (Accelerate/vDSP trên Apple, C++ trên các nền tảng khác)
  2. Bộ dự đoán — Bộ mã hóa w2v-BERT thích ứng bằng LoRA ánh xạ đặc trưng nhiễu/vang sang đặc trưng sạch
  3. Vocoder — Bộ giải mã DAC tái dựng dạng sóng sạch 48 kHz từ các đặc trưng đã làm sạch
  4. Chia khối — Âm thanh dài hơn được xử lý theo các cửa sổ cố định (~10 giây) và ghép lại trên trục thời gian 48 kHz

Chất lượng

Trên một đoạn tham chiếu có tiếng vang, việc khôi phục nâng cao chất lượng cảm nhận trong khi vẫn giữ nguyên danh tính người nói (MOS không tham chiếu):

Âm thanhDNSMOS OVRLUTMOSCosine người nói
Đầu vào (có tiếng vang)2.902.99
Sidon đã khôi phục3.293.400.79

Mức tăng lớn nhất nằm ở phần điểm nền (tiếng vang đã được loại bỏ). Độ tương đồng người nói được giữ nguyên, đó chính là điều quan trọng khi làm sạch một mẫu tham chiếu để nhân bản.

Biến thể mô hình

Lượng tử hóa nén bộ dự đoán; vocoder DAC giữ ở độ chính xác cao hơn (chất lượng âm thanh). Trên Apple, int8 dùng palettization k-means; trên ONNX, int8 là per-channel chỉ trên trọng số.

Định dạngĐộ chính xácKích thước gói
CoreMLint8 (bộ dự đoán) + FP16 (vocoder)~407 MB
CoreMLFP16~713 MB
ONNXint8 (bộ dự đoán) + FP16 (vocoder)~286 MB
ONNXFP16~470 MB
ONNXFP32~939 MB

Cách dùng 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
Quan trọng

Sidon xuất ra âm thanh 48 kHz bất kể tần số lấy mẫu đầu vào (nó nâng tần số lấy mẫu và khôi phục băng thông). Đây là một mô hình khôi phục ngoại tuyến — nặng hơn DeepFilterNet3 — và tốt nhất nên chạy trên một tệp thay vì luồng trực tiếp.

Tải mô hình

Mô hìnhĐịnh dạngHuggingFace
Sidon (CoreML)fp16 + int8aufklarer/Sidon-CoreML
Sidon (ONNX)int8 + fp16 + fp32soniqo/Sidon-ONNX

Kết hợp với các mô hình khác

Sidon hữu ích nhất khi dùng làm bước tiền xử lý:

API Swift

import SpeechRestoration

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

Cũng có sẵn trên Android, Linux và Windows qua Speech Core (ONNX Runtime). Xây dựng trên Sidon (MIT).