docs
API

Audio

Markdown

Síntese de voz (TTS) e reconhecimento de voz (STT) no formato OpenAI Audio.

Guia completo
POSThttps://api.ailoot.ai/v1/audio/speech
Audio
# 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
200 OK · reconhecimento
{
  "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çalhos x-api-key ou x-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-hd e outros speech-…): identificador de voz MiniMax (letras latinas, algarismos, _ e -, até 128 caracteres). Em qwen-audio-3.0-tts-plus por predefinição longanlingxin, nos modelos Gemini TTS — Kore.

  • response_formatstringopcional

    MiniMax — apenas mp3; qwen-audio-3.0-tts-plus — mp3, wav ou pcm; Gemini TTS — wav ou json (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

POSThttps://api.ailoot.ai/v1/audio/transcriptions
  • filefileobrigatório

    Ficheiro de áudio WAV em multipart/form-data. qwen-asr, qwen-asr-latest e qwen-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."}}

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).

Ainda tem dúvidas? Envie o Request ID e uma descrição — ajudamos a esclarecer.Contactar o suporte