# faster-whisper (speech to text) 1.2.1 (CTranslate2 4.8.4): our test log

Canonical: https://theagenticweekly.com/tests/faster-whisper · Last verified: 2026-10-25 · Published: 2026-10-25 · Author: Agentic Weekly (operated independently from Texas, US) · Evidence: Tested by us on 2026-10-25. Local open-weight model, not the vendor's hosted models. A smoke test on a CPU-only box, not a benchmark.

> faster-whisper 1.2.1 transcribed 41 s of speech at 2.4 percent word error with the base.en model in float32 (deterministic), but the int8 setting gave 2 to 60 percent on identical audio across runs.

## Result at a glance

Table: faster-whisper (speech to text) test record

| Field | Value |
|---|---|
| Result | Passed |
| Version tested | 1.2.1 (CTranslate2 4.8.4) |
| Date and time | 2026-10-25, 22:54 to 23:01 CDT (America/Chicago) |
| Task | Transcribe the ten Piper sentences (41.29 s, 124 words in total) with faster-whisper tiny.en, base.en and small.en on CPU, compute types int8 and float32, 8 and 4 CPU threads, three runs each, and compute the word error rate against the known text (jiwer, punctuation and case ignored). |
| Model used | none (no language model involved) |
| Hardware | Linux x86_64 virtual machine (Debian 13), 8 vCPU (Intel Xeon, 1 thread per core), 15 GiB RAM, no GPU |
| float32 WER, base.en and small.en | 0.0242 on 9 of 9 runs |
| int8 WER, base.en, 8 threads | 0.105, 0.315, 0.452 (three runs) |
| Real-time factor | 0.07 to 0.61 depending on model and compute type |

## What we found

- float32 was deterministic: tiny.en gave 0.0403 and base.en and small.en gave 0.0242 on every run (3 of 3, 8 threads). That is 5 and 3 wrong words out of 124.
- int8 was not: on identical audio and settings the word error rate ranged 0.040 to 0.597 for tiny.en, 0.032 to 0.452 for base.en and 0.024 to 0.25 for small.en across runs (8 threads) and similar ranges at 4 threads. A first run (discarded) gave 0.645. Several int8 outputs contained garbage text for a segment.
- Speed: the real-time factor (transcription time divided by audio time) was 0.07 to 0.29 for the tiny and base models and 0.22 to 0.61 for small.en, i.e. all faster than real time on 8 shared vCPUs.
- We did not find the cause of the int8 variation. It appeared on this virtual machine when other jobs were running; we cannot say it happens on your hardware, but verify int8 output against a known reference before relying on it.

## What we ran, step by step

Table: Commands run, wall-clock time and exit code

| Step | Wall time | Exit code | Notes |
|---|---|---|---|
| Install with uv | 1 s | 0 | faster-whisper 1.2.1, ctranslate2 4.8.4, onnxruntime 1.31.0, jiwer 4.0.0; 440 MB. The 1.0 s looks quick for 440 MB even with --no-cache; we recorded it as measured and cannot explain it further. |
| First run: model load failed on av 19.0.2 | n/a | 1 | TypeError: open() got an unexpected keyword argument 'metadata_errors' from an unpinned av 19.0.2. Fixed by uv pip install av==18.1.0 (see gotchas). |
| Transcription runs | n/a | 0 | 27 timed runs; models downloaded on first use (not timed). |

Exact commands (paths shortened)

```
# Install with uv
uv venv -p 3.13 work/py/faster-whisper && VIRTUAL_ENV=work/py/faster-whisper uv pip install --no-cache -q faster-whisper jiwer

# First run: model load failed on av 19.0.2
python voice_stt.py tiny.en

# Transcription runs
CT=int8 TH=8 python voice_stt.py tiny.en base.en small.en  # also CT=float32, TH=4
```

## Raw output (excerpts)

Word error rate by configuration (WER = fraction of 124 words wrong; RTF = transcription time / audio time)

