mrkeyoor.com_
Sat 07 Nov 00:43 UTC
AI Toolsevaluationupdated 26 Oct 2026

pocket-tts review

Pocket TTS is Kyutai's local text-to-speech application, with audio streaming, voice cloning, a Python API, CLI and local HTTP server. The current README also documents standalone binaries that need neither Python nor PyTorch. Our recorded September 27, 2026 run covers developer setup at commit d299fb6, not those binaries or the newer small English models.

+65stars / 7d
Verdict

Pocket TTS is worth evaluating for local CPU speech, streaming and consented voice cloning. Our September 27, 2026 run at d299fb6 recorded successful install and build steps, a 5,543 MB environment and a test command that exited with a failure and errors. It did not establish speech quality, synthesis speed, installed-CLI operation or the footprint of today's standalone binaries. Choose a deployment route first, then verify its installation and representative speech output on your target machine.

We ran it

Lab card: what happened when we ran pocket-ttsScreenshot of pocket-tts (github.com/kyutai-labs/pocket-tts)
Install✓ · 72s90 packages · 5543 MB
Build✓ · 9s
Tests✗ · 120s118 passed · 1 failed · 1 skipped · 5 errors of 124 (pytest)
Known vulns0(pip-audit)
Repo136 files~12,305 lines of source · 1.7 MB · 3 CI workflows · Dockerfile · tests dir

Answers from our run

Does pocket-tts build from source?

Dependencies installed in 72 seconds (90 packages), and the build succeeded in 9 seconds. We cloned commit d299fb6 into a clean Debian container with 3 CPUs and no project-specific setup.

Do pocket-tts's tests pass?

No. The project's own test command finished in 120 seconds and reported 118 passed, 1 failed, 1 skipped, 5 collection errors (pytest).

Does pocket-tts have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use pocket-tts?

Teams requiring a verified minimal installation footprint: our older developer environment measured 5,543 MB, and we have not measured the documented CPU-only installation or standalone binaries.

What are the alternatives to pocket-tts?

Piper, Kokoro. Pocket TTS is worth evaluating for local CPU speech, streaming and consented voice cloning.

Setup3/5Under the visible rubric, successful recorded install and build steps support a usable path with caveats: 72 seconds, 9 seconds and a 5,543 MB environment at d299fb6 on September 27, 2026. Installed-CLI operation and alternative installation footprints were not established.
Docs4/5The supplied README broadly documents Python requirements, CLI and API usage, server operation, CPU installation, standalone binaries, voice-state reuse and GPU limitations. Documentation coverage does not establish that every path works.
Community2/5The supplied release and issue extracts show contributor activity, but do not establish adoption, response times or maintainer capacity. This limited-evidence rating does not infer community health from stars.
Maturity3/5Release v3.3.0 and training documentation support a developed project with material verification gaps. The September 27 test command exited 1; error causes were partly unavailable, and current models, binaries and production speech behavior were not evaluated.

Who it’s for

Developers evaluating local CPU speech for desktop applications, accessibility tools or assistants.
Python users who can keep the model and voice states in memory between requests.
Builders who have explicit, lawful consent for voice cloning and can check generated speech against their input.
Researchers interested in the training code announced in August 2026.

Who it’s NOT for

Teams requiring a verified minimal installation footprint: our older developer environment measured 5,543 MB, and we have not measured the documented CPU-only installation or standalone binaries.
Applications requiring built-in, exact text-controlled pauses: the current README still lists this as unsupported.
Teams requiring an officially supported GPU service: the README describes GPU use as unofficial and says the Python serve command and Docker image always use CPU.
Release pipelines requiring a passing test run before adoption: our recorded command exited with a failure and errors whose causes were only partly exposed.

Setup reality

In our recorded run on September 27, 2026, at commit d299fb6588f0243d29e10d479135d3ef30ccfec3, the install step exited successfully after 72 seconds and the build step after 9 seconds. The record reports 90 dependencies and a 5,543 MB installed footprint. These step results do not establish that an installed CLI was checked or that a speech workload completed.

