{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/neurall-io/json-schema/neurall-io-voice-schema.json",
  "title": "Voice",
  "description": "A voice this project can speak with. `owner: neurall` is a catalog voice, ready to use and identical for every caller. `owner: project` is one of the project's own clones, which carries the same status lifecycle as a Generation while it trains. A voice's own id is what goes in `args.voiceId`.\n",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/neurall-io-openapi.json#/components/schemas/Voice",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "owner": {
      "type": "string",
      "enum": [
        "neurall",
        "project"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "running",
        "done",
        "error"
      ]
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "slug": {
      "type": "string",
      "description": "Catalog voices only. Stable handle, safe to hardcode; accepted anywhere the uuid is."
    },
    "tags": {
      "type": "array",
      "description": "Catalog voices only. Lowercase descriptors: gender, age, accent, style, plus the category (narration, conversational, character, creature).",
      "items": {
        "type": "string"
      }
    },
    "locale": {
      "type": "string",
      "description": "Catalog voices only"
    },
    "favorite": {
      "type": "boolean",
      "description": "Catalog voices only, whether this project starred it"
    },
    "preview": {
      "type": "string",
      "description": "Catalog voices only, a presigned audition clip (expires after ~6 hours)"
    },
    "error": {
      "type": "string"
    },
    "requestDate": {
      "type": "string"
    },
    "responseDate": {
      "type": "string"
    }
  }
}