Voz
Transforma a fala do cliente em texto e a resposta do assistente em áudio.
A conversa por voz usa duas rotas simétricas: uma transforma a fala do cliente em texto, a outra transforma a resposta do assistente em áudio. A voz só está disponível quando flags.voice vale true em Configuração.
Voz para texto
/api/v1/storefront/intelligence/voice/transcribePúblicaTranscreve um áudio
Envia um áudio gravado e recebe o texto falado. Use para preencher a mensagem do cliente antes de chamar Conversar.
Corpo da requisição
audiofileobrigatórioArquivo de áudio em
multipart/form-data. Até 8 MB. O tipo vem do Content-Type da parte (por exemplo audio/webm).Exemplo de requisição
bash
curl -X POST "$BASE_URL/api/v1/storefront/intelligence/voice/transcribe" \
-F "audio=@pergunta.webm;type=audio/webm"Resposta
200Texto transcrito
json
{ "text": "tem esse tênis em azul?" }Campos da resposta
textstringO que foi dito.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é multipart/form-data (ou maior que 8 MB). | {"error":"áudio inválido"} |
| 400 | Sem o campo audio. | {"error":"campo 'audio' obrigatório"} |
| 400 | Arquivo de áudio vazio. | {"error":"áudio vazio"} |
| 502 | O serviço de voz não conseguiu transcrever. | {"error":"não consegui transcrever o áudio"} |
| 503 | Voz indisponível na plataforma. | {"error":"voz indisponível"} |
Texto para voz
/api/v1/storefront/intelligence/voice/speakPúblicaConverte texto em áudio
Converte um texto em fala. Devolve o áudio, não JSON.
Corpo da requisição
textstringobrigatórioTexto a falar. Obrigatório.
voicestringNome da voz. Opcional; sem ele vale a voz padrão da loja.
Exemplo de requisição
bash
curl -X POST "$BASE_URL/api/v1/storefront/intelligence/voice/speak" \
-H "Content-Type: application/json" \
-d '{"text": "Seu pedido sai hoje."}' \
--output resposta.wavResposta
Em caso de sucesso a resposta é 200 com o áudio no corpo e o tipo em Content-Type (audio/wav quando o servidor não informa outro). Cache-Control: no-store: não guarde o áudio.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo que não é JSON (ou maior que 1 MB). | {"error":"corpo inválido"} |
| 400 | text vazio. | {"error":"text obrigatório"} |
| 502 | O serviço de voz não conseguiu gerar o áudio. | {"error":"não consegui gerar o áudio"} |
| 503 | Voz indisponível na plataforma. | {"error":"voz indisponível"} |