The sandbox configuration specifies 3 CPUs, 8 GB of memory and image ghcr.io/astral-sh/uv:python3.12-bookworm. The actual install tail identifies Python 3.10.21; the image name is not evidence that execution used Python 3.12.

The test step exited 1 after about 120 seconds. Its pytest tail reports 118 passed, 1 failed, 1 skipped and 5 errors, with pytest's own elapsed time of 104.94 seconds. The parser separately records total: 124. Those figures have not been reconciled into an exhaustive count of unique tests.

For the Python package, the README lists Python 3.10 through 3.14 and PyTorch 2.5+. It documents a Linux CPU-only installation route to avoid CUDA runtime downloads. The current README also describes standalone binaries without Python or PyTorch. Neither route has a separate measurement here.

Local CPU speech has more than one installation route

Pocket TTS can generate speech locally, but its model size does not tell you how much disk space your deployment will need. Our September developer environment measured 5,543 MB. The current README documents both a Python package and standalone binaries, so that older measurement should not become a minimum requirement for every installation.

Kyutai documents streaming audio, voice cloning, a CLI, Python API and local HTTP server. A WAV file can supply the voice prompt. Exported safetensors voice states avoid repeating reference-audio processing, and the README recommends keeping the model and voice states in memory because loading them is relatively slow. Configurations can use local YAML paths, HTTPS URLs or Hugging Face paths. Plan and cache those assets if the application needs to operate without network access.

The README prohibits voice cloning without explicit, lawful consent. Local execution also leaves application logging, asset downloads and access controls for the integrator to assess; we did not perform a privacy or security review.

What our September 27 run establishes

Our recorded run used commit d299fb6588f0243d29e10d479135d3ef30ccfec3, abbreviated d299fb6. The checkout contained 136 files, approximately 12,305 lines of source and 1.7 MB. The record reports 90 dependencies and a 5,543 MB installed footprint.

The install step exited 0 in 72 seconds; the build step exited 0 in 9 seconds. The supplied record does not expose their command lines or a separate installed-binary check. These results establish successful recorded steps, rather than a verified end-to-end CLI installation or synthesis workload.

The sandbox configuration lists 3 CPUs, 8 GB of memory and ghcr.io/astral-sh/uv:python3.12-bookworm. The install output says Using Python 3.10.21 environment at: /work/home/venv, and the test paths also reference Python 3.10. The image label therefore must not be reported as the runtime version.

The test step exited 1 after approximately 120 seconds, without a recorded timeout. Pytest's tail reports 1 failed, 118 passed, 1 skipped, 111 warnings, 5 errors in 104.94s (0:01:44). The outer step duration and pytest duration measure different scopes. The parser also records a total of 124, but exhaustive unique test coverage has not been verified. We do not describe this as 118 passing tests out of 124.

The failed case was tests/test_audio.py::test_audio_read_uses_soundfile_for_8_bit_wav. Its ImportError says soundfile is required to read non-WAV or non-16-bit WAV audio. The tail does not establish why that requirement was unavailable. Five error entries name modules under training/tests: dataloader, evaluation naming, loader signals, smoke and units. Their underlying exceptions are absent from the supplied tail. This command did not pass; it does not prove that Pocket TTS synthesis is broken.

The audit record lists pip-audit with an advisory total of 0 and a packages field of 0. Audited package coverage is unknown. This is not evidence that all 90 dependencies were scanned or that the software is safe.

No measured speech workload, listening evaluation, cloning-accuracy assessment or latency benchmark accompanies this run.

Separate the measured checkout from current options

The measured checkout's README describes a 100M-parameter model and training code announced in August 2026. Release v3.3.0 lists retrained Spanish, Italian, Portuguese and German models plus new Dutch support.

