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.

Chất lượng ngang bằng DF3 chính thức

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ộ.

Đầu vào có nhiễuMP3, 48 kHz
Đầu ra DeepFilterNet3MP3, 48 kHz

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ạnChi tiết
STFTShort-time Fourier transform qua vDSP
Encoder4 lớp SepConv2d + SqueezedGRU
ERB DecoderMặt nạ sigmoid áp dụng lên các dải tần theo thang ERB
DF DecoderHệ số lọc phức 5 tap
iSTFTSTFT 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ý

  1. 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
  2. Đặc trưng ERB — Ánh xạ các bin STFT sang dải tần theo thang ERB
  3. 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
  4. Mặt nạ ERB — Áp dụng mặt nạ tăng ích sigmoid để khử nhiễu trong đường bao phổ
  5. Deep filtering — Áp dụng hệ số phức 5 tap để khôi phục chi tiết phổ tinh
  6. 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 MBTrọ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ọnMô tả
--output, -oĐường dẫn tệp đầu ra (mặc định <input>_denoised.wav)
--modelID kho mô hình HuggingFace tương thích (mặc định: aufklarer/DeepFilterNet3-CoreML)
Quan trọng

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ìnhKích thướcHuggingFace
DeepFilterNet3 (CoreML, bảng màu 8 bit)~2.2 MBaufklarer/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:

# 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).