การฟื้นฟูเสียงพูด — Sidon

ฟื้นฟูเสียงพูดที่มีเสียงรบกวน เสียงก้อง หรือถูกจำกัดแบนด์วิดท์ ให้กลายเป็นเสียงที่สะอาดที่ 48 kHz ด้วย Sidon — โมเดลเดียวที่รวมการลดเสียงรบกวน การลดเสียงก้อง และการขยายแบนด์วิดท์เข้าไว้ด้วยกัน โมเดลทำงานบนอุปกรณ์ทั้งหมด (CoreML บน Apple Silicon และ ONNX Runtime บนแพลตฟอร์มอื่น) เนื่องจากมันสร้างเสียงพูดขึ้นใหม่จากการแทนค่าที่เรียนรู้แล้ว แทนที่จะเพียงมาสก์เสียงรบกวน จึงเหมาะอย่างยิ่งสำหรับการเตรียม เสียงอ้างอิงสำหรับการโคลนเสียง: มันทำให้การบันทึกสะอาดขึ้นโดยยังคงรักษาเอกลักษณ์ของผู้พูดไว้

เมื่อใดควรใช้ Sidon เทียบกับ DeepFilterNet3

การปรับปรุงเสียงพูด (DeepFilterNet3) เป็น ตัวกดเสียงรบกวน ขนาดเล็กที่ทำงานแบบเรียลไทม์ ส่วน Sidon เป็นโมเดล การฟื้นฟูแบบ generative ที่หนักกว่า: มันยังลบเสียงก้องและสร้างรายละเอียดความถี่สูงขึ้นใหม่ให้เป็น 48 kHz ใช้ DeepFilterNet3 สำหรับการลบเสียงรบกวนแบบสด และใช้ Sidon สำหรับการทำความสะอาดเสียงอ้างอิงและการบันทึกเก็บถาวรแบบออฟไลน์

สถาปัตยกรรม

Sidon เป็นไปป์ไลน์สองขั้นตอน: ตัวทำนายคุณลักษณะแบบ self-supervised จะทำความสะอาดการแทนค่าของเสียงพูด จากนั้น neural vocoder จะสังเคราะห์รูปคลื่นที่สะอาดขึ้นใหม่จากการแทนค่านั้น

ขั้นตอนรายละเอียด
Front-endคุณลักษณะ log-mel ของ w2v-BERT 2.0 SeamlessM4T (16 kHz → 160 มิติ)
Predictorw2v-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)

ไปป์ไลน์การประมวลผล

  1. การสกัดคุณลักษณะ — คำนวณคุณลักษณะ log-mel ของ w2v-BERT 2.0 จากอินพุต 16 kHz (Accelerate/vDSP บน Apple, C++ บนแพลตฟอร์มอื่น)
  2. Predictor — ตัวเข้ารหัส w2v-BERT ที่ปรับด้วย LoRA จะแมปคุณลักษณะที่มีเสียงรบกวน/เสียงก้องไปเป็นคุณลักษณะที่สะอาด
  3. Vocoder — ตัวถอดรหัส DAC สร้างรูปคลื่นที่สะอาดที่ 48 kHz ขึ้นใหม่จากคุณลักษณะที่ทำความสะอาดแล้ว
  4. การแบ่งเป็นช่วง — เสียงที่ยาวกว่าจะถูกประมวลผลเป็นหน้าต่างที่มีขนาดคงที่ (~10 วินาที) และเชื่อมต่อกันบนไทม์ไลน์ 48 kHz

คุณภาพ

บนคลิปเสียงอ้างอิงที่มีเสียงก้อง การฟื้นฟูช่วยยกระดับคุณภาพการรับรู้ขณะที่ยังคงเอกลักษณ์ของผู้พูดไว้ (MOS แบบไม่มีค่าอ้างอิง):

เสียงDNSMOS OVRLUTMOSSpeaker cosine
อินพุต (มีเสียงก้อง)2.902.99
ฟื้นฟูด้วย Sidon3.293.400.79

การปรับปรุงที่มากที่สุดอยู่ที่คะแนนเสียงพื้นหลัง (เสียงก้องถูกลบออก) ความคล้ายคลึงของผู้พูดยังคงอยู่ ซึ่งเป็นสิ่งสำคัญเมื่อทำความสะอาดเสียงอ้างอิงสำหรับการโคลน

รุ่นของโมเดล

การ quantize จะบีบอัดตัวทำนาย ส่วน DAC vocoder ยังคงอยู่ที่ความแม่นยำสูงกว่า (เพื่อคุณภาพเสียง) บน Apple นั้น int8 ใช้ k-means palettization ส่วนบน ONNX นั้น int8 เป็นแบบ weight-only per-channel

รูปแบบความแม่นยำขนาดแพ็กเกจ
CoreMLint8 (predictor) + FP16 (vocoder)~407 MB
CoreMLFP16~713 MB
ONNXint8 (predictor) + FP16 (vocoder)~286 MB
ONNXFP16~470 MB
ONNXFP32~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 + int8aufklarer/Sidon-CoreML
Sidon (ONNX)int8 + fp16 + fp32soniqo/Sidon-ONNX

การใช้ร่วมกับโมเดลอื่นๆ

Sidon มีประโยชน์มากที่สุดเมื่อใช้เป็นขั้นตอน preprocessing:

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)