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.
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ạn | Chi tiết |
|---|---|
| Front-end | Đặc trưng log-mel w2v-BERT 2.0 SeamlessM4T (16 kHz → 160 chiều) |
| Bộ dự đoán | w2v-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 |
| Vocoder | Bộ 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ý
- 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)
- 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
- 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
- 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 thanh | DNSMOS OVRL | UTMOS | Cosine người nói |
|---|---|---|---|
| Đầu vào (có tiếng vang) | 2.90 | 2.99 | — |
| Sidon đã khôi phục | 3.29 | 3.40 | 0.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ác | Kích thước gói |
|---|---|---|
| CoreML | int8 (bộ dự đoán) + FP16 (vocoder) | ~407 MB |
| CoreML | FP16 | ~713 MB |
| ONNX | int8 (bộ dự đoán) + FP16 (vocoder) | ~286 MB |
| ONNX | FP16 | ~470 MB |
| ONNX | FP32 | ~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
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ạng | HuggingFace |
|---|---|---|
| Sidon (CoreML) | fp16 + int8 | aufklarer/Sidon-CoreML |
| Sidon (ONNX) | int8 + fp16 + fp32 | soniqo/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ý:
- Trước khi nhân bản giọng nói — Làm sạch một mẫu tham chiếu nhiễu/vang để bản nhân bản kế thừa giọng nói chứ không phải căn phòng
- Trước khi phiên âm — Khôi phục các bản ghi lưu trữ hoặc thu từ xa để cải thiện độ chính xác ASR
- Trước khi tạo embedding người nói — Âm thanh sạch hơn cho ra embedding đáng tin cậy hơn
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).