{
  "openapi": "3.1.0",
  "info": {
    "title": "Create speech API",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.cometapi.com"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "paths": {
    "/v1/audio/speech": {
      "post": {
        "summary": "Create speech",
        "operationId": "create_speech",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "model",
                  "input",
                  "voice"
                ],
                "properties": {
                  "model": {
                    "type": "string",
                    "description": "The TTS model to use. Choose a current speech model from the [Models page](/overview/models).",
                    "default": "tts-1"
                  },
                  "input": {
                    "type": "string",
                    "description": "The text to generate audio for. Maximum length is 4096 characters.",
                    "maxLength": 4096
                  },
                  "voice": {
                    "type": "string",
                    "description": "The voice to use for speech synthesis.",
                    "enum": [
                      "alloy",
                      "ash",
                      "ballad",
                      "coral",
                      "echo",
                      "fable",
                      "onyx",
                      "nova",
                      "sage",
                      "shimmer"
                    ],
                    "default": "alloy"
                  },
                  "response_format": {
                    "type": "string",
                    "description": "The audio output format.",
                    "enum": [
                      "mp3",
                      "opus",
                      "aac",
                      "flac",
                      "wav",
                      "pcm"
                    ],
                    "default": "mp3"
                  },
                  "speed": {
                    "type": "number",
                    "description": "The speed of the generated audio. Select a value between 0.25 and 4.0.",
                    "minimum": 0.25,
                    "maximum": 4.0,
                    "default": 1.0
                  }
                }
              },
              "examples": {
                "Default": {
                  "summary": "Standard TTS (tts-1)",
                  "value": {
                    "model": "tts-1",
                    "input": "The quick brown fox jumped over the lazy dog.",
                    "voice": "alloy"
                  }
                },
                "gpt_4o_mini_tts": {
                  "summary": "GPT-4o mini TTS (gpt-4o-mini-tts)",
                  "value": {
                    "model": "gpt-4o-mini-tts",
                    "input": "The quick brown fox jumped over the lazy dog.",
                    "voice": "alloy"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The audio file content.",
            "content": {
              "audio/mpeg": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "python",
            "label": "Create speech",
            "source": "import os\nfrom openai import OpenAI\n\nclient = OpenAI(\n    api_key=os.environ[\"COMETAPI_KEY\"],\n    base_url=\"https://api.cometapi.com/v1\"\n)\n\nresponse = client.audio.speech.create(\n    model=\"tts-1\",\n    voice=\"alloy\",\n    input=\"The quick brown fox jumped over the lazy dog.\"\n)\n\nresponse.stream_to_file(\"output.mp3\")"
          },
          {
            "lang": "javascript",
            "label": "Create speech",
            "source": "import OpenAI from \"openai\";\nimport fs from \"fs\";\n\nconst client = new OpenAI({\n  apiKey: process.env.COMETAPI_KEY,\n  baseURL: \"https://api.cometapi.com/v1\"\n});\n\nconst response = await client.audio.speech.create({\n  model: \"tts-1\",\n  voice: \"alloy\",\n  input: \"The quick brown fox jumped over the lazy dog.\"\n});\n\nconst buffer = Buffer.from(await response.arrayBuffer());\nfs.writeFileSync(\"output.mp3\", buffer);"
          },
          {
            "lang": "shell",
            "label": "Create speech",
            "source": "curl -X POST https://api.cometapi.com/v1/audio/speech \\\n  -H \"Authorization: Bearer $COMETAPI_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"tts-1\",\n    \"input\": \"The quick brown fox jumped over the lazy dog.\",\n    \"voice\": \"alloy\"\n  }' \\\n  --output output.mp3"
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Bearer token authentication. Use your CometAPI key."
      }
    }
  }
}
