Audio
MarkdownSíntese de voz (TTS) e reconhecimento de voz (STT) no formato OpenAI Audio.
Guia completo
https://api.ailoot.ai/v1/audio/speech# síntese de voz
curl https://api.ailoot.ai/v1/audio/speech \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "qwen-audio-3.0-tts-plus", "input": "Bom dia! Este é um exemplo de síntese de voz.", "voice": "longanlingxin"}' \
--output speech.mp3
# reconhecimento
curl https://api.ailoot.ai/v1/audio/transcriptions \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-F model=qwen-asr \
-F file=@meeting.wav# reconhecimento de voz
with open("meeting.wav", "rb") as f:
tr = client.audio.transcriptions.create(model="qwen-asr", file=f)
print(tr.text){
"text": "Bom dia, colegas. Comecemos pelos resultados da semana…"
}Autorização
- Authorizationheaderobrigatório
Chave no formato
Bearer sk-…. Também são aceites os cabeçalhosx-api-keyoux-goog-api-key.
Síntese de voz: corpo do pedido
- modelstringobrigatório
Modelo de síntese de voz:
gemini-3.8-flash-tts,qwen-audio-3.0-tts-plus,speech-2.8-turbo,gemini-3.8-flash-lite-tts,speech-2.8-hd,gemini-3.1-flash-tts-preview,speech-2.6-turbo,speech-2.6-hd,speech-02-turbo,speech-02-hd. - inputstringobrigatório
Texto para síntese de voz. Nos modelos MiniMax — menos de 10 000 caracteres; em
qwen-audio-3.0-tts-plus— até 600. - voicestring
Voz. Obrigatório para os modelos MiniMax (
speech-2.8-hde outrosspeech-…): identificador de voz MiniMax (letras latinas, algarismos,_e-, até 128 caracteres). Emqwen-audio-3.0-tts-pluspor predefiniçãolonganlingxin, nos modelos Gemini TTS —Kore. - response_formatstringopcional
MiniMax — apenas
mp3;qwen-audio-3.0-tts-plus—mp3,wavoupcm; Gemini TTS —wavoujson(ligação para o ficheiro).
A resposta é um ficheiro de áudio (no MiniMax — audio/mpeg). A cobrança é por caracteres de texto ou por tokens, conforme indicado no catálogo.
Reconhecimento de voz
https://api.ailoot.ai/v1/audio/transcriptions- filefileobrigatório
Ficheiro de áudio WAV em
multipart/form-data.qwen-asr,qwen-asr-latesteqwen-audio-3.0-asr-flash: PCM WAV completo, sem compressão, até 5 minutos, ficheiro até cerca de 7,5 MB (em base64 — até 10 MB).asr-1.0: PCM WAV até 500 segundos e 50 MB.gemini-3.5-transcribe: WAV até 64 MB. - modelstringobrigatório
Modelo de reconhecimento:
gemini-3.5-transcribe,qwen-audio-3.0-asr-flash,asr-1.0. - response_formatstringopcional
Apenas
json(ou omitir).
O campo language não é utilizado por estes modelos. Resposta: {"text": "…"}. A cobrança é pela duração da gravação (segundos, minutos ou horas — cada modelo tem a sua unidade).
Voz em tempo real
Para qwen-audio-3.0-realtime-plus abra o WebSocket wss://api.ailoot.ai/v1/realtime?model=qwen-audio-3.0-realtime-plus com o cabeçalho Authorization: Bearer <API_KEY>. Envie a chave a partir do servidor: a chave não é aceite na query string. Aguarde session.created com o modelo selecionado e, em seguida, envie as definições, a mensagem e response.create. Seguem-se três tramas de texto JSON consecutivas para obter uma resposta de texto numa sessão de áudio:
{"type":"session.update","session":{"modalities":["text"],"turn_detection":null,"max_history_turns":20,"instructions":"Seja breve."}}{"type":"conversation.item.create","item":{"type":"message","role":"user","content":[{"type":"input_text","text":"Diga sim."}]}}{"type":"response.create"}Leia os eventos de resposta até response.done e os dados finais de utilização; os erros chegam através do evento error. A cobrança é pelos tokens de texto e áudio de cada resposta confirmada. Entrada de áudio: evento input_audio_buffer.append com audio — base64 PCM16 mono 16 kHz; depois input_audio_buffer.commit e response.create. Saída de áudio — PCM16 mono 24 kHz. Não são aceites tramas binárias nesta sessão.
Eventos de cliente suportados: session.update, input_audio_buffer.append/commit/clear, response.create/cancel, conversation.item.create/retrieve/delete. Os conversation items aceitam apenas mensagens/texto; function tools, web search e voiceprint não são suportados. Limites da sessão: 600 segundos, 20 respostas, 20 history turns, 2000 bytes de instructions e 8000 bytes de texto do cliente. O idle timeout depende da configuração (por predefinição, 60 segundos).