# A voice round trip on CPU: Piper speaks, faster-whisper listens, and int8 changes the answer

Canonical: https://theagenticweekly.com/research/voice-round-trip-piper-faster-whisper · Last verified: 2026-10-25 · Published: 2026-10-25 · Author: Agentic Weekly (operated independently from Texas, US) · Evidence: Measured by us on 2026-10-25. Local open-weight models on a CPU-only box; nothing is vendor-reported. Smoke tests, not benchmarks.

> Piper 1.8.0 turned 10 sentences (41.29 s, 124 words) into audio on CPU in about 1.4 s each. faster-whisper 1.2.1 transcribed it back at 2.4 percent word error with base.en and small.en in float32 on every run, but the int8 setting gave anywhere from 2.4 to 59.7 percent on the same file, run to run.

## What we ran

Ten short sentences were synthesised with Piper's en_US-lessac-medium voice (22,050 Hz), one process per sentence. The resulting files (41.29 s in total, 124 reference words) were transcribed with faster-whisper tiny.en, base.en and small.en on CPU. Word error rate is computed with jiwer after lowercasing and removing punctuation. Each of 9 configurations ran three times.

All numbers come from one Linux virtual machine (Debian 13, 8 vCPU Intel Xeon, 15 GiB RAM, no GPU) that also ran other people's jobs, so timings are indicative and the 1-minute load average is recorded next to each run in the underlying test logs.

## Synthesis

Table: The ten sentences: audio length and synthesis time per sentence (including process start)

| # | Sentence | Audio (s) | Synthesis (s) |
|---|---|---|---|
| 1 | The agentic weekly newsletter covers new releases from open source projects every week. | 5.12 | 1.52 |
| 2 | Please add seventeen and twenty five, and tell me the result. | 3.32 | 1.46 |
| 3 | Local language models can run on a processor without a graphics card. | 3.68 | 1.47 |
| 4 | The model context protocol lets an assistant call tools over standard input and output. | 5.21 | 1.45 |
| 5 | Install the package with a single command, then run the first task. | 3.66 | 1.41 |
| 6 | Version numbers should always be pinned so that a test can be repeated later. | 4.14 | 1.41 |
| 7 | Whisper converts speech to text, and piper converts text back into speech. | 4.37 | 1.42 |
| 8 | The server started in under one second and answered every request. | 3.56 | 1.43 |
| 9 | Cold installs are slower than warm installs because nothing is cached yet. | 4.14 | 1.47 |
| 10 | We report what we ran, what passed, and what we did not test. | 4.08 | 1.38 |

## Transcription

Table: Word error rate for each of three runs, and real-time factor range (transcription time divided by audio time)

| Compute type | Threads | Model | WER per run | Real-time factor |
|---|---|---|---|---|
| int8 | 8 | tiny.en | 0.3387, 0.5081, 0.5968 | 0.083 to 0.111 |
| int8 | 8 | base.en | 0.1048, 0.3145, 0.4516 | 0.095 to 0.126 |
| int8 | 8 | small.en | 0.2500, 0.0242, 0.2419 | 0.215 to 0.318 |
| int8 | 4 | tiny.en | 0.0403, 0.1129, 0.0403 | 0.069 to 0.091 |
| int8 | 4 | base.en | 0.0323, 0.3871, 0.0323 | 0.091 to 0.287 |
| int8 | 4 | small.en | 0.0645, 0.0403, 0.2177 | 0.215 to 0.394 |
| float32 | 8 | tiny.en | 0.0403, 0.0403, 0.0403 | 0.104 to 0.145 |
| float32 | 8 | base.en | 0.0242, 0.0242, 0.0242 | 0.118 to 0.197 |
| float32 | 8 | small.en | 0.0242, 0.0242, 0.0242 | 0.341 to 0.609 |

float32 produced identical results on every run. int8 did not: the same audio, model and settings gave very different word error rates, and some outputs contained garbage text for a segment. A first int8 run that we discarded gave 0.645. We did not find the cause.

## Install gotchas

- faster-whisper 1.2.1 failed on first use with an unpinned av 19.0.2 (TypeError: open() got an unexpected keyword argument 'metadata_errors'); installing av==18.1.0 fixed it.
- Piper's voices are separate downloads (about 60 MB for this one).
- The Piper Python package is GPL-3.0 licensed.

## Caveats

- One synthetic voice reading ten clean sentences; no noise, accents, long recordings or non-English audio.
- The nondeterministic int8 result appeared on a shared VM; we cannot say it happens on other hardware. Verify int8 against a reference before using it.
- The test measures machine round-trip accuracy, not how natural the voice sounds.

## FAQ

### Is int8 safe to use with faster-whisper on CPU?

Check it first: on our machine the same audio gave 2.4 to 59.7 percent word error across int8 runs, while float32 gave a constant 2.4 percent for base.en and small.en.

### How fast does Piper run without a GPU?

About 1.4 to 1.5 s per sentence including process start, for sentences producing 3 to 5 seconds of audio.

## Related

- [All research](https://theagenticweekly.com/research)
- [All test logs](https://theagenticweekly.com/tests)
- [Methodology and testing rig](https://theagenticweekly.com/methodology#testing-rig)
- [Piper test log](https://theagenticweekly.com/tests/piper)
- [faster-whisper test log](https://theagenticweekly.com/tests/faster-whisper)

## Changelog

- 2026-10-25: First published.

## How to cite

Agentic Weekly, "A voice round trip on CPU: Piper speaks, faster-whisper listens, and int8 changes the answer", last updated 2026-10-25, https://theagenticweekly.com/research/voice-round-trip-piper-faster-whisper
