
Speech
- 107 installs
- Updated July 27, 2026
- drawcall-ai/speech
Turns text into spoken audio clips (with tone/voice control) for NPC dialogue, narration, tutorials, accessibility readouts, and UI voice lines.
About
Drawcall Speech converts text (up to ~1000 characters) into spoken audio clips, with optional style, tone, emotion and voice parameters, and returns an audio file URL. A solo builder reaches for it to add narration, NPC dialogue, tutorial voiceovers, accessibility readouts or UI voice lines without wiring up a TTS provider by hand, and its built-in caching keeps repeated requests cheap.
- Text-to-speech audio generation
- Tone, emotion and voice styling
- Built-in caching for repeated requests
- Great for NPC dialogue and narration
Speech by the numbers
- 107 all-time installs (skills.sh)
- Ranked #782 of 1,335 Generative Media skills by installs in the Skillselion catalog
- Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/drawcall-ai/speech --skill speechAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 107 |
|---|---|
| Last updated | July 27, 2026 |
| Repository | drawcall-ai/speech ↗ |
What it does
Turns text into spoken audio clips (with tone/voice control) for NPC dialogue, narration, tutorials, accessibility readouts, and UI voice lines.
Who is it for?
Adding spoken audio to apps, games and tutorials
Skip if: Long-form audiobooks (per-clip character limit)
When should I use this skill?
You need to turn text into a voice clip
What you get
- audio clip URL
Files
Speech
Use Drawcall Speech for spoken output: NPC dialogue, narration, tutorial voice, accessibility readouts, and UI voice lines. It turns text into an audio clip URL that an app can load and play.
Endpoint
Drawcall Speech turns text into an audio URL.
GET https://v1.speech.drawcall.ai/?text=Hello+world&voice=Ariatext: required, URL-encoded, trimmed, max 1000 chars.voice: optional, URL-encoded, defaults toRachel.- Response: audio file, usually
audio/mpeg. - Cache: generated clips are cached by text and voice; reuse identical URLs for repeatable playback.
- Errors: plain text
400for invalid input,502for generation failures.
First Request Delay
The first time a specific text and voice combination is requested, the endpoint has to generate the clip before it can serve it. That short delay can corrupt in-app behavior if a test expects instant playback, animation sync, or deterministic timing.
If that matters, warm the cache before testing by calling the endpoint once for each needed line and voice. Later requests for the same text and voice are cached and should be instant.
For tighter control, download and store the audio files locally, then serve them from the app. A good middle ground is a small speech script that predownloads every line while keeping the voice line text in one source file, so changing a line remains a single source change.
Examples
HTML audio:
<audio
controls
src="https://v1.speech.drawcall.ai/?text=Welcome+to+Drawcall&voice=Aria"
></audio>Three.js positional audio:
import * as THREE from "three";
const listener = new THREE.AudioListener();
camera.add(listener);
const speaker = new THREE.Object3D();
speaker.position.set(2, 1.5, -3);
scene.add(speaker);
const audio = new THREE.PositionalAudio(listener);
audio.setRefDistance(2);
audio.setRolloffFactor(1.5);
speaker.add(audio);
const text = encodeURIComponent("I am speaking from over here.");
const voice = encodeURIComponent("Roger");
new THREE.AudioLoader().load(
`https://v1.speech.drawcall.ai/?text=${text}&voice=${voice}`,
(buffer) => {
audio.setBuffer(buffer);
audio.setVolume(1);
audio.play();
},
);Voice
Known voices include Rachel, Aria, Roger, Sarah, Laura, Charlie, George, Callum, River, Liam, Charlotte, Alice, Matilda, Will, Jessica, Eric, Chris, Brian, Daniel, Lily, and Bill.
Browsers usually require a click/tap before audio can play. In UI, start playback from a user gesture and resume the audio context first if needed.