We believe that rigorously measuring the quality of inference is necessary for developers and
enterprises to make informed decisions when opting to use optimized or compressed variants of
any machine learning model in production. To contextualize
WhisperKit
, we take the following Whisper
implementations and benchmark them using a consistent evaluation harness:
(All on-device implementations are available for free under MIT license as of 03/19/2024)
WhisperOpenAIAPI
sets the reference and we assume that it is using the equivalent of
openai/whisper-large-v2
in float16 precision along with additional undisclosed optimizations from OpenAI. In all measurements, we care primarily about per-example no-regressions (quantified as
qoi
below)
which is a stricter metric compared to dataset average
Word Error RATE (WER)
. A 100%
qoi
preserves perfect backwards-compatibility on the test distribution and avoids "perceived regressions", the phenomenon
where per-example known behavior changes after a code/model update and causes divergence in downstream code or breaks the user experience itself (even if dataset averages might stay flat
across updates). Pseudocode for
qoi
:
qoi = []
for example in dataset:
no_regression = wer(optimized_model(example)) <= wer(reference_model(example))
qoi.append(no_regression)
qoi = (sum(qoi) / len(qoi)) * 100.
Note that the ordering of models with respect to
WER
does not necessarily match the ordering with respect to
QoI
. This is because the reference model gets assigned
a QoI of 100% by definition. Any per-example regression by other implementations get penalized while per-example improvements are not rewarded.
QoI
(higher is better) matters
where the production behavior is established by the reference results and the goal is to not regress when switching to an optimized or compressed model. On the other hand,
WER
(lower is better) matters when there is no established production behavior and one is picking the best quality versus model size trade off point.
We anticipate developers that use Whisper (or similar models) in production to have their own Quality Assurance test sets and
whisperkittools
offers
the tooling necessary to run the same measurements on such custom test sets, please see the
Model Evaluation on Custom Dataset
for details.
Why are there so many Whisper versions?
WhisperKit is an SDK for building speech-to-text features in apps across a wide range of Apple devices. We are working towards abstracting away the model versioning from the developer so WhisperKit
"just works" by deploying the highest-quality model version that a particular device can execute. In the interim, we leave the choice to the developer by providing quality and size trade-offs.
Datasets
librispeech
: ~5 hours of short English audio clips, tests short-form transcription quality
earnings22
: ~120 hours of English audio clips from earnings calls with various accents, tests long-form transcription quality
Reproducing Results
Benchmark results on this page were automatically generated by
whisperkittools
using our cluster of Apple Silicon Macs as self-hosted runners on
Github Actions. We periodically recompute these benchmarks as part of our CI pipeline. Due to
security concerns
,
we are unable to open up the cluster to the public. However, any Apple Silicon Mac (even with 8GB RAM) can be used to
run identical
evaluation jobs
locally. For reference, our M2 Ultra devices complete a
librispeech
+
openai/whisper-large-v3
evaluation in under 1 hour regardless of the Whisper implementation. Oldest Apple Silicon Macs should take less than 1 day to complete the same evaluation.
Glossary
_turbo
: Indicates the presence of additional optimizations (not compression) to unlock streaming transcription
as described in our
Blog Post
.
_*MB
: Indicates the presence of model compression. Instead of cluttering the filename with details like
_AudioEncoder-5.8bits_TextDecoder-6.1bits_QLoRA-rank=16
, we choose to summarize the compression spec as the
resulting total file size since this is what matters to developers in production.
Runs of argmaxinc whisperkit-coreml on huggingface.co
11.2M
Total runs
75.4K
24-hour runs
-172.9K
3-day runs
-388.9K
7-day runs
1.3M
30-day runs
More Information About whisperkit-coreml huggingface.co Model
whisperkit-coreml huggingface.co is an AI model on huggingface.co that provides whisperkit-coreml's model effect (), which can be used instantly with this argmaxinc whisperkit-coreml model. huggingface.co supports a free trial of the whisperkit-coreml model, and also provides paid use of the whisperkit-coreml. Support call whisperkit-coreml model through api, including Node.js, Python, http.
whisperkit-coreml huggingface.co is an online trial and call api platform, which integrates whisperkit-coreml's modeling effects, including api services, and provides a free online trial of whisperkit-coreml, you can try whisperkit-coreml online for free by clicking the link below.
argmaxinc whisperkit-coreml online free url in huggingface.co:
whisperkit-coreml is an open source model from GitHub that offers a free installation service, and any user can find whisperkit-coreml on GitHub to install. At the same time, huggingface.co provides the effect of whisperkit-coreml install, users can directly use whisperkit-coreml installed effect in huggingface.co for debugging and trial. It also supports api for free installation.