Voice security analysis
Detect synthetic voices, assess behavioral risk, and verify liveness.
This endpoint requires authentication. Include your API key in the Authorization header. This is
an async job-based endpoint. Results are typically available immediately after submission.
How It Works
- Submit audio via
POST /v1/voice-security— returns ajob_id(typically alreadycompleted) - Retrieve results via
GET /v1/voice-security/{job_id}/result— returns security signals
Request Body (multipart/form-data)
| Parameter | Type | Required | Description |
|---|---|---|---|
file | binary | Yes | Audio file (WAV, MP3, OGG, FLAC, WebM) |
model | valsea-voice-security | Yes | |
response_format | json | verbose_json | No | Default: json |
Code Examples
curl -X POST https://api.valsea.ai/v1/voice-security \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "model=valsea-voice-security" \
-F "file=@audio.wav"
Response
Submit Response (202)
| Field | Type | Description |
|---|---|---|
job_id | string | Unique job identifier |
status | string | completed (results ready) |
Minimal (json)
| Field | Type | Description |
|---|---|---|
job_id | string | |
status | string | completed |
synthetic_probability | number | Probability the voice is synthetic (0-1) |
behavioral_risk | number | Behavioral risk score (0-1) |
liveness_status | verified | failed | scanning | Voice liveness verification |
Verbose (verbose_json)
Includes all fields from the minimal response, plus:
| Field | Type | Description |
|---|---|---|
accent | string | Detected accent (e.g. "singlish_en") |
emotions_detected | array | Detected emotional signals |
transcript | string | Transcribed text from the audio |
raw_response | object | Raw Modulate API response data |
Security Signals
| Signal | Range | Interpretation |
|---|---|---|
synthetic_probability | 0-1 | < 0.5 = likely human, 0.5-0.7 = uncertain, > 0.7 = likely synthetic |
behavioral_risk | 0-1 | < 0.3 = low risk, 0.3-0.6 = moderate, > 0.6 = high risk |
liveness_status | enum | verified = human, scanning = uncertain, failed = synthetic suspect |
Errors
| Status | Description |
|---|---|
401 | Missing or invalid API key |
402 | Insufficient credits |
404 | Job not found or expired |
503 | Service not configured |