Source: https://ailoot.ai/docs/pt-pt/api/audio/
Canonical: https://ailoot.ai/docs/pt-pt/api/audio/
Language: pt-pt

[API](https://ailoot.ai/docs/pt-pt/) 

# Audio

[Markdown](https://ailoot.ai/docs/pt-pt/api/audio/index.md)

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

POST`https://api.ailoot.ai/v1/audio/speech`

Audio

```bash
# 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
```

```python
# reconhecimento de voz
with open("meeting.wav", "rb") as f:
    tr = client.audio.transcriptions.create(model="qwen-asr", file=f)
print(tr.text)
```

200 OK · reconhecimento

```json
{
  "text": "Bom dia, colegas. Comecemos pelos resultados da semana…"
}
```

## Autorização

| Parâmetro | Tipo | Obrigatório | Descrição |
| --- | --- | --- | --- |
| `Authorization` | header | obrigató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

| Parâmetro | Tipo | Obrigatório | Descrição |
| --- | --- | --- | --- |
| `model` | string | obrigató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`. |
| `input` | string | obrigatório | Texto para síntese de voz. Nos modelos MiniMax — menos de 10 000 caracteres; em `qwen-audio-3.0-tts-plus` — até 600. |
| `voice` | string |  | 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_format` | string | opcional | 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

POST`https://api.ailoot.ai/v1/audio/transcriptions`

| Parâmetro | Tipo | Obrigatório | Descrição |
| --- | --- | --- | --- |
| `file` | file | obrigató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. |
| `model` | string | obrigatório | Modelo de reconhecimento: `gemini-3.5-transcribe`, `qwen-audio-3.0-asr-flash`, `asr-1.0`. |
| `response_format` | string | opcional | 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:

```json
{"type":"session.update","session":{"modalities":["text"],"turn_detection":null,"max_history_turns":20,"instructions":"Seja breve."}}
```

```json
{"type":"conversation.item.create","item":{"type":"message","role":"user","content":[{"type":"input_text","text":"Diga sim."}]}}
```

```json
{"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).

Aqui é descrito o modo de voz de `qwen-audio-3.0-realtime-plus`; os outros modelos em tempo real têm regras próprias. O caminho `/v1/realtime/sessions` e os tokens temporários (ephemeral tokens) não são suportados.

Ainda tem dúvidas? Envie o Request ID e uma descrição — ajudamos a esclarecer.[Contactar o suporte](mailto:support@ailoot.ai)

## Ailoot · A empresa e a sua carteira de projetos





A Ailoot assenta numa experiência operacional consolidada, numa ampla base de clientes, num serviço estável e no acompanhamento contínuo dos KPI.





A empresa e a sua carteira de projetos: milhões de clientes; vendas mensais na ordem dos milhares de milhões.





A Ailoot aplica essa experiência operacional ao acesso por API a funcionalidades de IA nos produtos dos clientes, agentes, aplicações e automatizações.
