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")
    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_predictionsarrayPer-utterance VALSEA 5-metric scores
    raw_predictions[].textstringUtterance text
    raw_predictions[].time.beginnumberStart time (seconds)
    raw_predictions[].time.endnumberEnd time (seconds)
    raw_predictions[].emotionsarray5 VALSEA metric scores (frustration, stress, politeness, hesitation, urgency)

    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?