תרגום מכונה · המקור באנגלית
המונחים: Dictation
Parakeet-EOU-120M הוא ראש קטן של RN-T הזרמת ASR עם קצה מפורש של קצה קצה-של-מטרה (EOU) שנבנה עבור דירקציה בזמן אמת על Apple Silicon של Neural Engine. DictateDemo, macOS התפריט-bar יישום כי חוטים את מודל הזרמה יחד עם Silero VAD ללא ידיים, פסטה-כל מקום טיהור.
מה זה
- Live Parts - עדכוני טקסט כפי שאתה מדבר -340 ms לאחר כל נתח
- Explicit EOU - מודל מחליט כאשר ביטוי מסתיים, אין כפתור ידני
- VAD-oriented Force-Endize Silero backstop להתחייב לאמירות גם כאשר EOU דוכנים על רעש רקע
- 120 INT8 CoreML - פועל על Neural Engine, משאיר את GPU
- 25 שפות אירופיות - אותה משפחת אוצר מילים בשם Upstream NeMo Parakeet TDT
ארכיטקטורה
3 CoreML מודלים צינורות עבור אודיו נתח:
| המונחים | תיאור תיאור |
|---|---|
| Encoder | Cache-aware Conformer. לוקח נתח אבטיח 64-frame (640 מ"ס) בתוספת שישה פרעונים המדינה - תשומת לב KV cache, עומק conv cache, ו pre_cache |
| Decoder | רשת חיזוי חד-שלב LSTM LSTM. Consume the הקודמת non-blank token, פולטת הטמעת בתוספת מעודכנת (h, c) המדינה. |
| ראשי + EOU Head | Fuss encoder ו decoder פלט לתוך קידודים מעל vocab + blank + EOU.EOU Class הוא אות קשה של המודל כי אמירה מסתיימת. |
מדוע נספח נפרד
RNNT פולט ריקות במהלך שתיקה, אשר הפעוט סופג בשמחה מבלי לציין "הניצחון הסתיים" ראש EOU ייעודי מאפשר לדגם לעשות קיצוץ קשה לביצוע החלקי למצב סופי, תיקון מחדש / הפללה, וגורם להורדת פעולות הזרם כמו פס-to-app.
קליקים מקלדת, תנועת עכברים וטון החדר במהלך הפסקה "שקט" יכול להפוך את המפרקים לעתים קרובות פולטים אסימונים לא-בקנק, למקם מחדש את שעון EOU debounce ולעצור את ההתחייבות. forceEndOfUtterance() חזרה - ראה DictateDemo למטה.
מודל מודל
| מודל מודל | גודל | HuggingFace |
|---|---|---|
| Parakeet-EOU-120M (CoreML INT8) | 120 MB | aufklarer/Parakeet-EOU-120M-CoreML-INT8 |
ביצועי ביצועים
| מסובך | ערך |
|---|---|
| זיכרון משקל | 120 MB (INT8) |
| זיכרון פסגה | 200 MB |
| צ'אנק לנטייה (M-series) | ~30 ms compute / 640 מ"ס של אודיו (RTF ~0.056) |
| שקיפות מקצה-לקצה | 340 ms (אחד נתח) |
| המונחים:VAD Path | 1 אחרי שהדיבור מפסיק |
| יעד משותף | Neural Engine (CoreML) |
התחלה מהירה - הצצה
מודל הזרמה גם תואם SpeechRecognitionModel, כך שהוא פועל כטיפה עבור כל קוד שלוקח מודל STT כללי:
import ParakeetStreamingASR
let model = try await ParakeetStreamingASRModel.fromPretrained()
let text = try model.transcribeAudio(audioSamples, sampleRate: 16000)
התחלה מהירה - Async Flow
for await partial in model.transcribeStream(audio: samples, sampleRate: 16000) {
if partial.isFinal { print("FINAL: \(partial.text)") }
else { print("... \(partial.text)") }
}
כל אחד PartialTranscript נושא text, isFinal, confidence, eouDetected (ג'וינט ירה מול כוח-גמר), ומונוטוני segmentIndex.
ישיבה ארוכה API (הקלט המסחרי)
עבור צלילה חיה, ליצור מפגש פעם להאכיל אותו נתחים כפי שהם מגיעים מן המיקרופון.הפגישה buffers בפנים ומנהל את הקוד כאשר מספיק דגימות מצטברות, כך שתוכל לדחוף גדלים שרירותיים:
let session = try model.createSession()
// each mic chunk:
let partials = try session.pushAudio(float32Chunk16kHz)
for p in partials {
if p.isFinal { commit(p.text) }
else { showPartial(p.text) }
}
// when the stream ends:
let trailing = try session.finalize()
VAD תבנית הפסקת אש
כאשר Silero VAD כבר פועל בצנרת שלך, השתמש בו כדי להניע את פעולת הנפילה כל כך רעש רקע לא יכול לעכב את שעון EOU debounce:
if hasPendingUtterance && !vadSpeechActive && vadSilentChunks >= 30 {
// ~960 ms of sustained silence per Silero
if let forced = session.forceEndOfUtterance() {
commit(forced.text)
}
hasPendingUtterance = false
}
// guardrail: don't double-commit if joint already fired EOU
if partials.contains(where: { $0.isFinal }) {
hasPendingUtterance = false
}
DictateDemo - macOS התפריט-bar App
DictateDemo הוא שלם macOS סוכן התפריט-bar בנוי על גבי הפגישה הסטרימינג.זה פועל כאפליקציית רקע, מפרש מן המיקרופון עם חלקי חיים, דוחות אוטומטית על EOU או VAD
- אפליקציה עם Global
Cmd+Shift+Dחם - Live Parts with צף HUD ו- אודיו רמת אינדיקטור
- VAD-guarded Force-Endize (תבנית הייצור לעיל)
- Paste-to-frontmost-app עם
Cmd+Shift+V - דגם אוטומטי הורד על ההשקה הראשונה (- 120 MB)
cd Examples/DictateDemo
swift build
.build/debug/DictateDemo
הביצוע המלא חי Examples/DictateDemo/DictateDemo/DictateViewModel.swiftאודיו מחוץ ל-main כיור עם buffer מוגן מנעול, a a 300 סמן הזמן מרוקן אותו, Silero VAD עם שמאל-סאmple לשאת-over, ומשמר כוח-סופיזציה.התאמת בדיקות רגרסיה במבחנים Examples/DictateDemo/Tests/DictateDemoTests.swift לכסות תרחישים רב-אוטומטיים, תקועים, ורוחות רועשות.
סטרימינג לעומת אצווה Parakeet
| Parakeet-EOU-120M (streaming) | Parakeet TDT 0.6B (batch) | |
|---|---|---|
| שימוש במקרה | Live dictation, בזמן אמת | המונחים: non-line job |
| Decoder | ראש RN-T + EOU | ken-and-Duration Transducer |
| גודל Chunk | 640 msסטרימינג | הצצה מלאה |
| זיכרון משקל | 120 MB | 500 MB |
| באמצעותput | 18x בזמן אמת | 32x בזמן אמת |
| חוסר יציבות | 340 ms חלקי | סוף-סוף של file רק |
אתה צריך חלקי לפני שהמשתמש מסיים לדבר.לתעתיק של קבצי אודיו, גדול יותר Parakeet TDT 0.6B הוא מהיר יותר מקצה לקצה ומדויק יותר.שני הדגמים חולקים את אותו אוצר המילים של המשפט, כך שתוכל להחליף ביניהם מבלי לשנות את הסימון.