AEmotionStudio commited on
Commit
cf9fbe9
·
verified ·
1 Parent(s): b27dd1f

mirror: medium/README.md ← nyralabs/CrisperWhisper2.0_medium

Browse files
Files changed (1) hide show
  1. medium/README.md +239 -0
medium/README.md ADDED
@@ -0,0 +1,239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ - de
5
+ license: other
6
+ license_name: nyra-health-non-commercial-research
7
+ license_link: LICENSE.md
8
+ pipeline_tag: automatic-speech-recognition
9
+ library_name: crisperwhisper
10
+ tags:
11
+ - speech-recognition
12
+ - verbatim
13
+ - disfluency
14
+ - whisper
15
+ - ctranslate2
16
+ - word-timestamps
17
+ ---
18
+
19
+ # CrisperWhisper 2.0
20
+
21
+ [![PyPI](https://img.shields.io/pypi/v/crisperwhisper?cacheSeconds=3600)](https://pypi.org/project/crisperwhisper/)
22
+
23
+ **The most accurate verbatim speech recognition you can run in production:
24
+ controllable, multilingual, and timed to the word.**
25
+
26
+ [Release post](https://www.nyra-labs.com/crisperwhisper) ·
27
+ [Paper](https://arxiv.org/abs/2607.18934) ·
28
+ [Full documentation](https://github.com/nyrahealth/CrisperWhisper/blob/main/DOCS.md) ·
29
+ [Models](https://huggingface.co/nyralabs) ·
30
+ [Benchmark](https://www.nyra-labs.com/research/nyra-verbatim-speech-benchmark) ·
31
+ [Benchmark repo](https://github.com/nyrahealth/nyra_verbatim_speech_benchmark)
32
+
33
+ <a href="https://www.nyra-labs.com/crisperwhisper">
34
+ <img src="https://img.shields.io/badge/%E2%96%B6%20%20TRY%20IT%20NOW-2563eb?style=for-the-badge" alt="Try it now">
35
+ </a>
36
+
37
+ Most speech-to-text systems never actually decide whether to write down what
38
+ was *said* or what was *meant*. They inherit that choice from their training
39
+ data and apply it inconsistently. CrisperWhisper 2.0 makes it an explicit,
40
+ controllable choice. One recording, two transcripts:
41
+
42
+ > **Verbatim**, exactly what was said, in one consistent format:
43
+ > `[um] so we we need to, to reschedule the th- thursday meeting to [uh] march third at nine thirty [laughter]`
44
+ >
45
+ > **Intended**, the clean version the speaker meant, with numbers, dates,
46
+ > and emails formatted the way you'd write them:
47
+ > `So we need to reschedule the Thursday meeting to March 3 at 9:30.`
48
+
49
+ On top of that:
50
+
51
+ - **Word-level timings.** Around 30 ms mean boundary error on read speech
52
+ and 41 ms on conversational speech, the most precise word timing of any
53
+ system we benchmarked, on both.
54
+ - **Verbatimize.** Upgrade transcripts you already have: given audio plus a
55
+ trusted clean transcript, the model reproduces your content word-for-word
56
+ and inserts only the disfluencies and vocal events actually present in the
57
+ audio (rare-word recall jumps from 6.8% to 96.1% vs. re-transcribing).
58
+ This turns the world's abundant clean corpora into verbatim ones, ready
59
+ for TTS data, clinical speech analysis, and dataset construction.
60
+ - **Multilingual.** Verbatim and intended modes work across most languages
61
+ Whisper supports. CrisperWhisper 2.0 tops the
62
+ [Nyra Verbatim Speech Benchmark](https://www.nyra-labs.com/research/nyra-verbatim-speech-benchmark)
63
+ leaderboard for disfluency F1 across ten languages, ahead of every
64
+ closed-source alternative we tested.
65
+ - **Seamless longform.** Audio of any length, transcribed without the usual
66
+ chunk-boundary artifacts: each window continues from the words already
67
+ transcribed (*conditional continuation*), so there are no duplicated or
68
+ dropped words at the seams and no fragile timestamp-token bookkeeping.
69
+ - **Production inference.** A CTranslate2 runtime with speculative decoding
70
+ and built-in mitigation of Whisper's looping-hallucination failure mode.
71
+
72
+ ## Performance
73
+
74
+ The [Nyra Verbatim Speech Benchmark](https://www.nyra-labs.com/research/nyra-verbatim-speech-benchmark)
75
+ scores fillers, repetitions, cut-offs, and vocal sounds as separate, typed
76
+ metrics. Its headline number is **disfluency F1**: how reliably a system
77
+ writes down the disfluencies that were actually spoken, without inventing
78
+ ones that weren't. Averaged over ten languages:
79
+
80
+ | # | System | Disfluency F1 |
81
+ |--:|--------|--------------:|
82
+ | 1 | **CrisperWhisper 2.0 Pro** | **93.5** |
83
+ | 2 | **CrisperWhisper 2.0** | **87.8** |
84
+ | 3 | ElevenLabs Scribe v2 | 79.2 |
85
+ | 4 | Microsoft MAI-Transcribe-1.5 | 77.5 |
86
+ | 5 | CrisperWhisper 1.0\* | 64.8 |
87
+ | 6 | Inworld STT | 59.5 |
88
+ | 7 | xAI Grok Speech-to-Text | 42.8 |
89
+ | 8 | Deepgram Nova-3 | 37.8 |
90
+ | 9 | Fish Audio ASR | 35.0 |
91
+ | 10 | AssemblyAI Universal-3 Pro | 30.5 |
92
+
93
+ <sub>\* CrisperWhisper 1.0 is English/German-only; its average covers those
94
+ two languages. English and German use human-labeled evaluation sets; the
95
+ other eight languages use synthetic verbatim sets. Per-language breakdowns
96
+ and how the metric is computed are in the
97
+ [benchmark post](https://www.nyra-labs.com/research/nyra-verbatim-speech-benchmark).</sub>
98
+
99
+ ### Word-timing accuracy
100
+
101
+ Mean absolute word-boundary error on read speech (TIMIT), lower is better:
102
+
103
+ | # | System | Boundary error |
104
+ |--:|--------|---------------:|
105
+ | 1 | **CrisperWhisper 2.0** | **29.6 ms** |
106
+ | 2 | xAI Grok Speech-to-Text | 37.1 ms |
107
+ | 3 | CTC-seg | 49.3 ms |
108
+ | 4 | ElevenLabs Scribe v2 | 51.3 ms |
109
+ | 5 | NeMo-FA | 60.0 ms |
110
+ | 6 | Deepgram Nova-3 | 63.3 ms |
111
+ | 7 | WhisperX | 64.8 ms |
112
+ | 8 | Cartesia Ink-Whisper | 69.4 ms |
113
+ | 9 | Canary | 85.5 ms |
114
+
115
+ <sub>Scored on exactly the words each system gets right. How the timings
116
+ are extracted from supervised cross-attention, plus results on
117
+ conversational speech, are in the
118
+ [aligner post](https://www.nyra-labs.com/research/attention-to-aligner).</sub>
119
+
120
+ ## Install
121
+
122
+ ```bash
123
+ # NVIDIA GPU (Linux): fastest, includes speculative decoding.
124
+ # An NVIDIA driver is all you need; CUDA libraries arrive via pip.
125
+ pip install "crisperwhisper[ct2]"
126
+
127
+ # Pure PyTorch: runs anywhere torch does (macOS, Windows, CPU)
128
+ pip install "crisperwhisper[transformers]"
129
+ ```
130
+
131
+ ## Quickstart
132
+
133
+ ```python
134
+ from crisperwhisper import CrisperWhisperModel
135
+
136
+ model = CrisperWhisperModel() # nyralabs/CrisperWhisper2.0_large
137
+ # or pick a size: CrisperWhisperModel("turbo") # turbo / medium / small
138
+
139
+ # Verbatim transcription (default): every filler, repetition, stutter,
140
+ # false start, and vocal event
141
+ result = model.transcribe("meeting.wav", language="en")
142
+ print(result.text)
143
+
144
+ # Intended: the clean, readable version
145
+ clean = model.transcribe("meeting.wav", language="en", mode="intended")
146
+
147
+ # Word-level timestamps
148
+ result = model.transcribe("meeting.wav", language="en", word_timestamps=True)
149
+ for w in result.words:
150
+ print(f"{w.start:6.2f}-{w.end:6.2f} {w.word}")
151
+
152
+ # Verbatimize: upgrade an existing clean transcript with the
153
+ # disfluencies that are actually in the audio
154
+ result = model.verbatimize("clip.wav", "I think we should ship it Friday.")
155
+ ```
156
+
157
+ Audio longer than 30 seconds is handled automatically (see
158
+ [longform](#what-else-is-in-the-box) below). The first load of a model
159
+ downloads it from HuggingFace and, on the `ct2` backend, converts it once
160
+ into a local cache.
161
+
162
+ ### Models
163
+
164
+ | Shorthand | HuggingFace ID | Notes |
165
+ |-----------|----------------|-------|
166
+ | `"large"` (default) | `nyralabs/CrisperWhisper2.0_large` | Best open quality |
167
+ | `"turbo"` | `nyralabs/CrisperWhisper2.0_turbo` | Fastest, with some quality degradation; recommended as the speculative draft |
168
+ | `"medium"` | `nyralabs/CrisperWhisper2.0_medium` | Near-large quality; best tradeoff between size and quality |
169
+ | `"small"` | `nyralabs/CrisperWhisper2.0_small` | Smallest |
170
+ | `"large_pro"` / `"turbo_pro"` / `"medium_pro"` / `"small_pro"` | `nyralabs/CrisperWhisper2.0_<size>_pro` | **Pro**: our best models, with improved performance, hotword boosting, trained on additional proprietary data |
171
+
172
+ The standard models are released under a
173
+ [non-commercial research license](https://huggingface.co/nyralabs/CrisperWhisper2.0_large/blob/main/LICENSE.md)
174
+ and are available for commercial licensing. The **Pro** models are available
175
+ under commercial license only. For both,
176
+ [get in touch](https://www.nyra-labs.com/crisperwhisper).
177
+
178
+ ### Faster inference: speculative decoding (ct2)
179
+
180
+ A small draft model proposes tokens and the main model verifies them. Same
181
+ output, 1.3 to 1.4x faster:
182
+
183
+ ```python
184
+ model = CrisperWhisperModel("large", draft_model="turbo")
185
+ result = model.transcribe("meeting.wav", language="en",
186
+ speculative_decoding=True)
187
+ ```
188
+
189
+ ## What else is in the box
190
+
191
+ Everything below works out of the box and is covered in depth in
192
+ [DOCS.md](https://github.com/nyrahealth/CrisperWhisper/blob/main/DOCS.md):
193
+
194
+ | Option | What it does |
195
+ |--------|--------------|
196
+ | `mode="verbatim" / "intended"` | Choose what-was-said vs. what-was-meant per call |
197
+ | `word_timestamps=True` | Per-word start/end times from supervised cross-attention alignment |
198
+ | `hotwords=[...]` | Bias recognition toward names and rare terms (**Pro models only**) |
199
+ | `model.transcribe_dual(...)` | Verbatim **and** intended in one pass (ct2) |
200
+ | `model.verbatimize(audio, transcript)` | Insert real disfluencies into a trusted clean transcript |
201
+ | `model.forced_align(audio, text)` | Timings for a transcript you already have |
202
+ | Longform | Audio >30s transcribed seamlessly via conditional continuation, with no chunk-boundary duplicates, drops, or stitching |
203
+ | Hallucination mitigation | On by default: detects and suppresses Whisper's looping-repetition failure mode during decoding |
204
+ | `compute_type="float16" / "int8_float16"` | Quantization |
205
+
206
+ ## How it works
207
+
208
+ Each mechanism has a deep-dive post:
209
+
210
+ - [Measuring verbatimness: the Nyra Verbatim Speech Benchmark](https://www.nyra-labs.com/research/nyra-verbatim-speech-benchmark).
211
+ Typed metrics for fillers, repetitions, cut-offs, and vocal sounds instead
212
+ of one opaque WER number.
213
+ - [How we unlocked multilingual style-controlled transcription at scale](https://www.nyra-labs.com/research/multilingual-style-control).
214
+ Verbatim/intended control across languages.
215
+ - [Turning emergent cross-attention into a precise aligner](https://www.nyra-labs.com/research/attention-to-aligner).
216
+ Supervising Whisper's alignment heads for word boundaries around 30 ms.
217
+ - [Longform transcription with conditional continuation](https://www.nyra-labs.com/research/longform-continuation).
218
+ Resolving window seams with the words already transcribed instead of
219
+ fragile timestamp tokens.
220
+ - [Closing the verbatim data gap with Verbatimize](https://www.nyra-labs.com/research/verbatimize).
221
+ Upgrading clean corpora into verbatim ones at scale.
222
+ - [Faster inference and mitigating hallucinations](https://www.nyra-labs.com/research/killing-hallucinations).
223
+ The CTranslate2 stack, speculative decoding, and the anti-looping decoder.
224
+
225
+ ## Documentation
226
+
227
+ [DOCS.md](https://github.com/nyrahealth/CrisperWhisper/blob/main/DOCS.md) covers the full API: backends and their trade-offs,
228
+ every `transcribe()` option, dual-mode transcription, forced alignment,
229
+ longform strategies, speculative-K tuning, hallucination-repair thresholds,
230
+ quantization, model conversion, and the result object.
231
+
232
+ ## License
233
+
234
+ The model weights are released under the
235
+ [Nyra Health Non-Commercial Research License](https://huggingface.co/nyralabs/CrisperWhisper2.0_large/blob/main/LICENSE.md):
236
+ free for research and other non-commercial use; any commercial use requires
237
+ a commercial license. The Pro models are available under commercial license
238
+ only. For commercial licensing of either,
239
+ [contact Nyra](https://www.nyra-labs.com/crisperwhisper).