การแยกแหล่งเสียง

Open-Unmix HQ แยกแทร็กเพลงสเตอริโอออกเป็นสี่ stem ที่เป็นอิสระต่อกัน — vocals, drums, bass และ other โมเดล BiLSTM อิสระสี่ตัว (หนึ่งตัวต่อหนึ่ง stem) สร้างมาสก์ขนาดบน STFT ของส่วนผสม; Wiener post-filter ที่เป็นทางเลือกจะช่วยปรับให้สอดคล้องกัน ทำงานบน Apple Silicon ผ่าน MLX

มีให้เลือกสองเอนจิน: Open-Unmix HQ (น้ำหนักเบา และเป็นค่าเริ่มต้น) และ HTDemucs (Demucs v4) — โมเดล Hybrid Transformer คุณภาพสูงกว่า ที่เลือกด้วย --engine htdemucs ทั้งคู่ทำงานบน Apple Silicon ผ่าน MLX และให้ stem สี่ตัวเดียวกันที่ 44.1 kHz

มันคืออะไร

สถาปัตยกรรม

สี่ stem อิสระ แต่ละตัวเป็นสำเนาของโครงข่ายเดียวกัน

ขั้นตอนรูปร่าง / การดำเนินการ
STFTFFT 4096 จุด, hop 1024, หน้าต่าง Hann แบบ periodic, reflect-pad 2049 bin ความถี่ต่อ frame
การ normalize อินพุตครอปเหลือ 1487 bin (≈16 kHz), ใช้ค่าเฉลี่ยและสเกลต่อ bin ที่เรียนรู้มาจากการฝึก
EncoderLinear 2974 → 512 + BatchNorm + tanh อินพุตคือ 2 channel × 1487 bin
BiLSTM3 ชั้น, 256 hidden ต่อทิศทาง (512 ที่ใช้งานจริง) เก็บบริบทเชิงเวลาข้าม frame
DecoderSkip-concat ของเอาต์พุต encoder และ LSTM (1024) → Linear 1024 → 512 + BN + ReLU → Linear 512 → 4098
เอาต์พุต denorm + มาสก์คูณตามองค์ประกอบกับขนาดของส่วนผสม; phase จากส่วนผสม; iSTFT overlap-add
Wiener (ทางเลือก)มาสก์อัตราส่วนกำลังบนการประมาณ stem ทั้ง 4 ตัว ปรับ phase เพื่อให้ stem รวมกลับเป็นส่วนผสม

โมเดล

องค์ประกอบค่า
พารามิเตอร์ / stem8.9M
พารามิเตอร์รวม (4 stem)~35.6M
Sample rate44.1 kHz stereo
Chunk latencyออฟไลน์ (STFT ทั้งแทร็ก)
น้ำหนักaufklarer/OpenUnmix-HQ-MLX (safetensors, ~136 MB)
ต้นน้ำsigsep/open-unmix-pytorch (Stöter และคณะ, JOSS 2019)

HTDemucs (Demucs v4)

For higher separation quality — especially on bass and drums — the package also ships HTDemucs, Meta's Hybrid Transformer Demucs. It merges a spectrogram branch and a waveform branch through a cross-domain transformer; the shipped htdemucs_ft variant is a bag of four fine-tuned sub-models, one per stem. Weights download from HuggingFace on first use. On a directional MUSDB-sample benchmark (museval / BSSEval v4) it averages +3.01 dB SDR over UMX-HQ, with the biggest gains on bass (+5.75 dB).

ComponentValue
Parameters168M (4 × 42M fine-tuned sub-models)
Sample rate44.1 kHz stereo
Windowing7.8 s segments, 25% overlap, triangular cross-fade
Weightsaufklarer/HTDemucs-FT-MLX (fp16, ~320 MB)
Upstreamfacebookresearch/demucs (Rouard et al., ICASSP 2023)

เริ่มต้นอย่างรวดเร็ว — Swift

import SourceSeparation
import AudioCommon

let separator = try await SourceSeparator.fromPretrained()

let stereo = try AudioFileLoader.loadStereo(
    url: URL(fileURLWithPath: "song.wav"),
    targetSampleRate: 44100
)

let stems = separator.separate(audio: stereo, sampleRate: 44100)
// stems[.vocals], stems[.drums], stems[.bass], stems[.other]
// Each is [[Float]] — left channel, right channel.

try WAVWriter.writeStereo(
    left: stems[.vocals]![0],
    right: stems[.vocals]![1],
    sampleRate: 44100,
    to: URL(fileURLWithPath: "vocals.wav")
)

ส่งผ่าน wiener: true (ค่าเริ่มต้น) เพื่อคุณภาพที่ดีที่สุด ส่งผ่าน targets: [.vocals] เพื่อแยกเฉพาะ stem ชุดย่อยและข้ามโมเดลอื่นๆ

CLI

speech separate song.wav                              # all 4 stems into song_stems/ (Open-Unmix)
speech separate song.wav --engine htdemucs            # Demucs v4 — higher quality
speech separate song.wav --engine htdemucs --htdemucs-precision int8  # smaller int8 bundle
speech separate song.wav --stems vocals               # vocals only
speech separate song.wav --stems vocals,drums         # subset
speech separate song.wav --output-dir /tmp/stems/     # custom output dir
speech separate song.wav --verbose                    # show timing

เมื่อใดที่ควรใช้

Open-Unmix เหมาะเมื่อ…

…คุณต้องการขั้นตอนการแยกแหล่งเสียงที่เบาและออฟไลน์ในแอปหรือไปป์ไลน์บน Apple Silicon 8.9M พารามิเตอร์ต่อ stem ช่วยให้ขนาดดาวน์โหลดและการใช้หน่วยความจำอยู่ในเกณฑ์พอเหมาะ การมาสก์ขนาดร่วมกับ Wiener ให้ stem ที่มีคุณภาพดีกับเนื้อหา pop/rock ส่วนใหญ่ สำหรับการแยกเสียงร้องระดับ state-of-the-art บนเนื้อหาสตูดิโอ ให้สลับไปใช้เอนจิน HTDemucs (Demucs v4) ที่มากับแพ็กเกจผ่าน --engine htdemucs; ส่วน Open-Unmix ยังคงเป็นฝั่งที่น้ำหนักเบาและนำเข้าแอปได้ของการแลกเปลี่ยนนี้