The current README additionally lists English models with 18.2M, 6.9M and 1.9M parameters, including the decoder. Kyutai advertises speeds up to 25 times real time on one CPU thread for the small models. That is an upstream claim, not our benchmark, and our September run does not evaluate these October models.

The current README also documents standalone binaries for Linux and macOS on x86 and ARM, and Windows on x86. It says they require neither Python nor PyTorch, use a Rust implementation built on xn-ptts and run only on CPU. They cannot load training checkpoints through --checkpoint, and their audio is not bit-identical to the Python package's because sampling noise differs. We have not downloaded or tested those binaries. Their existence makes the measured Python developer footprint an unsuitable blanket objection to Pocket TTS.

For Python deployments, the documented requirements remain Python 3.10 through 3.14 and PyTorch 2.5+. The README warns that Linux installation from PyPI can download CUDA runtime wheels and supplies a PyTorch CPU-index route. Our record does not establish which packages account for the measured footprint, nor how much a different installation route would save.

Pause control and number handling need different conclusions

The current README explicitly lists adding silence through text input as unsupported. Issue 6 contains external silence-splicing examples and a contributor's proposed implementation. Those discussion examples do not establish that built-in pause markup has shipped. If exact pauses are required, verify the selected release or provide application-level audio assembly.

Issue 162 reports decimal splitting, including 98.6 and 3.14. Its activity also records an August 27, 2026 commit titled "Fix decimal splitting in sentence chunker (#217)". An open issue label alone therefore cannot establish that the original defect persists at d299fb6 or in current releases. The supplied evidence does not include an implementation review or a matching regression run. Test representative numbers in the selected model and language before relying on their spoken output.

GPU support remains qualified

The README describes GPU use as unofficial. The generate command has a device option, while the Python serve command and Docker image always run on CPU. Dynamic int8 quantization is also CPU-only. These are documented boundaries, not results from our sandbox.

For a resident CPU service, keeping the model and voice state loaded follows Kyutai's guidance. For a GPU deployment, confirm the supported execution path before adopting it. Neither choice substitutes for checking whether generated speech says what the application intended.

How to read the scores

These are editorial ratings of the supplied evidence, not benchmark results. The scale is 1 for a documented major obstacle, 2 for limited evidence or substantial unresolved questions, 3 for a usable documented path with material caveats, 4 for broad supporting documentation or demonstrated coverage, and 5 for broad independent validation. Missing evidence does not prove poor product quality.

Setup scores 3/5 because the recorded install and build steps succeeded, but the environment was large and installed-CLI operation was not established. Documentation scores 4/5 because the README covers requirements, interfaces, installation choices, asset handling and execution limits. Community scores 2/5 because the supplied contributor activity does not establish adoption, support responsiveness or maintainer capacity. Maturity scores 3/5 because release and training documentation exist, while our test command did not pass and production speech behavior remains unmeasured.

Start with the route your application needs: Python integration or a standalone CLI. Check that route on the target machine, record the model revision and assets, then evaluate representative speech, including numbers and required pauses. Our September developer run is useful setup evidence for one commit, not a verdict on every current deployment.

Alternatives

ProjectWhat it isPick it when
PiperA local neural text-to-speech engine with command-line, web server, Python and C/C++ interfaces.Evaluate Piper when a local speech engine with a documented C/C++ API fits your integration. Its supplied README also says the Open Home Foundation is looking for maintainers.
KokoroAn inference library for the 82-million-parameter Kokoro model, whose weights are Apache licensed.Evaluate Kokoro when you want a Python inference library with Apache-licensed model weights. Its parameter count does not establish a smaller installed environment or better performance on your machine.

Sources

  1. Pocket TTS repository and README
  2. Pocket TTS v3.3.0 release
  3. Unsupported pause control issue
  4. Decimal splitting report
  5. Dutch model number and pitch report
  6. Pocket TTS measured commit

More ai tools reviews

annotated_deep_learning_paper_implementations · guizang-ppt-skill · copilot-cli · kornia · skills · anarlog · the whole board →