---
title: "Generate Persona Voice ≤500 chars"
method: POST
path: "/v1/tts/custom"
---

# Generate Persona Voice ≤500 chars

`POST /v1/tts/custom`

## Request

- Base URL: `https://voice.forgemesh.io`
- URL: `https://voice.forgemesh.io/v1/tts/custom`
- Auth: none declared

Expressive text-to-speech in any of 20 voices: 10 standard (M1-M5, F1-F5) plus 10 personas (Storyteller, Narrator, Announcer, Urgent, Velvet, Sage, Spark, Anchor, Echo, Assistant), with speed and quality control, up to 500 characters, WAV output. Use it to: voice a game character, narrate a branded assistant reply, add a dramatic announcer line, give a chatbot personality-driven audio. USDC on Base.

## Request body

- object
  - `text` string, required: Text to synthesize. Use non-long routes for 1-500 chars and -long routes for 501-2000 chars.
  - `voice` 'M1' | 'M2' | 'M3' | 'M4' | 'M5' | 'F1' | 'F2' | 'F3' | 'F4' | 'F5' | 'Storyteller' | 'Narrator' | 'Announcer' | 'Assistant' | 'Urgent' | 'Sage' | 'Spark' | 'Anchor' | 'Velvet' | 'Echo': Standard voice or Custom-tier persona voice
  - `lang` 'en' | 'ko' | 'ja' | 'ar' | 'bg' | 'cs' | 'da' | 'de' | 'el' | 'es' | 'et' | 'fi' | 'fr' | 'hi' | 'hr' | 'hu' | 'id' | 'it' | 'lt' | 'lv' | 'nl' | 'pl' | 'pt' | 'ro' | 'ru' | 'sk' | 'sl' | 'sv' | 'tr' | 'uk' | 'vi': Language code; 31 languages supported
  - `speed` number: Pro/Custom expressive control, 0.7-2.0. Presets: slow 0.7, normal 1.0, fast 1.3, rapid 1.6
  - `steps` integer: Pro/Custom quality control, 1-100. Presets: draft 4, standard 8, high 16, ultra 24

## Response `200`

Successful synthesis response

## Other responses

- `400`: Invalid request or wrong pricing bucket
- `402`: Payment Required

---

[API](https://skmtc.dev/forgemesh/apis/text-to-speech-voice-generation.md) · [All operations](https://skmtc.dev/forgemesh/apis/text-to-speech-voice-generation/llms.txt) · [OpenAPI document](https://skmtc.dev/forgemesh/apis/text-to-speech-voice-generation/revisions/e4ba35932ef4?raw)
