# HALOWERK TTS Dialogue — Multi-Speaker Audio Generation

> HALOWERK TTS Dialogue — Multi-Speaker Audio Generation is a paid API for AI agents from medien.halowerk.com, paid per call via x402, $0.07/call, status unknown (last checked 2026-10-31).

Converts a multi-speaker script (up to 200 lines) into a single audio file where each speaker role gets its own distinct voice, with configurable pauses between lines and SRT subtitle output included.

## Facts

- Endpoint: POST https://medien.halowerk.com/v1/tts-dialogue?utm_source=zero.xyz
- Price: $0.07/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/halowerk-tts-dialogue-multi-speaker-audio-generation-f48c94ef
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_v7eYKB1F8OPoUoBGeUzw_

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 halowerk-tts-dialogue-multi-speaker-audio-generation-f48c94ef -d '<json body>'
```

Example prompt: Turn this two-character English dialogue script into an MP3 — assign different voices to 'Alice' and 'Bob' automatically, and add a 0.8-second pause between each line. The script has 12 lines total. I also need the SRT file for captions.

## When to prefer this

Choose this endpoint when you need a single audio file that preserves multiple speaker identities in a scripted dialogue — not just a flat single-voice narration. It is ideal when you have a structured script with named roles, need SRT captions synchronized to each line, or want per-line timestamps for media production. Prefer it over single-speaker TTS when the content involves conversation, interviews, dramatic scenes, or any multi-character narrative where voice differentiation matters.

## Known failure modes

- Script exceeds 200 lines or 12,000 characters — request rejected
- Individual line text exceeds 1,500 characters — validation error
- Unsupported language code provided — enum validation failure
- Specified voice ID for a role does not exist or is incompatible with the chosen language
- Payment not completed or insufficient USDC balance — x402 payment required error
- Empty lines array submitted — minItems constraint violation
- pause_seconds out of range (below 0 or above 3) — validation error

## How this service works

Takes a script of up to 200 lines (together up to 12,000 characters), each with a speaker role and text, and returns one audio file: every role gets its own voice — assigned automatically from the voices of the chosen language, or set per role — and lines are separated by a pause you choose. Returned with the file are the start and end time of every line and an SRT, so the dialogue can be shown along. Languages: English, German, Spanish, French, Italian, Dutch, Japanese.

## Output

Returns a single audio file (MP3, Opus, or WAV) of the full dialogue with each speaker voiced distinctly, plus a JSON payload containing the start and end timestamp of every script line and a full SRT subtitle file for caption display.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "lines": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "speaker",
     "text"
    ],
    "properties": {
     "text": {
      "type": "string",
      "maxLength": 1500,
      "minLength": 1
     },
     "speaker": {
      "type": "string",
      "maxLength": 40,
      "minLength": 1
     }
    },
    "additionalProperties": false
   },
   "maxItems": 200,
   "minItems": 1
  },
  "voices": {
   "type": "object",
   "description": "Optional voice per role, e.g. {\"Anna\": \"aura-2-aurelia-de\"}.",
   "maxProperties": 8,
   "additionalProperties": {
    "type": "string",
    "maxLength": 60
   }
  },
  "language": {
   "enum": [
    "en",
    "de",
    "es",
    "fr",
    "it",
    "nl",
    "ja"
   ],
   "type": "string"
  },
  "output_format": {
   "enum": [
    "mp3",
    "opus",
    "wav"
   ],
   "type": "string",
   "default": "mp3"
  },
  "pause_seconds": {
   "type": "number",
   "default": 0.5,
   "maximum": 3,
   "minimum": 0
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/halowerk-tts-dialogue-multi-speaker-audio-generation-f48c94ef/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from medien.halowerk.com](https://www.zero.xyz/host/medien.halowerk.com/llms.txt)
