Speko Docs
API Reference

TTS Voices

Browse voices by measured quality (no hiss, steady to the end, repeatable, characters per call) and get the provider, model and voice ids to synthesize with.

GET
/v1/tts/voices

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Query Parameters

use_case?string

Expands to a bundle of quality requirements plus a capacity floor. Combine with quality to tighten it.

Value in"longform" | "phone"
quality?array<>

Repeatable, and repeats mean AND. GET /v1/tts/meta documents what each value asserts.

min_chars_per_call?integer

A floor. Returns voices that accept at least this much in one call.

Value in5000 | 7500 | 10000 | 20000
pace?string

An exact bucket. normal excludes brisk.

Value in"slow" | "normal" | "brisk" | "fast"
vendor?string
gender?string
Value in"male" | "female" | "neutral"
accent?string
language?string

Filter voices by supported language. Exact when a region is named, prefix otherwise.

model?string

Pin to one model id. Compatible voices are re-paired onto it, so use_with names the model you asked for rather than the vendor default, and voice_compatibility says whether that pairing is individually verified.

benchmark_language?string

Which language the embedded model benchmarks report.

Default"en"
sort?string

Measured voices sort before unmeasured ones on every axis except name, which is purely alphabetical. A voice with no value on the chosen axis sorts last in either direction.

Default"model_naturalness"
Value in"model_naturalness" | "latency" | "model_cost" | "pace" | "max_chars" | "name"
limit?integer
Default25
Range1 <= value <= 100
cursor?string

From a previous next_cursor. Tied to the filter and sort it was issued for; changing either returns INVALID_CURSOR instead of silently reshuffling the page.

include_unmeasured?string

Set false to drop voices that were never measured. Voices that were measured and cleared no label (verdict: measured_no_labels) are kept, since that is a result rather than a gap.

Default"true"
Value in"true" | "false" | "1" | "0"

Response Body

application/json

application/json

