diff --git a/.speakeasy/in.openapi.yaml b/.speakeasy/in.openapi.yaml index a8f74a9d..769bf55d 100644 --- a/.speakeasy/in.openapi.yaml +++ b/.speakeasy/in.openapi.yaml @@ -20303,6 +20303,7 @@ components: - 'top_p' - 'max_tokens' supports_implicit_caching: true + supports_voice_cloning: false tag: 'openai' throughput_last_30m: p50: 45.2 @@ -20404,6 +20405,10 @@ components: type: 'array' supports_implicit_caching: type: 'boolean' + supports_voice_cloning: + default: false + description: 'Whether this TTS endpoint accepts inline reference audio (`input_references`) for stateless voice cloning. Requests carrying reference audio are only routed to endpoints where this is true.' + type: 'boolean' tag: type: 'string' throughput_last_30m: @@ -21836,6 +21841,68 @@ components: oneOf: - $ref: '#/components/schemas/ContainerAutoEnvironment' - $ref: '#/components/schemas/ContainerReferenceEnvironment' + SpeechInputReference: + description: 'Reference content part for stateless voice cloning' + discriminator: + mapping: + input_audio: '#/components/schemas/SpeechInputReferenceAudio' + text: '#/components/schemas/SpeechInputReferenceText' + propertyName: 'type' + oneOf: + - $ref: '#/components/schemas/SpeechInputReferenceAudio' + - $ref: '#/components/schemas/SpeechInputReferenceText' + SpeechInputReferenceAudio: + description: 'Reference audio input for stateless voice cloning' + example: + input_audio: + data: 'data:audio/wav;base64,UklGRuQXDABXQVZF...' + type: 'input_audio' + properties: + input_audio: + $ref: '#/components/schemas/SpeechInputReferenceAudioInput' + type: + enum: + - 'input_audio' + type: 'string' + required: + - 'type' + - 'input_audio' + type: 'object' + SpeechInputReferenceAudioInput: + description: 'Reference audio input object' + properties: + data: + description: 'Base64-encoded reference audio (optionally a data URI). Supported audio formats are provider-specific. Limited to 20 MiB of base64 (15 MiB of decoded audio).' + example: 'data:audio/wav;base64,UklGRuQXDABXQVZF...' + maxLength: 20971520 + minLength: 1 + type: 'string' + format: + description: 'Audio format of the reference audio (e.g., wav, mp3). Optional; most providers detect the format from the audio bytes.' + example: 'wav' + type: 'string' + required: + - 'data' + type: 'object' + SpeechInputReferenceText: + description: 'Transcript of the accompanying reference audio' + example: + text: 'I used to rule the world.' + type: 'text' + properties: + text: + description: 'Transcript of the accompanying reference audio.' + example: 'I used to rule the world.' + maxLength: 10000 + type: 'string' + type: + enum: + - 'text' + type: 'string' + required: + - 'type' + - 'text' + type: 'object' SpeechRequest: description: 'Text-to-speech request input' example: @@ -21849,6 +21916,17 @@ components: description: 'Text to synthesize' example: 'Hello world' type: 'string' + input_references: + description: 'Reference content for stateless voice cloning: one `input_audio` part carrying the voice sample, optionally accompanied by one `text` part with its transcript. Only routed to endpoints that support voice cloning.' + example: + - input_audio: + data: 'data:audio/wav;base64,UklGRuQXDABXQVZF...' + type: 'input_audio' + - text: 'I used to rule the world.' + type: 'text' + items: + $ref: '#/components/schemas/SpeechInputReference' + type: 'array' model: description: 'TTS model identifier' example: 'mistralai/voxtral-mini-tts-2603' @@ -28169,6 +28247,7 @@ paths: - 'top_p' - 'max_tokens' supports_implicit_caching: true + supports_voice_cloning: false tag: 'openai' throughput_last_30m: p50: 45.2 @@ -28205,6 +28284,7 @@ paths: - 'top_p' - 'max_tokens' supports_implicit_caching: true + supports_voice_cloning: false tag: 'openai' throughput_last_30m: p50: 45.2