תרגום מכונה · המקור באנגלית

המונחים: Dictation

Parakeet-EOU-120M הוא ראש קטן של RN-T הזרמת ASR עם קצה מפורש של קצה קצה-של-מטרה (EOU) שנבנה עבור דירקציה בזמן אמת על Apple Silicon של Neural Engine. DictateDemo, macOS התפריט-bar יישום כי חוטים את מודל הזרמה יחד עם Silero VAD ללא ידיים, פסטה-כל מקום טיהור.

מה זה

ארכיטקטורה

3 CoreML מודלים צינורות עבור אודיו נתח:

המונחיםתיאור תיאור
EncoderCache-aware Conformer. לוקח נתח אבטיח 64-frame (640 מ"ס) בתוספת שישה פרעונים המדינה - תשומת לב KV cache, עומק conv cache, ו pre_cache
Decoderרשת חיזוי חד-שלב LSTM LSTM. Consume the הקודמת non-blank token, פולטת הטמעת בתוספת מעודכנת (h, c) המדינה.
ראשי + EOU HeadFuss encoder ו decoder פלט לתוך קידודים מעל vocab + blank + EOU.EOU Class הוא אות קשה של המודל כי אמירה מסתיימת.

מדוע נספח נפרד

RNNT פולט ריקות במהלך שתיקה, אשר הפעוט סופג בשמחה מבלי לציין "הניצחון הסתיים" ראש EOU ייעודי מאפשר לדגם לעשות קיצוץ קשה לביצוע החלקי למצב סופי, תיקון מחדש / הפללה, וגורם להורדת פעולות הזרם כמו פס-to-app.

EOU רועש בעולם האמיתי

קליקים מקלדת, תנועת עכברים וטון החדר במהלך הפסקה "שקט" יכול להפוך את המפרקים לעתים קרובות פולטים אסימונים לא-בקנק, למקם מחדש את שעון EOU debounce ולעצור את ההתחייבות. forceEndOfUtterance() חזרה - ראה DictateDemo למטה.

מודל מודל

מודל מודלגודלHuggingFace
Parakeet-EOU-120M (CoreML INT8)120 MBaufklarer/Parakeet-EOU-120M-CoreML-INT8

ביצועי ביצועים

מסובךערך
זיכרון משקל120 MB (INT8)
זיכרון פסגה200 MB
צ'אנק לנטייה (M-series)~30 ms compute / 640 מ"ס של אודיו (RTF ~0.056)
שקיפות מקצה-לקצה340 ms (אחד נתח)
המונחים:VAD Path1 אחרי שהדיבור מפסיק
יעד משותף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

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 + EOUken-and-Duration Transducer
גודל Chunk640 msסטרימינגהצצה מלאה
זיכרון משקל120 MB500 MB
באמצעותput18x בזמן אמת32x בזמן אמת
חוסר יציבות340 ms חלקיסוף-סוף של file רק
בחרו את מודל הסטרימינג כאשר...

אתה צריך חלקי לפני שהמשתמש מסיים לדבר.לתעתיק של קבצי אודיו, גדול יותר Parakeet TDT 0.6B הוא מהיר יותר מקצה לקצה ומדויק יותר.שני הדגמים חולקים את אותו אוצר המילים של המשפט, כך שתוכל להחליף ביניהם מבלי לשנות את הסימון.