Ditto Audio · Schema

CreateVoiceModelDto

Text-to-SpeechVoice PluginsAudiobooksNeural VoiceOn-Device AI

Properties

Name Type Description
slug string lowercase-kebab unique id
name string
description string
engine string
language string
quality string
gender object Who the voice sounds like: `female`, `male` or `neutral`. A label or alias (`woman`, `man`) is stored as its key; a word that names none is a 400 `VOICE_TAXONOMY`, like every word of the voice taxonom
accent object An accent of the voice taxonomy (GET /v1/models/taxonomy), when finer than what `language` says: `en-GB` is British already.
age object How old the voice sounds: `young`, `middle-aged` or `older` (a label is stored as its key).
styles array How it sounds: style keys of the voice taxonomy.
useCases array What it suits: use-case keys of the voice taxonomy.
taxonomySource string Who says the accent, styles and use cases of this request: the catalogue's record, a measurement of the audio, or the dataset the voice came from.
version string
format string
sampleRate number
author string
license string
sourceUrl string
tags array
coverImageUrl string
isPublic boolean
isFeatured boolean
isPremium boolean Premium voice — access gated by the subscriber tier quota (premiumModels).
baseSlug string For an overlay catalog voice (e.g. an XTTS studio speaker): the slug of the base XTTS voice whose heavy bundle this voice reuses. Only this voice’s latents are stored; the client loads the shared base
View JSON Schema on GitHub

JSON Schema

ditto-audio-create-voice-model-dto-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/ditto-audio/json-schema/ditto-audio-create-voice-model-dto-schema.json",
  "title": "CreateVoiceModelDto",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/ditto-audio-openapi.json#/components/schemas/CreateVoiceModelDto",
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "lowercase-kebab unique id"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "engine": {
      "type": "string",
      "enum": [
        "piper",
        "xtts",
        "kokoro",
        "pocket",
        "rvc",
        "system",
        "morpho"
      ]
    },
    "language": {
      "type": "string"
    },
    "quality": {
      "type": "string"
    },
    "gender": {
      "type": "object",
      "description": "Who the voice sounds like: `female`, `male` or `neutral`. A label or alias (`woman`, `man`) is stored as its key; a word that names none is a 400 `VOICE_TAXONOMY`, like every word of the voice taxonomy."
    },
    "accent": {
      "type": "object",
      "description": "An accent of the voice taxonomy (GET /v1/models/taxonomy), when finer than what `language` says: `en-GB` is British already."
    },
    "age": {
      "type": "object",
      "description": "How old the voice sounds: `young`, `middle-aged` or `older` (a label is stored as its key)."
    },
    "styles": {
      "description": "How it sounds: style keys of the voice taxonomy.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "useCases": {
      "description": "What it suits: use-case keys of the voice taxonomy.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "taxonomySource": {
      "type": "string",
      "enum": [
        "curated",
        "measured",
        "import"
      ],
      "default": "curated",
      "description": "Who says the accent, styles and use cases of this request: the catalogue's record, a measurement of the audio, or the dataset the voice came from."
    },
    "version": {
      "type": "string"
    },
    "format": {
      "type": "string"
    },
    "sampleRate": {
      "type": "number"
    },
    "author": {
      "type": "string"
    },
    "license": {
      "type": "string"
    },
    "sourceUrl": {
      "type": "string"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "coverImageUrl": {
      "type": "string"
    },
    "isPublic": {
      "type": "boolean",
      "default": true
    },
    "isFeatured": {
      "type": "boolean",
      "default": false
    },
    "isPremium": {
      "type": "boolean",
      "default": false,
      "description": "Premium voice — access gated by the subscriber tier quota (premiumModels)."
    },
    "baseSlug": {
      "type": "string",
      "description": "For an overlay catalog voice (e.g. an XTTS studio speaker): the slug of the base XTTS voice whose heavy bundle this voice reuses. Only this voice’s latents are stored; the client loads the shared base and swaps them in."
    }
  },
  "required": [
    "slug",
    "name",
    "engine"
  ]
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/ditto-audio-create-voice-model-dto"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.