POST /v1/audio/speech reads text aloud and returns the audio in the response body, like OpenAI’s speech endpoint. It is synchronous: there is no job to poll.
Content-Type: audio/wav) with these headers:
With the OpenAI SDK:
Parameters
Values are matched case-insensitively. A value the model doesn’t list returns
400 unsupported_value with the allowed values; text over the limit returns 400 input_too_long. Other OpenAI fields, such as speed and instructions, are not supported and return 400 unsupported_parameter.
Voices
Voices, languages, formats and the length limit are in the model’sgeneration_config:
voice.options describes each voice: its dialect, gender and display names.
Look up a call
GET /v1/generations/{id} with the x-geekidea-id value returns the call with its usage and a signed link to the audio:
Pricing
Speech is priced per 1,000 characters: cost = price × billed characters / 1,000. The billed count is the one reported by the model provider, which may count a Chinese character as two; when the provider doesn’t report it, the number of characters ininput is used. The hold assumes twice the input length, and you are charged the actual cost. See Billing.