# ForgeMesh Voice Batch Long-Form TTS

> ForgeMesh Voice Batch Long-Form 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-14).

Converts a batch of up to 20 text items into spoken audio using persona voices across 31 languages, returning base64-encoded WAV audio for each item.

## Facts

- Endpoint: POST https://voice.forgemesh.io/v1/tts/batch-long
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/forgemesh-voice-batch-long-form-tts-81c27f4c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_US78F4cVNhfR3EJlHkzTf

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-long-form-tts-81c27f4c -d '<json body>'
```

Example prompt: Convert these 5 chapter summaries to speech using a warm male narrator voice in English and send back the audio: [chapter text 1], [chapter text 2], [chapter text 3], [chapter text 4], [chapter text 5].

## When to prefer this

Choose this endpoint when you need to synthesize multiple distinct text passages in a single API call (up to 20 items), especially for long-form content like book chapters, video scripts, or batched agent responses. Prefer this over single-item TTS endpoints when throughput efficiency matters and you want to minimize per-request overhead across many texts. Best suited for batch pipeline workflows where audio is consumed asynchronously.

## Known failure modes

- More than 20 items submitted — batch limit exceeded
- Unsupported language code — returns error for unrecognized lang value
- Invalid or non-base voice specified — persona voices not accepted in batch-long endpoint
- Payment failure via x402 — call not processed if USDC payment is rejected
- Empty text items — may return zero-duration audio or validation error
- Malformed items array — missing required text field causes schema validation failure

## How this service works

Batch text-to-speech: synthesize up to 20 text items in a single call, standard voices only, for 501-2000 total characters, returns JSON with base64 WAV audio plus duration and sample rate per item. Use it to: batch-voice a longer set of messages, produce audio for a multi-section script or FAQ, generate several paragraph-length voice clips in one request without repeated calls. USDC on Base via x402.

## Output

A JSON object containing an array of items, each with a base64-encoded WAV audio string, the audio duration in seconds, and the audio format label — one result per input text item.

## 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-long-form-tts-81c27f4c/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)
