Strojový překlad · Anglický originál

Streaming Dictation

Parakeet-EOU-120M je malý RNN-T streaming ASR model s explicitní end- of- utterance (EOU) hlava, postavený pro real-time diktace na Apple Silicon Neural Engine. Tato příručka také pokrývá DictateDemo,, macOS menu- bar referenční aplikace, která dráty streaming model spolu se Silero VAD pro handsfree, paste- kdekoli diktace.

Co to je?

Architektura

Tři CoreML modely zabudované na audio kus:

SoučástPopis
EnkodérCache- aware Conformer. Bere 64- frame mel chunk (640 ms) plus šest státních tensorů - pozornost KV cache, depthwise conv cache, a pre_cache Mel Loopback, který předchází minulému zvuku, takže FFT vidí nepřetržitý signál přes hranice úlomků.
DekodérSingle-step LSTM predikční síť. Spotřebuje předchozí non-prázdný token, emituje vkládání plus aktualizované (h, c) stát.
Společné + hlava EOUPojistky enkodér a dekodér výstupy do přihlášení přes vocab + blank + EOU. EOU třída je model je tvrdý signál, že řeč je dokončena.

Proč samostatný EOU token

Plain RNNT vyzařuje slepé náboje během ticha, které dekodér šťastně absorbuje bez signalizace "vyřčení". Dedikovaný EOU hlava umožňuje model udělat tvrdý řez pro odevzdání části do konečného, resetting interpunkce / kapitalizace stavu, a spuštění následných akcí, jako je pasteto- app.

EOU je hlučný v reálném světě

Klávesnice kliknutí, pohyb myší, a pokojové tón během "tiché" pauzy může dělat kloub občas vypustit non-blank token, resetting EOU debuction časovač a zastavení revize. Výroba potrubí párovat kloubu EOU s externím VAD- poháněn forceEndOfUtterance() backstop - viz DictateDemo níže.

Vzor

VzorVelikostHuggingFace
Parakeet-EOU-120M (CoreML INT8)~ 120 MBaufklarer / Parakeet-EOU-120M-CoreML-INT8

Výkonnost

MetrickéHodnota
Váhové paměti~ 120 MB (INT8)
Paměť špičkové inference~ 200 MB
Latence chunku (M- série)& 30 ms compute / 640 MS audio (RTF ~ 0.056)
Částečná latence konec - až - konec~ 340 ms (jeden kus)
Latence odstoupení (cesta VAD)~ 1 je po ukončení řeči
Vypočítejte cílNeural Engine (CoreML)

Rychlý start - přepis šarže

Model streamingu je také v souladu s SpeechRecognitionModel, takže funguje jako drop- in pro každý kód, který má generický STT model:

import ParakeetStreamingASR

let model = try await ParakeetStreamingASRModel.fromPretrained()
let text = try model.transcribeAudio(audioSamples, sampleRate: 16000)

Rychlý start - asynkové streaming

for await partial in model.transcribeStream(audio: samples, sampleRate: 16000) {
    if partial.isFinal { print("FINAL: \(partial.text)") }
    else               { print("... \(partial.text)") }
}

Každý PartialTranscript nosy text, isFinal, confidence, eouDetected (kloub vystřelil vs síla-finalizován), a monotónní segmentIndex.

Dlouhotrvající relace API (mic input)

Pro živé diktace, vytvořit relaci jednou a krmit je kousky, jak přicházejí z mikrofonu. Relace buffers interně a běží kodér, když dostatek vzorků hromadí, takže můžete tlačit libovolné velikosti kuku:

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 force- finalizovat vzor

Když Silero VAD již běží ve vašem potrubí, použijte ho k řízení záložní revize, takže hluk pozadí nemůže zastavit debounce EOU časovač:

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 menu- bar referenční aplikace

DictateDemo je kompletní macOS menu- bar agent postavený na vrcholu streaming relace. Je spuštěn jako pozadí aplikace, přepisy z mikrofonu s živými partiály, auto- se zaváže, že promluví na EOU nebo VAD mlčení, a pasty výsledky do přední aplikace.

cd Examples/DictateDemo
swift build
.build/debug/DictateDemo

Úplná implementace žije v Examples/DictateDemo/DictateDemo/DictateViewModel.swift: Off- hlavní audio dřez se zámkovým chráněným bufferem, 300 ms časovač tik, který ji odvodňuje, Silero VAD se zbytkem vzorku carry- over, a hlídané síly -finalizovat. Examples/DictateDemo/Tests/DictateDemoTests.swift pokrytí multi- utterance, stuck- EOU, a hlučné - tiché scénáře.

Streaming vs dávka Parakeet

Parakeet-EOU-120M (streaming)Parakeet TDT 0.6B (šarže)
PouzdroŽivá diktace, titulování v reálném časePřepis souborů, offline práce
DekodérRNN-T + EOU hlavaToken- and- Trvání převodník
Velikost kuklu640 ms streamingDávka celého souboru
Váhové paměti~ 120 MB500 MB
Hrochový~ 18x real-time~ 32x real-time
Trvání~ 340 ms partialsPouze soubor end- of-
Vyberte si streaming model, když...

... potřebujete části před uživatelem dokončí mluvení. Pro dávkové přepis audio souborů, větší Parakeet TDT 0.6B je rychlejší end- to-end a přesnější. Oba modely sdílejí stejný SentensBike slovní zásoba, takže si můžete vyměnit mezi nimi, aniž by se měnily tokenization.