Documentação

Falantes e sentimento

Quem falou, o clima de cada trecho e métricas da conversa.

curl -sS "$NOUS_API_BASE_URL/transcriptions?diarization=true&sentiment=true" \
  -H "Authorization: Bearer $NOUS_API_KEY" \
  -H "Content-Type: audio/mpeg" \
  --data-binary "@atendimento.mp3"

Falantes vem incluído no preço do minuto. Sentimento custa + R$ 0,002 por minuto, só quando pedido, e faz parte da assinatura: sem assinatura ativa, sentiment=true volta 402 plan_required (a transcrição sem sentimento continua liberada).

Falantes (diarization)

Separa até 4 vozes. Cada palavra ganha speaker (spk0, spk1, na ordem em que cada voz aparece), e speakers lista cada trecho de fala:

"speakers": [
  { "speaker": "spk0", "label": null, "start_s": 0.16, "end_s": 6.16 },
  { "speaker": "spk1", "label": null, "start_s": 6.16, "end_s": 18.24 }
]

A Nous percebe que as vozes são diferentes, mas não sabe quem é cada pessoa. Não é reconhecimento biométrico.

Sentimento (sentiment)

"sentiment": {
  "overall": "neutro",
  "spans": [
    { "label": "negativo", "score": 0.81, "start_s": 92.4, "end_s": 104.9, "speaker": "spk1", "arousal": 1.7, "tone": "irritado" }
  ]
}
CampoSignificado
overallpositivo, neutro ou negativo para a conversa inteira. Vem vazio quando todas as falas são curtas demais para medir.
spans[].labelSentimento do trecho, pelo texto.
spans[].scoreConfiança, de 0 a 1.
spans[].arousalQuanto a voz está acima do normal daquela pessoa. A partir de 1,5 conta como agitada.
spans[].toneTexto e voz juntos: satisfeito, entusiasmado, neutro, agitado, insatisfeito ou irritado.
spans[].speakerQuem falou, quando diarization=true.

Métricas da conversa

Com diarization=true e sentiment=true juntos, vem também conversation:

"conversation": {
  "talk_seconds": { "spk0": 212.4, "spk1": 251.9 },
  "overlap_seconds": 3.2,
  "interruptions": 4,
  "non_talk_seconds": 22.1,
  "long_silences": 1
}

Nesta página