תרגום מכונה · המקור באנגלית
שם הסרטון: Music & Audio Production
שלושה מודולים על-ידי device לכסות את המוסיקה ואת הצד ייצור אודיו של speech-swiftהכל רץ באופן מקורי על Apple Silicon באמצעות MLX או או CoreML. MAGNeT יוצר 30-II קליפים מוזיקליים ממדריך טקסט. מקורות הפרדה (Open-Unmix) מחלק מסלול סטריאו לארבעה גזעים (vocals / תופים / בס / אחר). שיפור דיבור (DeepFilterNet3) מסיר רעש רקע מהדיבור בזמן אמת.
| מודול | משימות | חזרה | Output | CLI C |
|---|---|---|---|---|
| MAGNeT | מוסיקה | MLX (INT4 / INT8) | 30 @ 32 kHz | speech compose |
| Open-Unmix | הפרדה | MLX | 4 תוצאות @ 44.1 kHz stereo | speech separate |
| DeepFilterNet3 | דיכוי רעש | CoreML (Neural Engine) | 48 kHz, בזמן אמת | speech denoise |
MAGNeT - טקסט-to-מוסיקה דור
MLX Swift נמל של Meta's MAGNeT (דור אודיו מאויש יחיד עם יחיד שאינו אוטומטי Transformer) יוצר 30 s קליפים של 32 kHz מוזיקה מונו מאנגלית ללא מטרות רווח - "סלע מאושר", "גירטפנימי עם סינתזה עם ® עם תוצאות משוחררות או ממריצים עבור תוצאות טקסט עשירות".
ארכיטקטורה
שלושה מרכיבים עמוסים, שהורידו בקריאה ראשונה:
| המונחים | תפקידים | מקור Source |
|---|---|---|
| MAGNeT decoder LM | מהפך בלתי-אוטומטי מסיכה מעל 4 ספרי קוד קידוד. 24 שכבות (קטן, 300M) או 48 (Medium, 1.5B) Quantised Q/K/V/out Projections + FFN ליניאריs (MLX-affine, קבוצה 64). | aufklarer/MAGNeT-{Small,Medium}-30secs-MLX-{4,8}bit |
| T5-base טקסט encoder | 110M-parameter encoder עבור מיזוג טקסט. FP32 (encoder-Only Path; no dacoder, no LM head). | t5-base |
| Encodec 32 kHz decoder | SeaNet decoderConv1d / ConvTranspose1d • RenetBlock / 2-layer LSTM + 4ארכיון תגיות: Euclidean RVQ. Maps the LM's disrete to a 32 kHz Waveform | mlx-community/encodec-32khz-float32 |
מקבילה מסיכה
בניגוד לאחות פרוגרסיבית של MusicGen, MAGNeT רץ 50 עובר סך מוחלט (הפיצול [20, 10, 10, 10] על פני 4 ספרי קוד) עם remasking scheduled remasking, הדרכה ללא מעמד annealing, וחלונות תשומת לב מקומית של הבמה. 0 יש כוונות עצמיות מלאות; שלבים 1–3 שימוש מקומי |q − k| ≤ 5 החלון, כי ספרי קוד גבוהים יותר רק לחדד פרטים.
משתנים
| משתנה | Params | LM On-disk | שיא RSS | קיר (M-series, 30s) | RTF |
|---|---|---|---|---|---|
small-int4 | 300 מיליון | 287 MB | 1.4 GB | 10.8 | 0.36× |
small-int8 | 300 מיליון | 425 MB | 1.5 GB | 11 | 0.37× |
medium-int4 | 1.5B | 1.36 GB | 2.2 GB | 36 | 1.20× |
medium-int8 | 1.5B | 2.10 GB | - 3.0 GB | 36 | 1.20× |
RTF מתחת ל- 1.0= מהר יותר מאשר זמן אמיתי. Quantisation בקושי נע בין-שעון-קיר - תשומת הלב שולטת, לא בתחזיות ליניאריות – כך שהניצחון המעשי מ-INT4 הוא זיכרון ולא עצלות.
התחלה מהירה
import MAGNeTMusicGen
let model = try await MAGNeTMusicGen.fromPretrained(variant: .smallInt4)
let pcm = model.generate(text: "energetic upbeat rock anthem with electric guitar riffs, driving drums, bass groove")
// pcm: [Float] length 960_000 (30 s × 32 kHz mono)
try WAVWriter.write(samples: pcm, sampleRate: 32_000,
to: URL(fileURLWithPath: "out.wav"))
CLI C
# Default: small-int4 (~10 s on M-series for 30 s of audio)
speech compose "happy rock" -o happy_rock.wav
# Larger model — better prompt following, ~3.5× slower
speech compose "lo-fi hip hop with mellow piano and warm vinyl crackle" \
--variant medium-int4 -o lofi.wav
# Reproducible
speech compose "energetic EDM with synth lead" --seed 42 -o edm.wav
דגלים: --variant {small,medium}-{int4,int8}, --temperature (ז'ק, ברירת מחדל 3.0) --top-p (default 0.9) --cfg-max / --cfg-min 10.0 / 1.0 --steps "20,10,10,10" (מספר קודים) --seed.
תגים קצרים כמו "happy rock" עבודה אבל להרגיש רזה. - הודעות תיאוריות שמזכירות מכשירים + קצב + מצב רוח שיפור קוהרנטיות - באיכות שלנו גורף את המהירות העשירה יותר נתן שיעור מעבר אפס גבוה יותר (0.116 לעומת 0.093, כלומר פרטים גבוהים יותר) ו- אפס קלפטון.
"happy rock""energetic upbeat rock anthem with electric guitar riffs, driving drums, bass groove"- עשיר יותר, בדרך כלל טוב יותר
בונדלס & רישיון
כל ארבעת חבילות MLX נגזרות פייסבוק / magnet-small-30secs ו פייסבוק / magnet-medium-30secs רישיון של Meta: CC-BY-NC 4.0 - שימוש לא מסחרי בלבדאודיו שנוצר נושא את אותה הגבלה.
מקור: Open-Unmix (4גזעים)
Open-Unmix HQ / UMX-L MLX מחלק תערובת סטריאו לארבעה גזעים קולות, תופים, בס, מכשירים אחרים - באמצעות צופים של BLSTM ו- Wiener-EM רב-ערוצי, כולם רצים מקצה לקצה. MLX דרך העולם האמיתי של STFT RTF ~0.031 (32× מהר יותר מאשר זמן אמיתי) על M-Series 30 s של אודיו.
# Split mix.wav into vocals/drums/bass/other.wav next to it
speech separate mix.wav
# Or keep stems together
speech separate mix.wav --output stems/
import SourceSeparation
let separator = try await SourceSeparator.fromPretrained()
let stems = separator.separate(audio: stereoSamples, sampleRate: 44_100)
// stems[.vocals], stems[.drums], stems[.bass], stems[.other] — each [[Float]] (stereo)
אדריכלות מלאה, כוונון והערות ציון של Source הפרדת מדריך.
שיפור דיבור - DeepFilterNet3
DeepFilterNet3 על Neural Engine (CoreML) מסיר רעש רקע מ-48 k דיבור בזמן אמת עם מודל 2.1M-paraHz - קטן מספיק כדי לרוץ לצד ASR
speech denoise noisy.wav -o clean.wav
import SpeechEnhancement
let enhancer = try await SpeechEnhancer.fromPretrained()
let clean = try enhancer.enhance(audio: noisy, sampleRate: 48_000)
תצורה מלאה של Speech Enhancement Guide.
לבחור את הכלי הנכון
| אתה רוצה... | שימוש בשימוש |
|---|---|
| יצירת מוזיקה מטקסט | MAGNeT (speech compose |
| משוך קולות או תופים מתוך מסלול קיים | Open-Unmix (speech separate) |
| נקו את הדיבור הרעוע לפני הליל | DeepFilterNet3 (speech denoise) |
| המרת טקסט לנאום (חשבון סינתזה) | VoxCPM2 או Qwen3-TTS |