# ForgeMesh Voice Custom TTS

> ForgeMesh Voice Custom TTS is a paid API for AI agents from voice.forgemesh.io, paid per call via x402, $0.005/call, status unknown (last checked 2026-09-13).

Converts text to speech using persona voices or generic voices across 31 languages, returning a WAV audio file, billed per call via x402 micropayments.

## Facts

- Endpoint: POST https://voice.forgemesh.io/v1/tts/custom
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/forgemesh-voice-custom-tts-4fbe97b0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_y-_5f7hwxEAygKXaFEDaN

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability forgemesh-voice-custom-tts-4fbe97b0 -d '<json body>'
```

Example prompt: Read this out loud using the Storyteller persona voice in English: 'Welcome to the future of storytelling — where every word comes alive.' Use a speed of 1.2 and 8 diffusion steps.

## When to prefer this

Choose this endpoint when you need pay-per-call text-to-speech with no subscription, want persona voices like Storyteller or Narrator, need multilingual support across 31 languages, or want OpenAI-compatible speech requests with x402 micropayment billing — ideal for AI agents, apps, or content creators needing on-demand voice without upfront commitments.

## Known failure modes

- Text exceeds 2000 character limit — request rejected
- Invalid or unsupported ISO language code — synthesis fails
- Invalid voice identifier (not M1-M5, F1-F5, or a valid persona name) — error returned
- Speed value outside 0.7-2.0 range — rejected for Pro tier
- Diffusion steps outside 1-100 range — rejected
- Payment not provided or insufficient USDC — 402 Payment Required returned
- Service unavailable or timeout for long texts

## How this service works

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.

## Output

A 44.1kHz 16-bit mono WAV audio file containing the synthesized speech for the submitted text, returned as audio/wav content.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "lang": {
   "enum": [
    "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"
   ],
   "type": "string",
   "description": "Language code; 31 languages supported"
  },
  "text": {
   "type": "string",
   "maxLength": 2000,
   "minLength": 1,
   "description": "Text to synthesize into speech, max 2000 characters. Use non-long routes for 1-500 chars and -long routes for 501-2000 chars."
  },
  "speed": {
   "type": "number",
   "maximum": 2,
   "minimum": 0.7,
   "description": "Pro/Custom expressive speed control, 0.7-2.0. Presets: slow 0.7, normal 1.0, fast 1.3, rapid 1.6"
  },
  "steps": {
   "type": "integer",
   "maximum": 100,
   "minimum": 1,
   "description": "Pro/Custom quality control, 1-100. Presets: draft 4, standard 8, high 16, ultra 24"
  },
  "voice": {
   "enum": [
    "M1",
    "M2",
    "M3",
    "M4",
    "M5",
    "F1",
    "F2",
    "F3",
    "F4",
    "F5",
    "Storyteller",
    "Narrator",
    "Announcer",
    "Assistant",
    "Urgent",
    "Sage",
    "Spark",
    "Anchor",
    "Velvet",
    "Echo"
   ],
   "type": "string",
   "description": "Voice name. Standard voices M1-M5/F1-F5; persona voices require Custom tier."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "description": "44.1kHz 16-bit mono WAV speech audio returned inline",
  "content_type": "audio/wav"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/forgemesh-voice-custom-tts-4fbe97b0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from voice.forgemesh.io](https://www.zero.xyz/host/voice.forgemesh.io/llms.txt)
