Cải thiện chất lượng giọng nói — DeepFilterNet3
Loại bỏ tiếng ồn nền trong các bản ghi giọng nói bằng DeepFilterNet3. Mô hình chạy trên Neural Engine qua CoreML để suy luận hiệu quả, trong khi toàn bộ xử lý tín hiệu (STFT, ERB filterbank, deep filtering) chạy trên CPU qua Accelerate/vDSP.
Toàn bộ đường DSP tuân theo libdf: hệ số phân tích 1/960, alpha chuẩn hóa 0.99, đệm số không ở biên bộ lọc sâu và đúng thứ tự ma trận NumPy C/Fortran. Trên tập con cố định gồm 20 đoạn VoiceBank-DEMAND, Swift đạt PESQ 3,097, STOI 0,964 và SI-SDR 19,12 dB, so với 3,029, 0,962 và 18,31 dB của DF3 Python chính thức.
Mẫu trước/sau
Một đoạn lời nói có nhiễu được xử lý bằng DeepFilterNet3 để nghe hiệu quả denoiser CoreML trước khi chạy cục bộ.
Kiến trúc
DeepFilterNet3 dùng kiến trúc bộ giải mã kép, tách biệt việc cải thiện đường bao phổ và việc khôi phục chi tiết phổ tinh.
| Giai đoạn | Chi tiết |
|---|---|
| STFT | Short-time Fourier transform qua vDSP |
| Encoder | 4 lớp SepConv2d + SqueezedGRU |
| ERB Decoder | Mặt nạ sigmoid áp dụng lên các dải tần theo thang ERB |
| DF Decoder | Hệ số lọc phức 5 tap |
| iSTFT | STFT nghịch để tái dựng tín hiệu trong miền thời gian |
ERB Decoder ước tính mặt nạ tăng ích trên thang Equivalent Rectangular Bandwidth (ERB), xử lý định hình phổ rộng. DF Decoder dự đoán hệ số lọc phức 5 tap cho chi tiết tinh, áp dụng các bộ lọc đã học trực tiếp trong miền tần số.
Pipeline xử lý
- STFT — Phân tích âm thanh có nhiễu thành biểu diễn thời gian–tần số bằng vDSP
- Đặc trưng ERB — Ánh xạ các bin STFT sang dải tần theo thang ERB
- Mạng nơ-ron — Encoder xử lý đặc trưng trên Neural Engine; bộ giải mã ERB và DF dự đoán tham số cải thiện
- Mặt nạ ERB — Áp dụng mặt nạ tăng ích sigmoid để khử nhiễu trong đường bao phổ
- Deep filtering — Áp dụng hệ số phức 5 tap để khôi phục chi tiết phổ tinh
- iSTFT — Tái dựng âm thanh sạch từ phổ đã cải thiện
Mô hình
| Biến thể | Kích thước | Độ chính xác |
|---|---|---|
| Mặc định | ~2.2 MB | Trọng số bảng màu 8 bit, tính toán FP16 |
Cách dùng CLI
# Denoise audio (output to _denoised.wav)
.build/release/speech denoise noisy.wav
# Specify output file
.build/release/speech denoise noisy.wav -o clean.wav
# Use another compatible HuggingFace repository
.build/release/speech denoise noisy.wav --model owner/DeepFilterNet3-CoreML
Tùy chọn
| Tùy chọn | Mô tả |
|---|---|
--output, -o | Đường dẫn tệp đầu ra (mặc định <input>_denoised.wav) |
--model | ID kho mô hình HuggingFace tương thích (mặc định: aufklarer/DeepFilterNet3-CoreML) |
DeepFilterNet3 chạy trên Neural Engine qua CoreML, không phải trên GPU qua MLX. Điều này nghĩa là mô hình hoạt động hiệu quả ngay cả khi các mô hình khác dựa trên GPU (ASR, TTS) đang chạy. Không cần biên dịch metallib.
Tải mô hình
| Mô hình | Kích thước | HuggingFace |
|---|---|---|
| DeepFilterNet3 (CoreML, bảng màu 8 bit) | ~2.2 MB | aufklarer/DeepFilterNet3-CoreML |
Kết hợp với các mô hình khác
Cải thiện chất lượng giọng nói đặc biệt hữu ích khi dùng làm bước tiền xử lý trước các mô hình khác:
- Trước khi phiên âm — Khử nhiễu âm thanh trước khi chạy ASR để giảm tỷ lệ lỗi từ trên các bản ghi nhiễu
- Trước khi tạo embedding người nói — Âm thanh sạch hơn cho ra embedding người nói đáng tin cậy hơn
- Trước khi phân tách người nói — Khử nhiễu có thể cải thiện độ chính xác phân đoạn
# Denoise then transcribe
.build/release/speech denoise noisy.wav -o clean.wav
.build/release/speech transcribe clean.wav
API Swift
import SpeechEnhancement
let model = try await SpeechEnhancer.fromPretrained()
let cleanAudio = try model.enhance(audio: noisySamples, sampleRate: 48000)
Cũng có trên Android, và trên Linux cùng Windows qua Speech Core (ONNX Runtime).