Build on the supported package contract
Use @absolutejs/voice-rime through its supported public entry points.
@absolutejs/voice-rimev0.0.1-beta.7betaVoice & MediaRime text-to-speech adapter for @absolutejs/voice
bun add @absolutejs/voice-rimeRime text-to-speech adapter for @absolutejs/voice.
Wraps Rime's /v1/rime-tts HTTP streaming endpoint behind voice's TTSAdapter seam. Supports the mist / mistv2 / arcana voice models for fast, conversational TTS.
For telephony at 8 kHz μ-law:
Option — Required — Default — Notes
apiKey — yes — — — Rime API key, sent as Authorization: Bearer .
speaker — yes — — — Rime speaker id (cove, marsh, river, etc.).
modelId — no — mistv2 — mist, mistv2, arcana, or a future Rime model id.
audioFormat — no — pcm — Must be pcm (PCM s16le) or mulaw (telephony @ 8 kHz).
sampleRate — no — 22050 — Ignored for mulaw.
lang — no — — — Language hint (eng, etc.).
speedAlpha, inlineSpeedAlpha — no — — — Forwarded to Rime.
reduceLatency, pauseBetweenBrackets, phonemizeBetweenBrackets, noTextNormalization — no — — — Forwarded as boolean controls.
baseUrl — no — https://users.rime.ai — Override for staging hosts.
fetch — no — globalThis.fetch — Inject for tests; opportunistic HTTP/2 multiplexing on outbound HTTPS.
Whitespace-only send() is a no-op.
session.close(reason) aborts in-flight requests and refuses further sends.
This adapter targets Rime's HTTP streaming endpoint. If you need their WebSocket transport, open an issue.
Outcomes
Use @absolutejs/voice-rime through its supported public entry points.
Hardening checklist
Follow in order
Working example for Use.
import { voice } from "@absolutejs/voice";
import { rime } from "@absolutejs/voice-rime";
const app = voice({
// ... stt + other voice options ...
tts: rime({
apiKey: process.env.RIME_API_KEY!,
speaker: "cove",
// optional:
modelId: "mistv2", // default; or 'mist' / 'arcana'
audioFormat: "pcm", // default; or 'mulaw' for telephony
sampleRate: 22_050, // default
speedAlpha: 1.0,
lang: "eng",
reduceLatency: true,
pauseBetweenBrackets: true,
phonemizeBetweenBrackets: true,
}),
});For telephony at 8 kHz μ-law:
rime({
apiKey,
speaker: "cove",
audioFormat: "mulaw",
});Supported entry points declared by this package manifest.
Package entry point declared in package.json.
Scripts declared by this package manifest.