Speakers

Verify a speaker

Checks whether a recording is the voice of an enrolled speaker. Send a recording of 3-60 seconds with at least 2 seconds of speech. The result has a decision (match or no_match), a similarity from -1 to 1 (higher means more alike) and the threshold used for the decision. Main failures: unknown speaker (404), too short or too little speech (422), not enough credits (402). Requires scope speakers:verify.

With detect_deepfake=true the same recording is also checked for AI-generated speech (needs scope deepfake:detect; that check needs a recording longer than 4 seconds, otherwise only it fails). The two checks are counted separately, and only completed checks use credits:

  • if the synthetic-speech check fails, you still get the verification, with deepfake.error;
  • if the verification fails but the synthetic-speech check completed, you get the verification's error together with partial (the synthetic-speech result);
  • if both fail, you get the error and no credits are used.

A retry with the same Idempotency-Key returns the same outcome again without running or counting the checks twice.

post/v1/speakers/verify

Request

  • Base URL: https://platform.detectif.ai
  • URL: https://platform.detectif.ai/v1/speakers/verify
  • Auth: HTTP bearer

Headers

Idempotency-Keystring nullable

Optional (recommended) key that makes retries safe for 24 h: a retry with the same key and the same request returns the stored response without charging again.

Example:9b1f6c1e-2c1a-4d6e-9a43-2f4f5b6f7a10

Response

The check completed.

request_idstring required
operation_idstring required
object'speaker.verification' required
speaker_idstring required
latency_msnumber required
idempotent_replayboolean required

Example response

{
  "credits": {
    "balance": 4850,
    "charged": 50
  },
  "idempotent_replay": false,
  "latency_ms": 301.5,
  "model": {
    "name": "eidos",
    "version": "8e1b6c0a92f7"
  },
  "object": "speaker.verification",
  "operation_id": "op_6f1ed002ab5595859014ebf0951522d9",
  "request_id": "req_8f14e45fceea167a5a36dedd",
  "result": {
    "decision": "match",
    "duration_seconds": 4.1,
    "similarity": 0.7412,
    "similarity_semantics": "Higher means the two voices are more alike. Not a percentage.",
    "threshold": 0.53
  },
  "speaker_id": "customer-4711"
}

Changes

No recorded changes to this operation across all 1 revision of this API.