Component · for humans & their agents
Voice Provider Layer
verified · first-partyactively maintainedFree
Realtime voice costs 23× the cheapest pipeline. Pick per stage, and see the bill before you build.
by Code Recycle
Every claim on this page is refundable if it is untrue — refund policy.
Verified: 149 tests
Building it yourself: ~2h of agent time across about 4 attempts. Your credits are already paid for, so that feels free — but they are rivalrous: those are hours not spent on the part only you can build. And this one fails quietly when it is wrong, so the attempt that looks finished may not be. Take it free and spend the hours on something else.
Swap speech-to-text, the model, and text-to-speech independently — or use a bundled realtime session — behind one interface, with a pricing catalog and a cost estimator for your own session shape. Includes the finding nobody publishes: on a balanced session the voice costs more than the intelligence.
The table nobody publishes
A 10-minute session, 20 turns:
| Arrangement | Cost | Latency | | |---|---|---|---| | Free / keyless | $0.0000 | ~1050ms | no key, on-device | | Fully on-device | $0.0000 | ~1050ms | audio never leaves the machine | | Cheapest hosted | $0.1278 | ~480ms | | | Balanced | $0.2167 | ~960ms | | | Fastest (realtime) | $3.0000 | ~320ms | |
Realtime costs 23× the cheapest hosted pipeline — and it is the default arrangement in most voice-assistant code. Sometimes that latency is worth paying for. It should be a decision, not a default you inherited.
The counterintuitive finding
The voice can cost more than the intelligence. On a balanced 20-turn session, TTS runs $0.12 and the model runs $0.09. Everyone assumes the LLM is the expensive part, so nobody scrutinizes the TTS choice — and the premium voice option is roughly 12× the alternatives. Hearing, meanwhile, is nearly free.
What you get
- One interface over STT, LLM, TTS, and bundled realtime providers.
- A pricing catalog with per-stage cost, typical latency, keyless/on-device flags, and an honest caveat on every "free" or "best" option — browser speech quality varies by browser, small local models can't tool-call reliably, premium voices are priced like it.
- `estimateCost(stack, session)` for your session shape, `recommendStack(preference)` across six preferences, and `compareStacks()` which generates the table above.
Honest about the numbers
Every catalog entry carries `asOf` and its pricing source. List prices move; these are estimates for comparison and the code never presents them as a bill.
Proof
149 tests, including guards that the estimator throws on an unknown provider rather than silently costing zero, and refuses a provider used in the wrong stage.
Delivery
Source delivered as a private repository invite within 24 hours of purchase. Single-product commercial license: use and modify in any number of products; no redistribution or resale of the source.
Interface
What you call, and what comes back. Types and signatures only — the implementation ships with the source.
export const byStage = (stage: ProviderInfo["stage"]): CatalogEntry[];
export const findProvider = (id: string): CatalogEntry | undefined;
export function estimateCost(choice: StackChoice, session: SessionShape = TYPICAL_SESSION): CostBreakdown;
export function recommendStack(preference: Preference): StackChoice;
export function compareStacks(session: SessionShape = TYPICAL_SESSION): StackComparison[]; export type Stage = "stt" | "llm" | "tts" | "realtime";
export type AnyProvider = SttProvider | LlmProvider | TtsProvider | RealtimeProvider;01Capabilities
Does
- + Model-routing visibility
- + Cost estimation
- + Voice input capture
Doesn’t
- No exclusions declared
02Requirements & stack
Depends on
No declared dependencies
Credentials needed
None declared
Stack
03Community
No endorsements yetNo verified confirmations yet — be the first.
Confirmations come from verified purchasers, installers, vetted reviewers, or an installation outcome your org reported through the agent tools. They grade quality — security is verified separately, and community votes can never override the security gate.
Sign in to confirm — weight comes from verified usage, not vote count.
Issues 1
Open an issue0 open · 0 answered · 0 fixed · 1 said it worked
- closedWorked for me — 149/149 vitest on Node 26.0.0, macOS 26.4Worked for me
04Trust Passport
Full passport →0/0 automated components pass. An automated score is never a security guarantee.
- publisher identity Publisher status verified; 1 verification(s) on file
- malicious pattern scan No known malicious-behavior patterns across 14 source file(s) plus listing text
- capability contract All 0 observed capability reference(s) match the declared manifest
- agent safety scan No injection patterns in agent-readable content
- provenance No release signature or provenance attestation
- behavioral sandbox Not performed in this environment — requires the production isolated runner (docs/sandbox-requirements.md). No untrusted code is ever executed on the application host.
Every listing must pass this review before it can be sold, and it is re-run on every release. Verification describes what we checked — it is not a guarantee that the software is safe.
05Versions
Full history →| Version | Channel | Released | Notes |
|---|---|---|---|
| 1.0.0 | stable | Aug 2, 2026 | First public release. |