การฟื้นฟูเสียงพูด — Sidon
ฟื้นฟูเสียงพูดที่มีเสียงรบกวน เสียงก้อง หรือถูกจำกัดแบนด์วิดท์ ให้กลายเป็นเสียงที่สะอาดที่ 48 kHz ด้วย Sidon — โมเดลเดียวที่รวมการลดเสียงรบกวน การลดเสียงก้อง และการขยายแบนด์วิดท์เข้าไว้ด้วยกัน โมเดลทำงานบนอุปกรณ์ทั้งหมด (CoreML บน Apple Silicon และ ONNX Runtime บนแพลตฟอร์มอื่น) เนื่องจากมันสร้างเสียงพูดขึ้นใหม่จากการแทนค่าที่เรียนรู้แล้ว แทนที่จะเพียงมาสก์เสียงรบกวน จึงเหมาะอย่างยิ่งสำหรับการเตรียม เสียงอ้างอิงสำหรับการโคลนเสียง: มันทำให้การบันทึกสะอาดขึ้นโดยยังคงรักษาเอกลักษณ์ของผู้พูดไว้
การปรับปรุงเสียงพูด (DeepFilterNet3) เป็น ตัวกดเสียงรบกวน ขนาดเล็กที่ทำงานแบบเรียลไทม์ ส่วน Sidon เป็นโมเดล การฟื้นฟูแบบ generative ที่หนักกว่า: มันยังลบเสียงก้องและสร้างรายละเอียดความถี่สูงขึ้นใหม่ให้เป็น 48 kHz ใช้ DeepFilterNet3 สำหรับการลบเสียงรบกวนแบบสด และใช้ Sidon สำหรับการทำความสะอาดเสียงอ้างอิงและการบันทึกเก็บถาวรแบบออฟไลน์
สถาปัตยกรรม
Sidon เป็นไปป์ไลน์สองขั้นตอน: ตัวทำนายคุณลักษณะแบบ self-supervised จะทำความสะอาดการแทนค่าของเสียงพูด จากนั้น neural vocoder จะสังเคราะห์รูปคลื่นที่สะอาดขึ้นใหม่จากการแทนค่านั้น
| ขั้นตอน | รายละเอียด |
|---|---|
| Front-end | คุณลักษณะ log-mel ของ w2v-BERT 2.0 SeamlessM4T (16 kHz → 160 มิติ) |
| Predictor | w2v-BERT 2.0 (8 ชั้น) พร้อม cleanse head ที่ปรับแต่งด้วย LoRA → คุณลักษณะที่ทำความสะอาดแล้ว |
| Vocoder | ตัวถอดรหัส DAC สังเคราะห์เสียง 48 kHz ขึ้นใหม่จากคุณลักษณะที่ทำความสะอาดแล้ว |
ไปป์ไลน์คือ 16 kHz audio → features → predictor → DAC decoder → 48 kHz audio รวมทั้งสิ้นประมาณ 246M พารามิเตอร์ (193.6M ในตัวทำนาย + 52.4M ใน vocoder)
ไปป์ไลน์การประมวลผล
- การสกัดคุณลักษณะ — คำนวณคุณลักษณะ log-mel ของ w2v-BERT 2.0 จากอินพุต 16 kHz (Accelerate/vDSP บน Apple, C++ บนแพลตฟอร์มอื่น)
- Predictor — ตัวเข้ารหัส w2v-BERT ที่ปรับด้วย LoRA จะแมปคุณลักษณะที่มีเสียงรบกวน/เสียงก้องไปเป็นคุณลักษณะที่สะอาด
- Vocoder — ตัวถอดรหัส DAC สร้างรูปคลื่นที่สะอาดที่ 48 kHz ขึ้นใหม่จากคุณลักษณะที่ทำความสะอาดแล้ว
- การแบ่งเป็นช่วง — เสียงที่ยาวกว่าจะถูกประมวลผลเป็นหน้าต่างที่มีขนาดคงที่ (~10 วินาที) และเชื่อมต่อกันบนไทม์ไลน์ 48 kHz
คุณภาพ
บนคลิปเสียงอ้างอิงที่มีเสียงก้อง การฟื้นฟูช่วยยกระดับคุณภาพการรับรู้ขณะที่ยังคงเอกลักษณ์ของผู้พูดไว้ (MOS แบบไม่มีค่าอ้างอิง):
| เสียง | DNSMOS OVRL | UTMOS | Speaker cosine |
|---|---|---|---|
| อินพุต (มีเสียงก้อง) | 2.90 | 2.99 | — |
| ฟื้นฟูด้วย Sidon | 3.29 | 3.40 | 0.79 |
การปรับปรุงที่มากที่สุดอยู่ที่คะแนนเสียงพื้นหลัง (เสียงก้องถูกลบออก) ความคล้ายคลึงของผู้พูดยังคงอยู่ ซึ่งเป็นสิ่งสำคัญเมื่อทำความสะอาดเสียงอ้างอิงสำหรับการโคลน
รุ่นของโมเดล
การ quantize จะบีบอัดตัวทำนาย ส่วน DAC vocoder ยังคงอยู่ที่ความแม่นยำสูงกว่า (เพื่อคุณภาพเสียง) บน Apple นั้น int8 ใช้ k-means palettization ส่วนบน ONNX นั้น int8 เป็นแบบ weight-only per-channel
| รูปแบบ | ความแม่นยำ | ขนาดแพ็กเกจ |
|---|---|---|
| CoreML | int8 (predictor) + FP16 (vocoder) | ~407 MB |
| CoreML | FP16 | ~713 MB |
| ONNX | int8 (predictor) + FP16 (vocoder) | ~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 เสมอ ไม่ว่าอัตราการสุ่มของอินพุตจะเป็นเท่าใด (มัน upsample และฟื้นฟูแบนด์วิดท์) มันเป็นโมเดลการฟื้นฟูแบบออฟไลน์ — หนักกว่า DeepFilterNet3 — และเหมาะที่จะรันกับไฟล์มากกว่าสตรีมแบบสด
ดาวน์โหลดโมเดล
| โมเดล | รูปแบบ | HuggingFace |
|---|---|---|
| Sidon (CoreML) | fp16 + int8 | aufklarer/Sidon-CoreML |
| Sidon (ONNX) | int8 + fp16 + fp32 | soniqo/Sidon-ONNX |
การใช้ร่วมกับโมเดลอื่นๆ
Sidon มีประโยชน์มากที่สุดเมื่อใช้เป็นขั้นตอน preprocessing:
- ก่อนการโคลนเสียง — ทำความสะอาดเสียงอ้างอิงที่มีเสียงรบกวน/เสียงก้อง เพื่อให้เสียงที่โคลนสืบทอดเสียงของผู้พูด ไม่ใช่เสียงของห้อง
- ก่อนการถอดเสียง — ฟื้นฟูการบันทึกเก็บถาวรหรือการบันทึกจากระยะไกล เพื่อเพิ่มความแม่นยำของ ASR
- ก่อนการทำ embedding ผู้พูด — เสียงที่สะอาดกว่าทำให้ได้ embedding ที่น่าเชื่อถือกว่า
API ของ Swift
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)