Voiceprint Comparison: get task
GET/api/technology/speaker-identification-voiceprint-comparison/:task_id
Retrieve task for comparison of voiceprints.
How a 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 list (columns_count)
and
N = size of voiceprints_b list (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 the 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 list | ||||
---|---|---|---|---|
vp_a_1 | vp_a_2 | vp_a_3 | ||
voiceprints_b list | 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 the 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 a request and response combination throughout all components of the system. Request ID will be generated if not provided.
Responses
- 200
- 400
- 404
- 422
- 429
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
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
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
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": {
"scores": {
"rows_count": 0,
"columns_count": 0,
"values": [
0
]
}
},
"error": {
"type": "internal",
"message": "string",
"detail": [
{
"location": [
0,
"string"
],
"message": "string",
"type": "string",
"context": {}
}
]
}
}
Voiceprint Comparison task done
{
"task": {
"task_id": "123e4567-e89b-12d3-a456-426614174000",
"state": "done"
},
"result": {
"scores": {
"rows_count": 2,
"columns_count": 2,
"values": [
3.3,
-0.5,
4.5,
-2.9
]
}
}
}
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
]
Types of errors that can occur during request handling.
Human-readable summary of the error.
detail
object[]
Optional detail of the error. 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
]
Types of errors that can occur during request handling.
Human-readable summary of the error.
detail
object[]
Optional detail of the error. 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
]
Types of errors that can occur during request handling.
Human-readable summary of the error.
detail
object[]
Optional detail of the error. 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
Maximum number of requests which is allowed in the currently used rate limiting window.
x-ratelimit-remaining
number
Remaining number of requests in the currently used 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
]
Types of errors that can occur during request handling.
Human-readable summary of the error.
detail
object[]
Optional detail of the error. 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": []
}