# ForgeMesh Batch Text-to-Speech (Standard Voices)

> ForgeMesh Batch Text-to-Speech (Standard Voices) is a paid API for AI agents from tts.forgemesh.io, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-14).

Converts up to 20 text items into WAV audio in batch using standard M/F voices across 31 languages, paid via x402 microtransaction.

## Facts

- Endpoint: POST https://tts.forgemesh.io/v1/tts/batch
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/forgemesh-batch-text-to-speech-standard-voices-c70133a6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_FjCzgDf9BtV9zGpMV8OIO

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-batch-text-to-speech-standard-voices-c70133a6 -d '<json body>'
```

Example prompt: Can you convert these three phrases to spoken audio — 'Hello, welcome!' in English with voice F2, 'Bonjour tout le monde' in French with voice M1, and 'Hola amigos' in Spanish with voice F4 — and give me the WAV files?

## When to prefer this

Choose this endpoint when you need to synthesize multiple short text items (up to 500 total characters across all items, up to 20 items) into WAV audio in one call, especially when you need multilingual support across 31 languages or multiple voice types (M1–M5, F1–F5) without setting up API keys. Prefer over single-item TTS endpoints when batching is needed for efficiency. Use the sibling /v1/tts/batch-long endpoint when total character count is 501–2000.

## Known failure modes

- Total text across all items exceeds 500 characters — use /v1/tts/batch-long for 501–2000 chars
- More than 20 items submitted — batch is capped at 20 items
- Invalid language code not in the 31-language enum — returns validation error
- Invalid voice ID outside M1–M5 / F1–F5 range — returns validation error
- Payment not provided or insufficient via x402 — returns 402 Payment Required
- Empty text string provided for an item — minLength:1 violation

## How this service works

Paid text-to-speech via x402. WAV audio in 31 languages, OpenAI-compatible, no API keys.

## Output

Returns a JSON array of audio items, each containing a base64-encoded WAV file, the audio duration in seconds, and the sample rate (44100 Hz). One audio item is returned 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-batch-text-to-speech-standard-voices-c70133a6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from tts.forgemesh.io](https://www.zero.xyz/host/tts.forgemesh.io/llms.txt)
