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.

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

Biến thể mô hình

Biến thểKích thướcĐộ chính xác
INT8 (mặc định)~2.2 MBLượng tử hóa 8 bit
FP32~4.3 MBĐộ chính xác đầy đủ

Mô hình có khoảng 2.1M tham số. Biến thể INT8 được dùng mặc định và cho chất lượng tương đương với chỉ một nửa kích thước.

Cách dùng CLI

# Khử nhiễu âm thanh (đầu ra ghi vào _denoised.wav)
.build/release/speech denoise noisy.wav

# Chỉ định tệp đầu ra
.build/release/speech denoise noisy.wav -o clean.wav

# Dùng biến thể FP32 của mô hình
.build/release/speech denoise noisy.wav --model fp32

Tùy chọn

Tùy chọnMô tả
--output, -oĐường dẫn tệp đầu ra (mặc định <input>_denoised.wav)
--modelBiến thể mô hình: int8 (mặc định) hoặc fp32
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 FP16)~4.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:

# Khử nhiễu rồi phiên âm
.build/release/speech denoise noisy.wav -o clean.wav
.build/release/speech transcribe clean.wav

API Swift

import SpeechEnhancement

let model = try await DeepFilterNet3.loadFromHub()
let cleanAudio = try await model.denoise(audioFile: "noisy.wav")
try cleanAudio.write(to: "clean.wav")

Cũng có sẵn trên Android và Linux qua ONNX Runtime.