# ZeroClick Text-to-Speech (chatterbox-nano)

> ZeroClick Text-to-Speech (chatterbox-nano) is a paid API for AI agents from agents.zerogpu.ai, paid per call via MPP, price unknown, status unknown (last checked 2026-10-16).

Converts text to spoken audio using the chatterbox-nano model, with optional voice cloning from a sample, returning a binary audio stream.

## Facts

- Endpoint: POST https://agents.zerogpu.ai/zeroclick/v1/audio/speech?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-16
- Activations on Zero: 0
- Provider: agents.zerogpu.ai
- Website: https://agents.zerogpu.ai
- Canonical page: https://www.zero.xyz/c/agents-zerogpu-ai-zeroclick-text-to-speech-chatterbox-nano-5d8887c9
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_K_7xCCPYAljZ7Uv5kFh4B

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 agents-zerogpu-ai-zeroclick-text-to-speech-chatterbox-nano-5d8887c9 -d '<json body>'
```

Example prompt: Read this aloud and give me an mp3: 'Welcome to our platform! We're thrilled to have you here.' — use the nova voice and keep the tone natural.

## When to prefer this

Choose this endpoint when you need ZeroClick HMAC-authenticated text-to-speech using the chatterbox-nano model, especially when voice cloning from a sample is required or when operating within a ZeroGPU agent workflow that already manages zc-signature authentication. Prefer this over the unauthenticated /v1/audio/speech when acting as a ZeroClick-proxied agent. It supports OpenAI-compatible voice names and output formats, making it a drop-in for OpenAI TTS workflows.

## Known failure modes

- Invalid or missing zc-signature HMAC → 401 Unauthorized
- Input text exceeds 2000 characters → 422 Validation Error
- Insufficient credit balance for at least 1 audio second → 402 Payment Required
- Malformed multipart voice_sample → 400 Bad Request
- Model unavailable or overloaded → 503 Service Unavailable

## How this service works

Text-to-speech, with optional voice cloning from a `voice_sample` sent as
multipart. The body is streamed upstream unread, so the model is the configured `chatterbox-nano`
rather than one read from the request. Billed per audio second: the allowance
check asks for the 1-second floor, and `zc-usage` reports
`max(1, ceil(x-audio-duration-seconds))` audio seconds on success.

Authenticated by verifying the `zc-signature` HMAC over the raw
request bytes; the same orchestration as `/v1/audio/speech` runs behind it.


## Output

A binary audio stream in the requested format (mp3, opus, aac, flac, wav, or pcm). PCM is raw 16-bit little-endian mono at 24 kHz. The response header x-audio-duration-seconds indicates the length, and billing is computed as max(1, ceil(duration)) audio seconds.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "input"
 ],
 "properties": {
  "seed": {
   "type": "integer",
   "example": 1234,
   "maximum": 4294967295,
   "minimum": 0,
   "description": "Pins sampling for repeatable output (best-effort)."
  },
  "input": {
   "type": "string",
   "format": "textarea",
   "example": "Testing model to generate voice. Hey how are you today?",
   "maxLength": 2000,
   "minLength": 1,
   "description": "The text to speak. Inline tags such as `[laugh]` and `[cough]` add paralinguistic cues."
  },
  "model": {
   "enum": [
    "chatterbox-nano"
   ],
   "type": "string",
   "default": "chatterbox-nano",
   "example": "chatterbox-nano",
   "description": "Model identifier. The endpoint serves `chatterbox-nano`."
  },
  "top_k": {
   "type": "integer",
   "default": 1000,
   "maximum": 10000,
   "minimum": 0,
   "description": "Top-k sampling."
  },
  "top_p": {
   "type": "number",
   "default": 0.95,
   "maximum": 1,
   "minimum": 0,
   "description": "Nucleus sampling."
  },
  "voice": {
   "enum": [
    "default",
    "builtin",
    "chatterbox",
    "alloy",
    "ash",
    "ballad",
    "cedar",
    "coral",
    "echo",
    "fable",
    "marin",
    "nova",
    "onyx",
    "sage",
    "shimmer",
    "verse"
   ],
   "type": "string",
   "default": "default",
   "example": "default",
   "description": "OpenAI voice names are accepted and all map to the built-in voice."
  },
  "temperature": {
   "type": "number",
   "default": 0.8,
   "maximum": 2,
   "minimum": 0,
   "description": "Sampling temperature."
  },
  "response_format": {
   "enum": [
    "mp3",
    "opus",
    "aac",
    "flac",
    "wav",
    "pcm"
   ],
   "type": "string",
   "default": "mp3",
   "example": "mp3",
   "description": "`pcm` is raw 16-bit little-endian mono at 24 kHz."
  },
  "repetition_penalty": {
   "type": "number",
   "default": 1.2,
   "maximum": 4,
   "minimum": 1,
   "description": "Penalty on repeated speech tokens."
  }
 },
 "description": "JSON body, as the OpenAI SDKs send it. Use `multipart/form-data` to attach a `voice_sample`."
}
```

## Response schema (JSON Schema)

```json
{
 "type": "string",
 "format": "binary"
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-zerogpu-ai-zeroclick-text-to-speech-chatterbox-nano-5d8887c9/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.zerogpu.ai](https://www.zero.xyz/host/agents.zerogpu.ai/llms.txt)