```
compute  threads  model     WER per run (3 runs)        RTF range
int8     8        tiny.en   [0.339, 0.508, 0.597]       0.083 to 0.111
int8     8        base.en   [0.105, 0.315, 0.452]       0.095 to 0.126
int8     8        small.en  [0.25, 0.024, 0.242]        0.215 to 0.318
int8     4        tiny.en   [0.04, 0.113, 0.04]         0.069 to 0.091
int8     4        base.en   [0.032, 0.387, 0.032]       0.091 to 0.287
int8     4        small.en  [0.065, 0.04, 0.218]        0.215 to 0.394
float32  8        tiny.en   [0.04, 0.04, 0.04]          0.104 to 0.145
float32  8        base.en   [0.024, 0.024, 0.024]       0.118 to 0.197
float32  8        small.en  [0.024, 0.024, 0.024]       0.341 to 0.609
```

Install problem we hit

```
av 19.0.2 (unpinned, faster-whisper requires av>=11): TypeError: open() got an unexpected keyword argument 'metadata_errors'. Workaround: uv pip install av==18.1.0 (works)
```

Discarded early int8 run on the same audio (tiny.en, 8 threads)

```
{"slug": "faster-whisper", "model": "tiny.en", "compute_type": "int8", "cpu_threads": 8, "model_load_incl_download_seconds": 1.81, "transcribe_seconds": 7.21, "audio_seconds": 41.29, "realtime_factor": 0.175, "wer": 0.6452, "words": 124, "loadavg_after": "3.87", "start": "2026-10-25 22:54:33 CDT", "
```

## Gotchas and things that broke

- Unpinned av 19.0.2 broke the install-time import: use av==18.1.0 (the version that worked) with faster-whisper 1.2.1.
- The int8 results above include runs under load average up to 9; float32 runs were under similar load and were stable, which is why we call out int8 specifically.

## What we did not test

- Other audio: one synthetic (Piper) voice, English only, no noise, no accents, no long recordings.
- GPU, other compute types (float16, int8_float16) and the larger models.
- Not a benchmark; this is a smoke test on 41 seconds of audio.

## Reproduce it

Versions change. These commands install whatever is latest on the day you run them unless a version is pinned, so expect different results later. The version we measured is in the table above.

```
uv venv -p 3.13 .venv && VIRTUAL_ENV=.venv uv pip install faster-whisper jiwer av==18.1.0
# synthesise audio with Piper (see that test), then run a script that calls WhisperModel("base.en", device="cpu", compute_type="float32").transcribe("s0.wav", beam_size=5, language="en")
```

## How to read this test

Every number on this page was measured on this one machine, which also ran other jobs, so timings are indicative and vary run to run. A pass means our small task worked once or as stated, a fail means it did not work as we ran it; neither says how the tool behaves with a vendor's frontier model, on a GPU, or at scale. Where a tool could not run without an account or a GPU, we say so instead of guessing.

See the [testing rig](https://theagenticweekly.com/methodology#testing-rig) for the hardware, the local model and the rules we follow, and the [test hub](https://theagenticweekly.com/tests) for every other test.

## FAQ

### Should I use int8 or float32 with faster-whisper on CPU?

On our machine float32 gave identical 2.4 percent word error on every run while int8 varied from 2 to 60 percent on the same audio, so we would check int8 against a reference first.

## Sources

- [faster-whisper repository](https://github.com/SYSTRAN/faster-whisper) (fetched 2026-10-25)

## Related

- [All test logs](https://theagenticweekly.com/tests)
- [Methodology and testing rig](https://theagenticweekly.com/methodology#testing-rig)
- [Study: a voice round trip with Piper and faster-whisper](https://theagenticweekly.com/research/voice-round-trip-piper-faster-whisper)

## How to cite

Agentic Weekly, "faster-whisper (speech to text) 1.2.1 (CTranslate2 4.8.4): our test log", last updated 2026-10-25, https://theagenticweekly.com/tests/faster-whisper
