Use interim transcripts to cut voice-to-voice latency — KV-cache prefilling, speculative generation, intent extraction, and tool prefetch while the user is still talking.
Project description
premove
Use interim transcripts to optimize LLM calls and voice-to-voice latency.
Voice agents idle through the entire user turn, then pay for STT finalization, LLM
prefill, tool calls, and TTS all at once. premove spends the speaking time instead —
consuming your STT's interim transcripts to do the work early:
- KV-cache prefilling — stable (committed) transcript prefixes warm your OpenAI-compatible endpoint while the user talks, so the final call's prefill is already computed.
- Speculative generation — the response starts generating near the end of the turn and is held; released the instant the turn ends, discarded if the transcript changed (like a chess premove).
- Intent extraction & tool/RAG prefetch (roadmap) — a rolling parse of the partial transcript triggers workflows mid-utterance, so results are ready before the question finishes.
Local-first (Whisper + llama.cpp / vLLM / Ollama), where the wins are largest — but designed for any interim-emitting STT and any OpenAI-compatible endpoint.
⚠️ Pre-alpha. This package reserves the name while v0.1 is built in the open.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file premove-0.0.1.tar.gz.
File metadata
- Download URL: premove-0.0.1.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dccac0e2f4a770f360e6f36534364cd250c6d4ea9e1d4589f7b17fc86f245134
|
|
| MD5 |
3e23ab03f889a8e354aac263d05a60d4
|
|
| BLAKE2b-256 |
4a7e78e5d27f8c33e60dfa5aed48a584b766e47019f2e6c8e2bdee5915b35c8b
|
File details
Details for the file premove-0.0.1-py3-none-any.whl.
File metadata
- Download URL: premove-0.0.1-py3-none-any.whl
- Upload date:
- Size: 3.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.27 {"installer":{"name":"uv","version":"0.11.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee1501645c42cdfec9c64d0351e56ccf418f5f5ef781fff08ef38b4111cda195
|
|
| MD5 |
8d6f61357f64da242ae35062589cc0d7
|
|
| BLAKE2b-256 |
92f5eee8adf1f5d60a8aff9e88200d9a04b1107846ecc67c6466f4edb13f17f3
|