MASHBOX Voice
Maya1 by Maya Research, served by MASHBOX Labs.
Text to expressive speech in a voice you describe in plain words. Built on Maya1 by Maya Research.
- What you send
- text
- What you get
- speech
Our cost per second of speech: $0.000422. fal lists the same model at $0.002. Both read 23 October 2026.
Examples
TextNight, Grandpa. Couple more days, and it's somebody else's place.
TextI keep looking for the little red light. Isn't that silly.
TextHell with it. Bring your cans.
Parameters
| Name | Type | Allowed | Default |
|---|---|---|---|
input | string | up to 4096 characters | |
voice optional | string | up to 1000 characters |
1. Get a key
export MASHBOX_API_KEY=...2. Send the first request
curl https://inference.mashbox.gg/v1/audio/speech \
-H "Authorization: Bearer $MASHBOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "maya1", "input": "Hold the gate! They'\''re coming over the ridge.", "voice": {"description": "A gruff old blacksmith with a deep, slow voice."}, "response_format": "wav"}' \
--output speech.wavimport os, requests
r = requests.post(
"https://inference.mashbox.gg/v1/audio/speech",
headers={"Authorization": "Bearer " + os.environ["MASHBOX_API_KEY"]},
json={
"model": "maya1",
"input": "Hold the gate! They're coming over the ridge.",
"voice": {
"description": "A gruff old blacksmith with a deep, slow voice."
},
"response_format": "wav"
},
timeout=120,
)
r.raise_for_status()
open("speech.wav", "wb").write(r.content)import fs from "node:fs";
const r = await fetch("https://inference.mashbox.gg/v1/audio/speech", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.MASHBOX_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "maya1",
"input": "Hold the gate! They're coming over the ridge.",
"voice": {
"description": "A gruff old blacksmith with a deep, slow voice."
},
"response_format": "wav"
}),
});
fs.writeFileSync("speech.wav", Buffer.from(await r.arrayBuffer()));3. Get the result
The response is the audio file itself, here WAV at 24 kHz, sent as it is made.
Headers: Authorization: Bearer $MASHBOX_API_KEY and Content-Type: application/json. Model: maya1.
For approved evaluation accounts. The MASHBOX Voice demo plays here once your company is approved for a free evaluation.
Request access Approved already? This account is not approved yet.
Build a voice
24 kHz mono WAV, up to 120 seconds of audio. Streaming: coming soon.
More models
Speech to text, OpenAI-compatible.

Text to image.

An image and a prompt in, a video clip out.
Chat with streaming, OpenAI-compatible.