{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2602-12241","title":"Moonshine v2: Ergodic Streaming Encoder ASR for Latency-Critical Speech Applications","arxiv_id":"2602.12241","date":"2026-02-12","proceeding":null,"authors":["Manjunath Kudlur","Evan King","James Wang","Pete Warden"],"abstract":"Latency-critical speech applications (e.g., live transcription, voice commands, and real-time translation) demand low time-to-first-token (TTFT) and high transcription accuracy, particularly on resource-constrained edge devices. Full-attention Transformer encoders remain a strong accuracy baseline for automatic speech recognition (ASR) because every frame can directly attend to every other frame, which resolves otherwise locally ambiguous acoustics using distant lexical context. However, this global dependency incurs quadratic complexity in sequence length, inducing an inherent \"encode-the-whole-utterance\" latency profile. For streaming use cases, this causes TTFT to grow linearly with utterance length as the encoder must process the entire prefix before any decoder token can be emitted. To better meet the needs of on-device, streaming ASR use cases we introduce Moonshine v2, an ergodic streaming-encoder ASR model that employs sliding-window self-attention to achieve bounded, low-latency inference while preserving strong local context. Our models achieve state of the art word error rates across standard benchmarks, attaining accuracy on-par with models 6x their size while running significantly faster. These results demonstrate that carefully designed local attention is competitive with the accuracy of full attention at a fraction of the size and latency cost, opening new possibilities for interactive speech interfaces on edge devices.","url_abs":"https://arxiv.org/abs/2602.12241","url_pdf":"https://arxiv.org/pdf/2602.12241","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2602.12241","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2602.12241"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/moonshine-ai/moonshine","reach":null},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/SYSTRAN/faster-whisper","reach":null}],"summary":{"unverified":15},"by_repo_kind":{"found_in_text":{"samples":15,"ran":0,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":8,"samples":[{"code_sha256_prefix":"7f192506a5620211","entry":"collect_chunks","repo":"SYSTRAN/faster-whisper","repo_kind":"found_in_text","path":"faster_whisper/vad.py","file_url":"https://github.com/SYSTRAN/faster-whisper/blob/HEAD/faster_whisper/vad.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7f192506a5620211"}},{"code_sha256_prefix":"fab9f7d50af01a81","entry":"crc32c_file","repo":"moonshine-ai/moonshine","repo_kind":"found_in_text","path":"language-bindings/python/src/moonshine_voice/download_file.py","file_url":"https://github.com/moonshine-ai/moonshine/blob/HEAD/language-bindings/python/src/moonshine_voice/download_file.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"fab9f7d50af01a81"}},{"code_sha256_prefix":"bd84f59797ba624b","entry":"download_model","repo":"SYSTRAN/faster-whisper","repo_kind":"found_in_text","path":"faster_whisper/utils.py","file_url":"https://github.com/SYSTRAN/faster-whisper/blob/HEAD/faster_whisper/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bd84f59797ba624b"}},{"code_sha256_prefix":"27a52b01d1242740","entry":"format_timestamp","repo":"SYSTRAN/faster-whisper","repo_kind":"found_in_text","path":"faster_whisper/utils.py","file_url":"https://github.com/SYSTRAN/faster-whisper/blob/HEAD/faster_whisper/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"27a52b01d1242740"}},{"code_sha256_prefix":"d216fc2ce888c4e8","entry":"get_cache_dir","repo":"moonshine-ai/moonshine","repo_kind":"found_in_text","path":"language-bindings/python/src/moonshine_voice/download_file.py","file_url":"https://github.com/moonshine-ai/moonshine/blob/HEAD/language-bindings/python/src/moonshine_voice/download_file.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d216fc2ce888c4e8"}},{"code_sha256_prefix":"df860301447ca3dd","entry":"get_compression_ratio","repo":"SYSTRAN/faster-whisper","repo_kind":"found_in_text","path":"faster_whisper/transcribe.py","file_url":"https://github.com/SYSTRAN/faster-whisper/blob/HEAD/faster_whisper/transcribe.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"df860301447ca3dd"}},{"code_sha256_prefix":"a11a18b0223db329","entry":"get_end","repo":"SYSTRAN/faster-whisper","repo_kind":"found_in_text","path":"faster_whisper/utils.py","file_url":"https://github.com/SYSTRAN/faster-whisper/blob/HEAD/faster_whisper/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a11a18b0223db329"}},{"code_sha256_prefix":"ce80eafaf33fae23","entry":"get_logger","repo":"SYSTRAN/faster-whisper","repo_kind":"found_in_text","path":"benchmark/utils.py","file_url":"https://github.com/SYSTRAN/faster-whisper/blob/HEAD/benchmark/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ce80eafaf33fae23"}},{"code_sha256_prefix":"4dd63075dea3762c","entry":"hash_file","repo":"moonshine-ai/moonshine","repo_kind":"found_in_text","path":"language-bindings/python/src/moonshine_voice/download_file.py","file_url":"https://github.com/moonshine-ai/moonshine/blob/HEAD/language-bindings/python/src/moonshine_voice/download_file.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"4dd63075dea3762c"}},{"code_sha256_prefix":"c0b8d2436a8e0deb","entry":"model_arch_to_string","repo":"moonshine-ai/moonshine","repo_kind":"found_in_text","path":"language-bindings/python/src/moonshine_voice/moonshine_api.py","file_url":"https://github.com/moonshine-ai/moonshine/blob/HEAD/language-bindings/python/src/moonshine_voice/moonshine_api.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c0b8d2436a8e0deb"}},{"code_sha256_prefix":"9a27c4a8b45fda56","entry":"moonshine_options_array","repo":"moonshine-ai/moonshine","repo_kind":"found_in_text","path":"language-bindings/python/src/moonshine_voice/moonshine_api.py","file_url":"https://github.com/moonshine-ai/moonshine/blob/HEAD/language-bindings/python/src/moonshine_voice/moonshine_api.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"9a27c4a8b45fda56"}},{"code_sha256_prefix":"4db3da4d6c68fdfd","entry":"pad_or_trim","repo":"SYSTRAN/faster-whisper","repo_kind":"found_in_text","path":"faster_whisper/audio.py","file_url":"https://github.com/SYSTRAN/faster-whisper/blob/HEAD/faster_whisper/audio.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4db3da4d6c68fdfd"}},{"code_sha256_prefix":"c1f6d9a28c7f13f2","entry":"spoken_form","repo":"moonshine-ai/moonshine","repo_kind":"found_in_text","path":"language-bindings/python/src/moonshine_voice/alphanumeric_listener.py","file_url":"https://github.com/moonshine-ai/moonshine/blob/HEAD/language-bindings/python/src/moonshine_voice/alphanumeric_listener.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"c1f6d9a28c7f13f2"}},{"code_sha256_prefix":"efd406f04b8eba8f","entry":"string_to_model_arch","repo":"moonshine-ai/moonshine","repo_kind":"found_in_text","path":"language-bindings/python/src/moonshine_voice/moonshine_api.py","file_url":"https://github.com/moonshine-ai/moonshine/blob/HEAD/language-bindings/python/src/moonshine_voice/moonshine_api.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"efd406f04b8eba8f"}},{"code_sha256_prefix":"0d4210a3940c2807","entry":"write_cached_embeddings_tsv","repo":"moonshine-ai/moonshine","repo_kind":"found_in_text","path":"language-bindings/python/src/moonshine_voice/cached_embeddings.py","file_url":"https://github.com/moonshine-ai/moonshine/blob/HEAD/language-bindings/python/src/moonshine_voice/cached_embeddings.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"0d4210a3940c2807"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}