תרגום מכונה · המקור באנגלית
יישור מאולץ
MLX ו CoreML השתמש באותם תכונות קלט בסגנון Whisper: 128 Slaney-normalized mel bins מ- 400 נקודות STFT בדיוק ב 16 k, עם a 160-sample הופ וחלון האן תקופתי.
Qwen3-ForcedAligner מספק היערכות לדרגה מילה עבור אודיו.זה מבצע יחיד לא-אוטומטי קדימה לעבור כדי להתאים כל מילה בתעתיק למצבו המדויק בגלפורמת אודיו.
איך זה עובד
המקודד מגדיר כל התחלה וסיום של מילה.תיקון משתמש בהתמדה ארוכה יותר (LIS עם ערכים שווים מותר), שמירה על גבולות משותפים ובחירת העוגנים המוקדמים ביותר כאשר לשרשראות יש אורך שווה. MLX לא כולל תחזיות מעבר לתקופת השמע מהעוגן שלה.
| רכוש | ערך |
|---|---|
| שיטת Alignment | סיווג Timestamp עם תיקון לא מבוטל |
| תזמון ההחלטה | 80 ms |
| כיתות בחוץ | 5000 |
| המונחים: mode | לא-אוטומטי (מעבר קדימה) |
MLX ו CoreML זמני ריצה מציבים שני חריצים של פעמים לאחר כל מילה: word<timestamp><timestamp> הראשון מנבא את ההתחלה של המילה, ואת השני שלה לפני התחזיות על המילים קודמות.
CLI Usage
אם לא מסופקת תמליל, השמע מתפרסם באופן אוטומטי באמצעות Qwen3-ASR:
.build/release/speech align recording.wav
לספק תמליל ידוע כדי לדלג על תמליל אוטומטי:
.build/release/speech align recording.wav --text "The quick brown fox jumps over the lazy dog"
אפשרויות אפשרויות
# Specify transcript text directly
.build/release/speech align recording.wav --text "known transcript"
# Choose ASR model for auto-transcription step
.build/release/speech align recording.wav --model 1.7b
# Specify aligner model variant
.build/release/speech align recording.wav --aligner-model default
# Set language
.build/release/speech align recording.wav --language en
תמיכה שפה
מעבר --language תואם את השפה של אודיו.המודל מאומן באופן רשמי על שפות 11 (en, zh, Ja, ko, es, fr, de, ru, pt, ar); preprocessor גם מקטע את המורמות היפניות, מילים קוריאניות, סינית per-character, ותאילנד / Lao / Khmer / Bure / Burme / Bure/ly Native באמצעות Apples דרך Apples של אפל. NLTokenizerסימני שילוב (Devanagari matras, נדרים תאילנדיים וכו ') נשמרים כך מילים כמו מילים כמו. नमस्ते ו สวัสดี תישארו שלמים.
מודלים
מספר גרסאות מודל זמינות, גודל המסחר לדיוק:
| משתנה | מודל זיהוי | גודל |
|---|---|---|
| MLX 4bit (default) | aufklarer/Qwen3-ForcedAligner-0.6B-4bit | 979 MB |
| MLX 8 סיביות | aufklarer/Qwen3-ForcedAligner-0.6B-8bit | 1.3 GB |
| MLX bf16 | aufklarer/Qwen3-ForcedAligner-0.6B-bf16 | 1.8 GB |
| CoreML INT4 | aufklarer/Qwen3-ForcedAligner-0.6B-CoreML-INT4 | 662 MB |
| CoreML INT8 | aufklarer/Qwen3-ForcedAligner-0.6B-CoreML-INT8 | 1.1 GB |
CoreML מתווה ברירת מחדל .cpuAndNeuralEngine עבור ה- encoder and .cpuAndGPU עבור טקסט decoder. SPEECH_COREML_COMPUTE_UNITS חבילות ה-coder המפורסמות יכולות לייצר דגימות שגויות על Neural Engine או כל פעמוני אפס עם cpuOnly.
Explicit cpuOnly עומסים של דגמי INT8 ו- FP16 בוחרים text_decoder_cpu_v1, שהנרמליזציה של RMS משתמשת Float32 עם המשקלים המקוריים של למד. Run One online לטעון להורדה החבילה הזו; שפם לא מקוון ישן עדיין מכיל את קוד המורשת GPU ממשיך להשתמש בעומס מקוון אחד כדי להוריד את החבילה; מטמון לא מקוון ישן מכיל עדיין את הקודר. text_decoderהתיקון INT8 תואם את כל גבולות ההתייחסות 22 על macOS 15.8.2; אימות ה-iPhone הפיזי נשאר נפרד.
בחר גרסה עם --aligner-model:
.build/release/speech align recording.wav --aligner-model aufklarer/Qwen3-ForcedAligner-0.6B-8bit
פורמט Output
היישר מפיץ קו אחד למילה עם התחלה וסיום פעמים בשניות:
[0.24 - 0.48] The
[0.48 - 0.72] quick
[0.72 - 1.04] brown
[1.04 - 1.36] fox
[1.36 - 1.68] jumps
[1.68 - 1.92] over
[1.92 - 2.08] the
[2.08 - 2.40] lazy
[2.40 - 2.80] dog
כל זוג פעמים דגימה מציין את תחילתו וסיומו של המילה בסאונד, ברזולוציה של 80 מ"מ.
טיפול לטווח ארוך
ראש המחלקה יכול לענות עד 400 שניות בעיקרון (5000 כיתות × 80 ms), אבל על המשלוח Qwen3-ForcedAligner-0.6B המודל מאומנים עד כדי 270 שניותבעבר הנקודה, המודל פולט מקרים רועשים והתמוטטות של LIS לאחר עיבוד כל מילה על אותו פעמים.
CLI מטפל בזה באופן אוטומטי: אודיו ארוך מוצף בנקודת השכור ומהדהד מחדש.You תראה הודעה חד-ליין אחת כאשר חתיכה בעיטות:
Audio 306.2s saturated after word 690 (272.6s); chunking remaining 33.6s (pass 2)
הגדר ALIGN_DEBUG=1 כדי להשליך את הגלם בהשוואה לזמנים מתוקנים בעת חקירה של תפוקות שגויות.
מגבלה ידועה: מוביל לא-סכי
כאשר אודיו מתחיל עם אי-שטיפה (מוסיקה אינטרו, שתיקה ארוכה), המודל לעתים קרובות בולם את המילה הראשונה ליד המילה הראשונה. 0 שניות כי למסווג אין מושג על "שטיפה עדיין לא התחילה": טרים הלא-שטיפה המובילה לפני היישר, או לרוץ. VAD סע עם Silero כדי למצוא את הדיבור האמיתי מתחיל.
כשאין --text מסופק, היישר הראשון פועל מעבר Qwen3-ASR Z מלא, ואז מיישר את הטקסט וכתוצאה מכך.זה אומר את הראשון לרוץ עומס הן דגם ASR ואת מודל היישר. --text מדלג על צעד ASR ורק נטען את היישר.