# ForgeMesh Voice Batch TTS

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

Converts an array of text items into speech audio in parallel, using persona voices across 31 languages, billed per call via x402 micropayments.

## Facts

- Endpoint: POST https://voice.forgemesh.io/v1/tts/batch
- Price: $0.002/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-batch-tts-c6e33a8a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_idwa0cfGO48N2rGTiqS_F

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-batch-tts-c6e33a8a -d '<json body>'
```

Example prompt: Convert these 5 narration lines to speech using the 'sage' persona voice in Spanish, and send me back WAV audio for each: 'Bienvenidos', 'Esta es su guía', 'Por favor siga las instrucciones', 'Gracias por su atención', 'Hasta luego'.

## When to prefer this

Choose this endpoint when you need to synthesize multiple text segments into speech in a single round-trip, especially when multilingual output or persona voices are required. It is ideal for AI agents generating spoken responses, video narration pipelines, audiobook production, or any workflow where batching reduces latency and cost compared to sequential single-item TTS calls.

## Known failure modes

- Exceeding 20 items in the array returns a validation error
- Invalid or unsupported language code causes a rejection
- Unsupported voice persona name results in an error
- Payment failure via x402 prevents the request from being processed
- Malformed items array (missing 'text' field) returns a schema error

## How this service works

Batch text-to-speech: synthesize up to 20 separate text items in a single call, standard voices only, up to 500 total characters, returns JSON with base64 WAV audio plus duration and sample rate per item. Use it to: voice a list of short UI strings at once, generate audio for multiple notification templates, batch-produce voice lines for a menu or form, synthesize several short replies in one request. USDC on Base via x402.

## Output

A JSON object containing an 'items' array where each element includes the audio encoded as a base64 WAV string, the duration in seconds, and the format label ('wav'). One result per input text item, in order.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "items": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "text"
    ],
    "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 for this batch item"
     },
     "voice": {
      "enum": [
       "M1",
       "M2",
       "M3",
       "M4",
       "M5",
       "F1",
       "F2",
       "F3",
       "F4",
       "F5"
      ],
      "type": "string",
      "description": "Standard voice: M1-M5 or F1-F5"
     }
    },
    "additionalProperties": false
   },
   "maxItems": 20,
   "minItems": 1,
   "description": "Array of standard-voice text items. Total text across all items must be <= 2000 characters; use /v1/tts/batch for <=500 total chars and /v1/tts/batch-long for 501-2000 total chars."
  },
  "defaults": {
   "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"
    },
    "voice": {
     "enum": [
      "M1",
      "M2",
      "M3",
      "M4",
      "M5",
      "F1",
      "F2",
      "F3",
      "F4",
      "F5"
     ],
     "type": "string",
     "description": "Standard voice: M1-M5 or F1-F5"
    }
   },
   "description": "Default standard voice and language for all items",
   "additionalProperties": false
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "items": [
   {
    "format": "wav",
    "duration_s": 1.5,
    "sample_rate": 44100,
    "audio_base64": "..."
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/forgemesh-voice-batch-tts-c6e33a8a/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)
