Voiceprint Comparison: get result
GET/api/technology/speaker-identification-voiceprint-comparison/:task_id
Retrieves task result for comparison of voiceprints.
How voiceprint comparison result is arranged
See Voiceprint comparison task request documentation for details on how the request is arranged.
The result of a voiceprint comparison task is a matrix of scores represented as a single vector in row-major order, expressed as follows:
[
vp_a_1 x vp_b_1, vp_a_2 x vp_b_1, ..., vp_a_M x vp_b_1,
vp_a_1 x vp_b_2, vp_a_2 x vp_b_2, ..., vp_a_M x vp_b_2,
...,
vp_a_1 x vp_b_N, vp_a_2 x vp_b_N, ..., vp_a_M x vp_b_N
]
where M = size of voiceprints_a set (columns_count)
and
N = size of voiceprints_b set (rows_count)
. In other words, going through the list of scores is
the equivalent of traversing the matrix row by row.
The result also contains the number of matrix rows and columns. The columns_count
and rows_count
correspond to comparison's input request parameters voiceprints_a
and voiceprints_b
respectively.
For example, the following result data in the response:
{
"scores": {
"columns_count": 3,
"rows_count": 3,
"values": [
3, 1, 2,
8, 2, -6,
11, 2, 7
]
}
}
represent the following result matrix:
voiceprints_a set | ||||
---|---|---|---|---|
vp_a_1 | vp_a_2 | vp_a_3 | ||
voiceprints_b set | vp_b_1 | 3 | 1 | 2 |
vp_b_2 | 8 | 2 | -6 | |
vp_b_3 | 11 | 2 | 7 |
Request
Path Parameters
ID of the task to get result of
Header Parameters
Correlation ID is a special type of request ID which is unique over a series of requests and responses, identifying a transaction in a distributed system. Correlation ID will be generated if not provided.
In distributed system architecture (microservices architecture) it is a unique ID of request and response combination throughout all components of a distributed system. Request ID will be generated if not provided.
Responses
- 200
- 400
- 404
- 422
- 429
Result response of Voiceprint Comparison task.
The response body contains task info in the task
field. Depending on the task processing outcome, either result
or error
field is populated.
- application/json
- Schema
- Example (from schema)
- task done
- task rejected
- task failed
Schema
- VoiceprintComparisonResult
- TaskErrorResult
Array [
Array [
- MOD1
- MOD2
]
- MOD1
- MOD2
- MOD3
- MOD4
- MOD5
Array [
- MOD1
- MOD2
- MOD3
- MOD4
]
]
task
object
required
Possible values: [pending
, running
, rejected
, failed
, done
]
result
object
anyOf
scores
object
required
Matrix of floating point score values formatted as a list of rows in row-major order.
Possible values: >= 1
Number of rows in the matrix
Possible values: >= 1
Number of columns in the matrix
Possible values: >= 1
error
object
anyOf
Result schema for a failed or rejected task.
Possible values: [internal
, task.validation-error
]
Machine-readable error type.
Human-readable summary of the error.
detail
object[]
Optional higher level of detail. It is intended for better understanding of the error or advanced error handling.
location
object[]
required
Location of the error.
anyOf
integer
string
Human-readable summary of the error.
Machine-readable error type.
context
object
Optional key-value object with additional context
property name*
object
anyOf
string
integer
number
boolean
anyOf
string
integer
number
boolean
{
"task": {
"task_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"state": "pending"
},
"result": {},
"error": {}
}
Voiceprint Comparison task done
{
"task": {
"task_id": "123e4567-e89b-12d3-a456-426614174000",
"state": "done"
},
"result": {
"scores": {
"rows_count": 2,
"columns_count": 2,
"values": [
0,
0.5,
0.5,
1
]
}
}
}
Voiceprint Comparison task rejected
{
"task": {
"task_id": "123e4567-e89b-12d3-a456-426614174000",
"state": "rejected"
},
"error": {
"type": "task.validation-error",
"message": "Task validation error.",
"detail": []
}
}
Voiceprint Comparison task failed
{
"task": {
"task_id": "123e4567-e89b-12d3-a456-426614174000",
"state": "failed"
},
"error": {
"type": "internal",
"message": "Service error.",
"detail": []
}
}
Request payload data was invalid and could not be parsed.
- application/json
- Schema
- Example (from schema)
- request.invalid
Schema
Array [
Array [
- MOD1
- MOD2
]
- MOD1
- MOD2
- MOD3
- MOD4
- MOD5
Array [
- MOD1
- MOD2
- MOD3
- MOD4
]
]
Possible values: [internal
, resource.not-found
, method.invalid
, request.forbidden
, request.invalid
, request.validation-error
, request.rate-limit-exceeded
, request.size-limit-exceeded
, storage.capacity-exceeded
]
Machine-readable error type.
Human-readable summary of the error.
detail
object[]
Optional higher level of detail. It is intended for better understanding of the error or advanced error handling.
location
object[]
required
Location of the error.
anyOf
integer
string
Human-readable summary of the error.
Machine-readable error type.
context
object
Optional key-value object with additional context
property name*
object
anyOf
string
integer
number
boolean
anyOf
string
integer
number
boolean
{
"type": "internal",
"message": "string",
"detail": [
{
"location": [
0,
"string"
],
"message": "string",
"type": "string",
"context": {}
}
]
}
Invalid request.
{
"type": "request.invalid",
"message": "Invalid request.",
"detail": []
}
The requested task does not exist.
The provided task_id
may be wrong or the task may have expired already.
- application/json
- Schema
- Example (from schema)
- not found
Schema
Array [
Array [
- MOD1
- MOD2
]
- MOD1
- MOD2
- MOD3
- MOD4
- MOD5
Array [
- MOD1
- MOD2
- MOD3
- MOD4
]
]
Possible values: [internal
, resource.not-found
, method.invalid
, request.forbidden
, request.invalid
, request.validation-error
, request.rate-limit-exceeded
, request.size-limit-exceeded
, storage.capacity-exceeded
]
Machine-readable error type.
Human-readable summary of the error.
detail
object[]
Optional higher level of detail. It is intended for better understanding of the error or advanced error handling.
location
object[]
required
Location of the error.
anyOf
integer
string
Human-readable summary of the error.
Machine-readable error type.
context
object
Optional key-value object with additional context
property name*
object
anyOf
string
integer
number
boolean
anyOf
string
integer
number
boolean
{
"type": "internal",
"message": "string",
"detail": [
{
"location": [
0,
"string"
],
"message": "string",
"type": "string",
"context": {}
}
]
}
Task not found.
{
"type": "resource.not-found",
"message": "Resource not found.",
"detail": [
{
"location": [
"root"
],
"message": "Task not found.",
"type": "task.not-found",
"context": {
"task_id": "123e4567-e89b-12d3-a456-426614174000"
}
}
]
}
Error during validation of request payload data occurred.
- application/json
- Schema
- Example (from schema)
- request validation error
Schema
Array [
Array [
- MOD1
- MOD2
]
- MOD1
- MOD2
- MOD3
- MOD4
- MOD5
Array [
- MOD1
- MOD2
- MOD3
- MOD4
]
]
Possible values: [internal
, resource.not-found
, method.invalid
, request.forbidden
, request.invalid
, request.validation-error
, request.rate-limit-exceeded
, request.size-limit-exceeded
, storage.capacity-exceeded
]
Machine-readable error type.
Human-readable summary of the error.
detail
object[]
Optional higher level of detail. It is intended for better understanding of the error or advanced error handling.
location
object[]
required
Location of the error.
anyOf
integer
string
Human-readable summary of the error.
Machine-readable error type.
context
object
Optional key-value object with additional context
property name*
object
anyOf
string
integer
number
boolean
anyOf
string
integer
number
boolean
{
"type": "internal",
"message": "string",
"detail": [
{
"location": [
0,
"string"
],
"message": "string",
"type": "string",
"context": {}
}
]
}
Request validation error.
{
"type": "request.validation-error",
"message": "Request validation error.",
"detail": []
}
Request rate limit exceeded.
The request may be retried after a while. The following response headers may be checked for details: retry-after
, x-ratelimit-limit
, x-ratelimit-remaining
, x-ratelimit-reset
.
Response Headers
retry-after
number
Header indicates how long the user agent should wait before making a follow-up request.
x-ratelimit-limit
number
Size of the current rate limiting window.
x-ratelimit-remaining
number
Remaining number of requests in the current rate limiting window.
x-ratelimit-reset
number
Time at which the current rate limiting window resets (in UTC epoch).
- application/json
- Schema
- Example (from schema)
- request.rate-limit-exceeded
Schema
Array [
Array [
- MOD1
- MOD2
]
- MOD1
- MOD2
- MOD3
- MOD4
- MOD5
Array [
- MOD1
- MOD2
- MOD3
- MOD4
]
]
Possible values: [internal
, resource.not-found
, method.invalid
, request.forbidden
, request.invalid
, request.validation-error
, request.rate-limit-exceeded
, request.size-limit-exceeded
, storage.capacity-exceeded
]
Machine-readable error type.
Human-readable summary of the error.
detail
object[]
Optional higher level of detail. It is intended for better understanding of the error or advanced error handling.
location
object[]
required
Location of the error.
anyOf
integer
string
Human-readable summary of the error.
Machine-readable error type.
context
object
Optional key-value object with additional context
property name*
object
anyOf
string
integer
number
boolean
anyOf
string
integer
number
boolean
{
"type": "internal",
"message": "string",
"detail": [
{
"location": [
0,
"string"
],
"message": "string",
"type": "string",
"context": {}
}
]
}
Rate limit exceeded.
{
"type": "request.rate-limit-exceeded",
"message": "Rate limit exceeded: 1 per 5 second.",
"detail": []
}