{
  "object": "string",
  "total": 0,
  "next_cursor": "string",
  "data": [
    {
      "id": "cartesia:f9836c6e-a0bd-460e-9d3c-f7299fa60f94",
      "vendor": "string",
      "voice_id": "string",
      "name": "string",
      "gender": "string",
      "accent": "string",
      "languages": [
        "string"
      ],
      "styles": [
        "string"
      ],
      "use_with": {
        "provider": "string",
        "model": "string",
        "voice": "string"
      },
      "model_id": "string",
      "voice_compatibility": "verified",
      "quality": {
        "verdict": "measured",
        "basis": "string",
        "labels": [
          "string"
        ],
        "summary": [
          "string"
        ],
        "max_chars_per_call": 0,
        "words_per_minute": 0
      },
      "why": {
        "best_for": [
          "string"
        ],
        "strengths": [
          "string"
        ],
        "weaknesses": [
          "string"
        ],
        "tradeoffs": [
          "string"
        ]
      }
    }
  ],
  "models": {
    "property1": {
      "id": "cartesia:sonic-3.5",
      "provider": "string",
      "model": "string",
      "routable": true,
      "routable_via": "platform_key",
      "benchmark": {
        "language": "string",
        "board": "string",
        "naturalness": {
          "value": 0,
          "unit": "string",
          "higher_is_better": true,
          "board": "string",
          "ci": [
            0
          ],
          "n": 0,
          "basis": "string",
          "unjudgeable": 0,
          "field_mean": 0,
          "comparable_across_languages": true,
          "estimated": true
        },
        "robustness": {
          "value": 0,
          "unit": "string",
          "higher_is_better": true,
          "board": "string",
          "ci": [
            0
          ],
          "n": 0,
          "basis": "string",
          "unjudgeable": 0,
          "field_mean": 0,
          "comparable_across_languages": true,
          "estimated": true
        },
        "panel_mos": {
          "value": 0,
          "unit": "string",
          "higher_is_better": true,
          "board": "string",
          "ci": [
            0
          ],
          "n": 0,
          "basis": "string",
          "unjudgeable": 0,
          "field_mean": 0,
          "comparable_across_languages": true,
          "estimated": true
        },
        "panel_named_pct": {
          "value": 0,
          "unit": "string",
          "higher_is_better": true,
          "board": "string",
          "ci": [
            0
          ],
          "n": 0,
          "basis": "string",
          "unjudgeable": 0,
          "field_mean": 0,
          "comparable_across_languages": true,
          "estimated": true
        },
        "latency_ms": 0,
        "latency_evidence": {
          "board": "string",
          "region": "string",
          "n": 0,
          "p90_ms": 0
        },
        "latency": {
          "vendor_direct": [
            {
              "region": "string",
              "location": "string",
              "p50_ms": 0,
              "p90_ms": 0
            }
          ],
          "per_language": [
            {
              "language": "string",
              "p50": 0,
              "p90": 0,
              "n": 0,
              "sweeps": 0,
              "wide_tail": true,
              "voice": "string"
            }
          ]
        },
        "cost": {
          "per_1m_chars_usd": 0,
          "per_min_usd": 0,
          "higher_is_better": true
        }
      },
      "languages": {
        "measured": [
          "string"
        ],
        "vendor_claimed": [
          "string"
        ],
        "count": 0
      },
      "voices": {
        "total": 0,
        "measured": 0,
        "compatibility": "verified"
      }
    },
    "property2": {
      "id": "cartesia:sonic-3.5",
      "provider": "string",
      "model": "string",
      "routable": true,
      "routable_via": "platform_key",
      "benchmark": {
        "language": "string",
        "board": "string",
        "naturalness": {
          "value": 0,
          "unit": "string",
          "higher_is_better": true,
          "board": "string",
          "ci": [
            0
          ],
          "n": 0,
          "basis": "string",
          "unjudgeable": 0,
          "field_mean": 0,
          "comparable_across_languages": true,
          "estimated": true
        },
        "robustness": {
          "value": 0,
          "unit": "string",
          "higher_is_better": true,
          "board": "string",
          "ci": [
            0
          ],
          "n": 0,
          "basis": "string",
          "unjudgeable": 0,
          "field_mean": 0,
          "comparable_across_languages": true,
          "estimated": true
        },
        "panel_mos": {
          "value": 0,
          "unit": "string",
          "higher_is_better": true,
          "board": "string",
          "ci": [
            0
          ],
          "n": 0,
          "basis": "string",
          "unjudgeable": 0,
          "field_mean": 0,
          "comparable_across_languages": true,
          "estimated": true
        },
        "panel_named_pct": {
          "value": 0,
          "unit": "string",
          "higher_is_better": true,
          "board": "string",
          "ci": [
            0
          ],
          "n": 0,
          "basis": "string",
          "unjudgeable": 0,
          "field_mean": 0,
          "comparable_across_languages": true,
          "estimated": true
        },
        "latency_ms": 0,
        "latency_evidence": {
          "board": "string",
          "region": "string",
          "n": 0,
          "p90_ms": 0
        },
        "latency": {
          "vendor_direct": [
            {
              "region": "string",
              "location": "string",
              "p50_ms": 0,
              "p90_ms": 0
            }
          ],
          "per_language": [
            {
              "language": "string",
              "p50": 0,
              "p90": 0,
              "n": 0,
              "sweeps": 0,
              "wide_tail": true,
              "voice": "string"
            }
          ]
        },
        "cost": {
          "per_1m_chars_usd": 0,
          "per_min_usd": 0,
          "higher_is_better": true
        }
      },
      "languages": {
        "measured": [
          "string"
        ],
        "vendor_claimed": [
          "string"
        ],
        "count": 0
      },
      "voices": {
        "total": 0,
        "measured": 0,
        "compatibility": "verified"
      }
    }
  },
  "facets": {
    "vendor": [
      {
        "value": "string",
        "count": 0
      }
    ],
    "accent": [
      {
        "value": "string",
        "count": 0
      }
    ],
    "quality": [
      {
        "value": "string",
        "label": "string",
        "count": 0
      }
    ]
  },
  "blockers": [
    {
      "param": "quality",
      "value": "string",
      "label": "string",
      "blocks": 0,
      "hint": "string",
      "sole_binding": true
    }
  ],
  "meta": {
    "benchmark": {
      "schema": 0,
      "routing_policy_version": "string"
    },
    "quality_overlay": {
      "generated_at": "string",
      "run_id": "string"
    },
    "org_routable_vendors": [
      "string"
    ],
    "coverage": {
      "models_routable": 0,
      "models_measured": 0,
      "voices_routable": 0,
      "voices_measured": 0
    },
    "notes": [
      "string"
    ]
  }
}
Empty
{
  "error": "Unauthorized",
  "code": "UNAUTHORIZED"
}