Analyze prosody

    Analyze emotional expression from speech audio.

    How It Works

    1. Submit audio via POST /v1/prosody — returns a job_id
    2. Poll status via GET /v1/prosody/{job_id} — returns queued, in_progress, completed, or failed
    3. Retrieve results via GET /v1/prosody/{job_id}/result — returns 5 emotion metrics

    Request Body (multipart/form-data)

    ParameterTypeRequiredDescription
    filebinaryYesAudio file (WAV, MP3, OGG, FLAC, WebM)
    modelvalsea-prosodyYes
    languagestringNoBCP-47 language hint (e.g. "en", "zh")
    granularityword | sentence | utteranceNoDefault: utterance
    response_formatjson | verbose_jsonNoDefault: json

    Code Examples

    curl -X POST https://api.valsea.ai/v1/prosody \
      -H "Authorization: Bearer YOUR_API_KEY" \
      -F "model=valsea-prosody" \
      -F "file=@audio.wav"
    

    Response

    Submit Response (202)

    FieldTypeDescription
    job_idstringUnique job identifier
    statusstringqueued

    Minimal (json)

    FieldTypeDescription
    job_idstring
    statusstringcompleted
    emotions.frustrationnumberFrustration score (0-1)
    emotions.stressnumberStress score (0-1)
    emotions.politenessnumberPoliteness score (0-1)
    emotions.hesitationnumberHesitation score (0-1)
    emotions.urgencynumberUrgency score (0-1)

    Verbose (verbose_json)

    Includes all fields from the minimal response, plus:

    FieldTypeDescription
    raw_predictionsarrayRaw expression scores per utterance
    raw_predictions[].textstringUtterance text
    raw_predictions[].time.beginnumberStart time (seconds)
    raw_predictions[].time.endnumberEnd time (seconds)
    raw_predictions[].emotionsarrayAll 48 expression scores

    Errors

    StatusDescription
    401Missing or invalid API key
    402Insufficient credits
    404Job not found or expired
    409Job not yet completed
    503Service not configured

    Was this page helpful?