Automatic speech recognition (ASR) converts a speech waveform into text. A production transcription system also has to decide when speech begins and ends, identify the language, place timestamps, separate speakers, restore punctuation, adapt to domain vocabulary, and deliver results within a latency and compute budget.
No model dominates every operating point. An offline encoder-decoder can use an entire recording for context and maximize throughput through batching, while a streaming transducer can emit partial text after each short audio chunk. A multilingual foundation model can handle unfamiliar content without task-specific training, while a compact language-specific model can be faster and more accurate on its target domain.
The field’s history is therefore a sequence of changing abstractions:
Scope of a Transcription System #
ASR is one stage in a larger audio pipeline:
- Voice activity detection (VAD) finds regions containing speech and prevents silence from consuming model time.
- Endpointing decides when a live utterance is complete. Aggressive endpointing improves responsiveness but can cut off a speaker after a pause.
- Inverse text normalization (ITN) converts forms such as “twenty twenty-six” into
2026, subject to locale and application rules. - Forced alignment maps a known transcript back to time intervals in the audio.
- Speaker diarization determines who spoke when. Speaker identification additionally maps an anonymous speaker cluster to an enrolled identity.
- Speech translation changes both language and modality, while audio-language models can answer questions about non-speech events. Neither task is identical to literal transcription.
Pipeline boundaries matter because a low word error rate does not imply accurate speaker labels or timestamps. Overlapping speech can also require speech separation before either recognition or diarization works reliably.
Historical Timeline #
| Period | Progress | Engineering Significance |
|---|---|---|
| 1950s–1970s | Template matching and dynamic time warping | Recognized small vocabularies by aligning an utterance against stored patterns; speaker and vocabulary changes were difficult. |
| 1970s–1980s | Hidden Markov models (HMMs) | Represented temporal variation probabilistically instead of matching one fixed template. |
| 1990s–2000s | GMM-HMM, context-dependent phones, n-gram language models, and weighted finite-state transducers | Established the modular large-vocabulary recognizer used in research and commercial systems. |
| 2006 | Connectionist Temporal Classification (CTC) | Allowed sequence training from audio and text without frame-level labels. |
| 2011–2012 | Kaldi and DNN acoustic models | Made reproducible WFST-based recipes available and replaced GMM emission models with stronger neural networks. |
| 2012 | RNN-Transducer (RNN-T) | Combined monotonic alignment with output-token history, providing an end-to-end path to streaming recognition. |
| 2014–2016 | Attention encoder-decoder and Listen, Attend and Spell (LAS) | Learned direct speech-to-text mappings with a strong autoregressive decoder, but full attention complicated streaming. |
| 2017 | Transformer | Enabled parallel training and long-range context through self-attention. |
| 2019–2021 | wav2vec 2.0, HuBERT, WavLM, and XLS-R | Used unlabeled audio to learn transferable speech representations and reduced dependence on transcribed data. |
| 2020 | Conformer | Combined self-attention for global context with convolution for local acoustic structure. |
| 2022 | Whisper | Demonstrated robust general-purpose recognition through 680,000 hours of weakly supervised multilingual audio. |
| 2023 | MMS and SeamlessM4T | Extended nominal language coverage beyond 1,100 ASR languages and unified transcription with speech translation. |
| 2023–2024 | FastConformer, cache-aware Conformer, and Token-and-Duration Transducer (TDT) | Reduced redundant computation and improved long-form or streaming efficiency. |
| 2024–2026 | Edge ASR, promptable transcription, and speech-language models | Added model-integrated endpointing, domain prompts, multimodal reasoning, controllable streaming latency, and full-duplex voice interaction. |
The dates identify influential publications and releases rather than clean era boundaries. Hybrid HMM systems remain deployed, CTC remains important for alignment and efficient decoding, and current systems often combine several generations of ideas.
The Modular Statistical Recognizer #
A classical recognizer searches for the word sequence \(W\) that best explains acoustic observations \(X\):
\[ \hat{W}=\arg\max_W P(X \mid W)P(W). \]The acoustic model scores how likely the signal is for a candidate word sequence, while the language model scores the sequence itself. A pronunciation lexicon maps words to phones, HMMs represent progress through phone states, and a decoder searches the composed graph. Gaussian mixture models (GMMs) historically scored acoustic feature frames such as mel-frequency cepstral coefficients.
The design has important strengths:
- lexicons can add names or technical terms without retraining every component;
- grammar constraints can make command recognition deterministic;
- WFST decoding integrates acoustic, pronunciation, and n-gram costs efficiently; and
- HMM state progression supports bounded-memory streaming.
Complexity is the corresponding cost. Training needs alignments, context-dependent phone states, pronunciation resources, several optimization stages, and decoder-graph construction. New languages require linguistic resources, while a pipeline assembled from separately optimized components can accumulate interface errors.
Kaldi remains the defining open toolkit for the architecture. Custom grammars, forced alignment, legacy models, and research on explicit decoders still justify Kaldi, although starting a general-purpose recognizer from scratch is more work than adapting a pretrained end-to-end model.
Neural Acoustic Models and End-to-End Objectives #
DNN-HMM Hybrids #
DNN-HMM recognizers retain HMM temporal structure and WFST decoding but replace GMM scores with neural-network predictions over HMM states. Hinton and collaborators documented substantial gains because deep networks model correlated acoustic features and speaker variation more effectively than mixtures of local Gaussian densities.
Hybrid systems offered a practical migration path: established lexicons and language models remained useful, while acoustic quality improved. However, frame alignments and the modular training stack remained necessary.
Connectionist Temporal Classification #
CTC adds a blank label and sums over every monotonic alignment that collapses to the target transcript. Training therefore requires paired audio and text but not the exact time of each character or subword.
Advantages follow from the monotonic formulation:
- encoder frames can be computed in parallel;
- greedy decoding is inexpensive;
- causal or chunked encoders can stream;
- frame-to-token paths support timestamps; and
- CTC works well as an auxiliary alignment loss in larger systems.
CTC assumes that output labels are conditionally independent given the encoder representation. An external language model, prefix beam search, or second-pass decoder is often added because the acoustic encoder alone does not model rich output dependencies.
Attention Encoder-Decoders #
An attention encoder-decoder maps acoustic frames to a latent sequence and generates text autoregressively. LAS established the approach for speech, and Whisper later scaled a Transformer version with multilingual and multitask training.
The decoder conditions each new token on previous tokens and selected encoder states. Rich context improves punctuation, spelling, and phrase-level disambiguation without an explicit pronunciation lexicon. Task and language tokens can also select transcription, translation, or language identification.
Autoregressive decoding is sequential, and unrestricted attention can depend on future audio. Long recordings therefore need windowing, chunking, or specialized attention. A powerful output-language model can also emit plausible words when the acoustic evidence is silence, noise, or music. Whisper’s model card warns about hallucinated and repetitive text, uneven performance across languages and accents, and the absence of robust native diarization.
Transducers #
RNN-T adds a prediction network over prior output labels to a streaming acoustic encoder. A joint network decides whether to emit a token or a blank that advances audio time. Recognition can proceed from an audio prefix because alignment remains monotonic.
RNN-T provides a strong balance for voice interfaces:
- token history gives more linguistic context than plain CTC;
- cached encoder state bounds repeated work;
- partial text can arrive before the utterance ends; and
- no separate pronunciation lexicon is required.
Training and decoding are more complex than CTC, and blank/token alignment can create repeated-token errors. TDT predicts token durations so the decoder can skip several frames at once, while FastEmit encourages earlier emissions.
Transformers, Conformers, and Cached Streaming #
Transformers replaced recurrence with self-attention, improving training parallelism and long-range context. Full attention over \(n\) audio positions has \(O(n^2)\) pairwise cost, so unrestricted Transformers become expensive for long recordings.
Conformer blocks combine:
- feed-forward transformations;
- multi-head self-attention for broad context; and
- convolution for local phonetic patterns.
The combination is effective because speech contains both short acoustic events and dependencies spanning words or sentences. FastConformer reduces the sequence length and attention cost, while cache-aware variants retain keys, values, and convolution state from earlier chunks.
Streaming models limit future context to a lookahead window. More right context can improve recognition because later audio resolves ambiguous phonemes and punctuation, but final output arrives later. NVIDIA’s Nemotron 3.5 ASR model card illustrates the tradeoff with configurable chunks from 80 ms to 1.12 seconds. Its reported average WER across 19 transcription-ready locales falls from 10.38% at 80 ms to 8.84% at 1.12 seconds, under the card’s evaluation conditions. The figures form a latency-quality curve, not a universal benchmark against unrelated systems.
Self-Supervision and Foundation Models #
Large transcribed corpora are expensive because accurate labels require human review. Self-supervised learning instead constructs prediction targets from unlabeled audio.
- wav2vec 2.0 masks latent speech spans and contrasts the correct quantized representation against distractors. Fine-tuning then adds a CTC recognizer.
- HuBERT clusters acoustic features into hidden units and predicts masked cluster labels.
- WavLM adds denoising and overlapping-speech objectives, producing representations useful for ASR, speaker verification, separation, and diarization.
- XLS-R scales cross-lingual pretraining to 436,000 hours in 128 languages.
Self-supervision reduces the amount of labeled speech needed for adaptation, but a pretrained encoder is not a complete transcription product. Tokenization, decoding, fine-tuning, endpointing, text normalization, and language-specific evaluation remain necessary.
Weak supervision takes a different path. Whisper trains directly on large quantities of audio paired with Internet-derived transcripts, accepting noisy labels in exchange for scale and diversity. Robustness improved across domains, while label noise and autoregressive generation introduced recognizable failure modes.
Multilingual scale also expanded:
- MMS uses language adapters with wav2vec-style encoders and lists ASR checkpoints for more than 1,100 languages.
- SeamlessM4T unifies ASR with speech-to-text, text-to-text, text-to-speech, and speech-to-speech translation.
- speech-language models such as Qwen2-Audio accept audio plus text instructions for transcription and audio understanding.
- Canary-Qwen joins a FastConformer speech encoder to a language model, allowing recognition and transcript post-processing in one model family.
Nominal language count is not a quality guarantee. Training hours, writing systems, accents, domain coverage, and tokenization differ by language. MMS also uses CC BY-NC 4.0 weights, while Whisper’s code and weights use MIT; deployment decisions must therefore examine model licenses separately from repository code licenses.
Measuring Quality, Speed, and Latency #
Recognition Quality #
Word error rate (WER) is:
\[ \operatorname{WER}=\frac{S+D+I}{N}, \]where \(S\), \(D\), and \(I\) are substitutions, deletions, and insertions, and \(N\) is the number of reference words. Character error rate (CER) is more informative where word segmentation is not explicit or where character-level correctness matters.
WER comparisons are valid only when evaluation conditions match. Text normalization can decide whether 2026, twenty twenty-six, and twenty twenty six are equivalent. Punctuation, casing, dataset domain, language, decoding method, VAD, and speaker overlap also change the result.
Additional metrics cover different requirements:
- diarization error rate (DER) measures speaker segmentation and assignment;
- time to first token measures initial responsiveness;
- stable-partial latency measures when displayed words stop changing;
- endpointing delay measures the wait after the speaker finishes;
- final latency includes post-processing and transport;
- real-time factor and RTFx measure offline processing rate; and
- concurrent streams measure serving capacity under a latency objective.
For processing time \(T_p\) and audio duration \(T_a\):
\[ \operatorname{RTFx}=\frac{T_a}{T_p}. \]An RTFx of 20 means that one worker processes 20 seconds of audio per second under the measured configuration. RTFx does not reveal first-token latency because batching can increase throughput while delaying each individual result.
Reported Speed-Quality Examples #
| System and Published Test | Speed or Resource Result | Quality and Interpretation |
|---|---|---|
| Whisper model family on an A100 | Relative speed ranges from 1x for large to about 10x for tiny; turbo is listed near 8x. | Smaller checkpoints trade recognition quality for speed and memory. Relative figures apply within the documented Whisper setup. |
| faster-whisper on 13 minutes of audio and an RTX 3070 Ti | large-v2 FP16 takes 63 seconds; INT8 takes 59 seconds; batched INT8 takes 16 seconds in the published table. | Runtime, precision, and batching alter throughput even when model weights are related. Batching improves archive throughput, not interactive latency. |
| whisper.cpp | Listed memory ranges from about 273 MB for tiny to 3.9 GB for large; Core ML can accelerate the encoder on Apple Silicon. | Quantized native runtimes enable offline deployment, while recognition limitations still follow the selected Whisper checkpoint. |
| FunASR benchmark on 184 long-form Chinese files and an H100 | SenseVoice-Small reports 169.6 RTFx versus 13.4 RTFx for Whisper large-v3. | Reported CER is 7.81% versus 20.02%. The result supports a Chinese long-form deployment choice, not a language-independent ranking. |
| Parakeet-TDT 0.6B v3 | A 600M FastConformer-TDT checkpoint with long-form decoding and timestamps. | Its card reports 6.34% average WER on listed Open ASR Leaderboard datasets across 25 European languages. |
| Moonshine Voice comparison | Medium Streaming reports final-transcript latency from 59 ms on a MacBook Pro to 802 ms on a Raspberry Pi 5. | The vendor reports 6.65% average WER for the tested model. Device, streaming policy, and benchmark ownership limit cross-system conclusions. |
Benchmark tables should always record hardware, precision, batch size, audio length, model revision, language, VAD, decoding parameters, and pipeline scope. Omitting those fields turns a measurement into an ambiguous claim.
Offline and Streaming Designs #
Offline Transcription #
Offline systems can examine future audio, batch recordings, use bidirectional encoders, run beam search, and apply second-pass language models or alignment. Archives, subtitles, legal review, and media indexing benefit from throughput and final accuracy more than immediate partial results.
Batching improves accelerator utilization because many encoder windows execute together. Quantization reduces memory bandwidth and can improve CPU or GPU throughput. VAD avoids encoding long silent regions. However, a batch-oriented service can consume significant memory and delay short files behind long jobs, so schedulers need duration-aware queues and bounded batches.
Streaming Transcription #
Streaming systems process fixed or adaptive chunks and preserve state between calls. A complete live path includes:
capture -> resample -> VAD -> encoder cache -> decoder -> partial text
-> endpointing -> finalization -> application responseThe system must manage more than model inference:
- input buffers need backpressure because audio arrives at a fixed wall-clock rate;
- partial hypotheses need stability rules because revisions disrupt captions and downstream agents;
- reconnects need explicit state recovery;
- long sessions need bounded caches; and
- endpointing must distinguish a pause from the end of a turn.
Whisper can be adapted to streaming by repeatedly transcribing overlapping windows and confirming stable prefixes. WhisperStreaming reports about 3.3 seconds of latency in its demonstrated configuration, which is far above the chunk latency of a native streaming transducer. Reprocessing also increases compute. Native RNN-T, TDT, or cache-aware Conformer models are therefore better starting points when subsecond interaction is a primary requirement.
Open-Source Software and Models #
Open source spans complete recognizers, optimized runtimes, research frameworks, and pipeline components. Repository licenses do not automatically cover every downloadable checkpoint.
| Project | Role and Strengths | Constraints |
|---|---|---|
| Whisper | Multilingual general-purpose ASR and English translation; several model sizes; MIT license | Offline 30-second-window design; uneven low-resource quality; no native robust diarization |
| faster-whisper | CTranslate2 runtime with batching, INT8, VAD, and word timestamps | CUDA and cuDNN compatibility must match the deployment |
| whisper.cpp | C/C++ runtime for CPU, Metal, Core ML, CUDA, Vulkan, OpenVINO, and WebAssembly | Platform acceleration and quantization need target-device testing |
| WhisperX | faster-whisper plus wav2vec2 alignment, VAD, and pyannote diarization | Extra models increase compute; overlap and speaker assignment remain imperfect |
| Kaldi | WFST decoders, lexicons, classical and neural recipes, forced alignment | Powerful but complex; not a turnkey foundation-model runtime |
| Vosk | Small offline, streaming Kaldi-derived models with mobile and server bindings | Compact models sacrifice general-domain quality relative to larger current models |
| SpeechBrain | PyTorch toolkit for ASR, enhancement, separation, speaker recognition, and diarization | A framework and recipe collection rather than one production recognizer |
| ESPnet | CTC/attention, RNN-T, Transformer, Conformer, streaming, and diarization recipes | Training and deployment require substantial speech-ML expertise |
| NVIDIA NeMo Speech | Training and deployment for FastConformer, RNN-T, Parakeet, Canary, and Nemotron | GPU-oriented stack; each checkpoint has its own license and language scope |
| Moonshine | Edge-focused ONNX/C++ models for Python, WebAssembly, iOS, Android, and Raspberry Pi | Current checkpoints are language-specific rather than one universal model |
| FunASR | Offline and streaming ASR, VAD, punctuation, speaker pipelines, ONNX/GGUF paths, and serving | Checkpoint licenses and timestamp capabilities differ across model families |
| SenseVoice | Non-autoregressive ASR plus language, emotion, and audio-event classification | Released checkpoint covers five languages and does not itself perform diarization |
| sherpa-onnx | Cross-platform ONNX runtime for streaming and offline ASR, VAD, diarization, TTS, and speaker ID | Heterogeneous model zoo requires per-model validation |
| WeNet | Production-oriented Conformer, transducer, and Paraformer training and runtime | Ecosystem concentration is strongest for Chinese and streaming deployment |
| MMS | Adapter-based coverage across more than 1,100 listed languages | CC BY-NC weights; one adapter per language adds operational complexity |
| Seamless Communication | Multilingual ASR and speech/text translation, including streaming variants | Large models, complex dependencies, and non-commercial model licenses |
| pyannote.audio | Local speaker-diarization pipeline and pretrained speaker models | Diarization is separate from transcription; named speakers require enrollment data |
Practical Open-Source Compositions #
Different requirements imply different compositions:
- Private desktop transcription:
whisper.cppprovides a native local runtime, whilefaster-whisperfavors Python applications and accelerator throughput. - Meetings and interviews: WhisperX combines transcription, VAD, forced alignment, and pyannote diarization. Every component must be evaluated on overlap and microphone conditions.
- Embedded commands: Vosk or a small sherpa-onnx model can provide bounded-memory streaming; a constrained grammar may outperform a general foundation model for a fixed command set.
- Multilingual archives: Whisper provides broad general coverage, MMS targets long-tail languages, and Seamless adds translation. License and per-language evaluation determine feasibility.
- High-throughput GPU service: NeMo models, faster-whisper, or FunASR expose batching and optimized inference paths.
- Speech research and adaptation: ESPnet, SpeechBrain, Kaldi, WeNet, and NeMo provide training recipes rather than only fixed inference APIs.
Bleeding-Edge Directions #
Controllable-Latency Streaming #
Cache-aware models now expose the latency-quality operating point rather than fixing it at training time. Nemotron 3.5 ASR can select chunk sizes from 80 ms to 1.12 seconds, and Moonshine v2 uses sliding-window attention and streaming caches for edge devices. Dynamic systems can choose a mode according to device load, network conditions, or conversational state.
Model-integrated turn detection is another direction. Deepgram Flux couples transcription with end-of-turn prediction and exposes thresholds that trade early responses against premature turn completion. Integrated endpointing can use lexical and acoustic context, while separate VAD remains simpler to inspect and replace.
Promptable and Context-Aware Recognition #
Speech APIs increasingly accept key terms, phrase lists, spelling context, or natural-language prompts. Prompting can improve rare names and domain terminology because the decoder receives application context. Prompt injection through spoken content, over-biasing toward supplied terms, and unpredictable normalization require tests before prompts control downstream automation.
AssemblyAI’s Universal-3 Pro describes prompts for domain vocabulary, disfluencies, audio tags, speaker roles, and code-switching. Google Chirp 3, Azure Speech, Deepgram Nova-3, and current OpenAI transcription APIs expose different forms of adaptation or context. Interfaces and language support change faster than open model architectures, so application code should isolate provider-specific options.
Speech Encoders Joined to Language Models #
Canary-Qwen and Qwen2-Audio represent a broader pattern: a speech encoder maps audio into representations consumed by a language model. One system can then transcribe, normalize, summarize, translate, or answer questions about audio.
Unified models reduce pipeline handoffs and can use broad textual knowledge. They also make literalness harder to guarantee because an instruction-following decoder may paraphrase or infer instead of preserving every spoken word. Regulated transcripts, captions, and evidence processing should retain the audio, raw transcript, timestamps, model revision, and transformation history.
Full-Duplex Speech Interaction #
Voice agents are moving from a serial pipeline—ASR, language model, then text-to-speech—to models that listen and speak concurrently. Full-duplex interaction can handle interruptions and backchannels more naturally, but transcription becomes one internal signal rather than the sole interface. Evaluation must add interruption handling, turn-taking, semantic latency, and recovery from false starts to WER.
Managed Services #
Managed APIs reduce model-serving work and can provide diarization, redaction, phrase adaptation, and regional deployment:
- OpenAI transcription includes Whisper and newer transcription or diarization models with model-dependent streaming and response formats.
- Google Cloud Chirp 3 supports batch, synchronous, and streaming recognition, with language-dependent adaptation and diarization features.
- Azure Speech to Text offers real-time, fast synchronous, batch, and LLM-based transcription paths.
- Deepgram separates general-purpose Nova models from Flux for conversational streaming and endpointing.
- AssemblyAI Universal-3 Pro emphasizes promptable transcription and code-switching.
Cloud selection must include retention policy, training-data policy, encryption, region availability, model-version pinning, outage behavior, and the cost of sending long silent or multi-channel recordings. Local VAD can reduce bandwidth, but aggressive filtering can permanently discard quiet speech.
Selecting an Architecture #
| Requirement | Strong Starting Point | Reason |
|---|---|---|
| Highest offline quality on long recordings | Bidirectional or full-context encoder-decoder with batching and second-pass alignment | Future context and batch utilization matter more than partial latency |
| Live captions or voice agents | RNN-T, TDT, or cache-aware Conformer | Monotonic decoding and cached chunks provide stable low-latency output |
| Offline desktop or mobile privacy | whisper.cpp, Moonshine, or sherpa-onnx | Native and quantized runtimes keep audio on the device |
| Very broad multilingual coverage | Whisper, MMS, or Seamless | Large multilingual pretraining covers more languages, subject to per-language tests |
| Chinese and East Asian deployment | FunASR/SenseVoice, WeNet, or a language-specific Moonshine model | Specialized data and tokenization can outperform broad models in the target domain |
| Meeting transcription | ASR plus VAD, forced alignment, and diarization | Speaker attribution and timestamps are separate model objectives |
| Fixed commands and constrained vocabulary | Kaldi/Vosk grammar or compact streaming model | Explicit grammar constraints reduce compute and invalid outputs |
| Rapid managed integration | Cloud transcription API | Provider operates scaling and exposes higher-level features |
A defensible evaluation process is:
- Collect representative audio with target microphones, accents, languages, noise, overlap, pauses, and domain terms.
- Define quality slices instead of one aggregate WER. Names, numbers, commands, and low-resource languages may have different failure costs.
- Measure end-to-end latency, memory, power, concurrency, and cost on deployment hardware.
- Test silence, music, truncated utterances, code-switching, and prompt-bias failure modes.
- Evaluate diarization and timestamps independently from text accuracy.
- Record exact model revisions, normalization rules, licenses, and provider data policies.
ASR progress has shifted the engineering problem from constructing every acoustic component to selecting and adapting pretrained systems. The central constraint has not disappeared: more context and larger models can improve recognition, while low latency, privacy, language breadth, predictable output, and deployment cost pull the system toward different operating points. Architecture selection should therefore follow measured application requirements rather than a single leaderboard score.
Comments
Read or comment on GitHub (sign-in required to comment)