Voiceprint processing
This section contains voiceprint processing proto files.
Notes:
- To download Gatekeeper proto files, click download Gatekeeper proto files.
- Default values are determined by the gRPC specification. For more information, go to protocol buffers language guide .
voiceprints_processing_service.proto
VoiceprintsProcessor
This service allows performing basic voice biometrics operations. Service methods are typically used in self-service applications such as active authentication via the IVR.
Enrollment workflow
Here is a typical Enrollment workflow:
Note:
Do not forget to upload audio using the Media Manager API anytime in the workflow before calling ProcessAudio (step 5).- StartEngagement
- StartSession
- GetGkVoiceprintProfileId to get the internal ID.
- If the voiceprint profile exists, continue to step b. If not, create one in step a.
- CreateVoiceprintProfile
- GetEnrollStatus - Checks if the voiceprint profile is trained.
- ProcessAudio
- Enroll - Repeat steps five and six, typically three times, until the voiceprint is ready to be trained.
- Train
- StopSession
- StopEngagement
Verification workflow
Here is a typical verification workflow:
Note:
Do not forget to upload audio using the Media Manager API anytime in the workflow before calling Verify (step 5).- StartEngagement
- StartSession
- GetGkVoiceprintProfileId to get the internal ID.
- GetEnrollStatus - Checks if the voiceprint profile is trained.
- Verify
- GetSessionDecision
- StopSession
- StopEngagement
gRPC method definitions
| Method Name | Request Type | Response Type | Description |
|---|---|---|---|
| ProcessAudio | ProcessAudio Request |
ProcessAudio Response |
Processes the audio and checks its quality. Creates an audio model identified by gk_processed_audio_id that the system uses in consequent operations such as Enroll or Verify. |
| Enroll | Enroll Request |
Enroll Response |
Adds processed audio to the voiceprint’s enrollment segments collection. The system uses the processed audio in this collection when it creates the voiceprint’s template (Train). Accepts a voiceprint profile ID and a processed audio ID returned by the ProcessAudio method. Returns information about the status of the voiceprint, indicating whether it is ready to be trained or not. |
| GetEnrollStatus | GetEnrollStatus Request |
GetEnrollStatus Response |
Returns information about the status of the voiceprint, indicating whether it is trained, ready to be trained, or not ready. |
| Train | Train Request |
Train Response |
Creates a new voice template for a voiceprint profile using audio (typically audio models) from the enrollment segments collection. |
| CheckWatchlistConsistency | CheckWatchlistConsistency Request |
CheckWatchlistConsistency Response |
Checks if a watchlist is consistent with current fraudster detection settings. |
| Verify | Verify Request |
Verify Response |
Checks whether a given audio matches the specified voiceprint profile. |
| Identify | Identify Request |
Identify Response |
Checks whether a given audio matches any of the voiceprint profiles specified. Typically used with a small or medium size group (1-100). |
| DetectKnownFraudsters | DetectKnownFraudsters Request |
DetectKnownFraudsters Response |
Checks whether a given audio matches any of the voiceprint profiles specified in a watchlist. |
| AnalyzeAudio | AnalyzeAudio Request |
AnalyzeAudio Response |
Performs multiple checks on the input audio. Checks whether a given audio matches any of the voiceprint profiles specified in a list of voiceprints and/or a group and/or a watchlist. In addition detects playback or synthesized audio attacks. |
Methods with HTTP bindings
Notes:
-
REST API responses use the camel case naming convention, such as gkPersonId, but the REST API requests can either use the camel case or snake case naming convention, such as gk_person_id.
-
The following example displays root prefix and endpoint to build a complete URL, such as
https://gatekeeper.api.nuance.com/v1/audios/upload-url:- Root prefix for API:
https://gatekeeper.api.nuance.com - Endpoint:
/v1/audios/upload-url
To know more about root prefixes for API that can be used for different geographies, go to Sites.
- Root prefix for API:
ProcessAudio
Enroll
GetEnrollStatus
Train
CheckWatchlistConsistency
Verify
Identify
DetectKnownFraudsters
AnalyzeAudio
voiceprints_processing_messages.proto
AnalyzeAudioAuthenticationResult
Contains detailed information about Authentication results.
| Field | Type | Description |
|---|---|---|
| top_person_voiceprint_details | VoiceprintDetails | General information about the voiceprint profile of the person with the highest score. |
| authentication_score | AuthenticationScore | The authentication score. |
| decision | nuance.biosec.v1.Decision | Indicates if the given audio matches any of the specified persons voiceprint profiles. |
| reason | DecisionReason | Reason of the decision. |
| number_of_persons_prints | int32 | Number of valid print used for identification. |
| risk_engine_result | nuance.biosec.v1.RiskEngineResult | Level of risk and reliability, computed by the risk engine. |
AnalyzeAudioFraudDetectionResult
Contains detailed information about Fraud Detection results.
| Field | Type | Description |
|---|---|---|
| top_fraudster_voiceprint_details | VoiceprintDetails | General information about the voiceprint profile of the fraudster with the highest score. |
| fraud_detection_score | FraudDetectionScore | The fraud detection score. |
| decision | nuance.biosec.v1.Decision | Indicates if the given audio matches any of the specified fraudsters voiceprint profiles. |
| reason | DecisionReason | Reason of the decision. |
| number_of_fraudsters_prints | int32 | Number of valid print used for known fraudster detection. |
| risk_engine_result | nuance.biosec.v1.RiskEngineResult | Level of risk and reliability, computed by the risk engine. |
AnalyzeAudioRequest
Input message that defines parameters for AnalyzeAudio.
Uses the context field as follows:
- gk_engagement_id: Mandatory
- gk_session_id: Mandatory
- gk_scope_id: Mandatory
- configset_id: Mandatory
| Field | Type | Description |
|---|---|---|
| context | nuance.biosec.v1.Context | Mandatory. General request context. |
| One of audio: | Mandatory. The input audio. |
|
| gk_media_segment_id | nuance.biosec.v1.UniqueId | Unique ID of a new media segment. |
| gk_processed_audio_id | nuance.biosec.v1.UniqueId | Unique ID of the processed audio. |
| gk_voiceprint_profile_ids | nuance.biosec.v1.ListOfUniqueId | Optional. An array of voiceprint profile IDs. |
| group | nuance.biosec.v1.UniqueIdAndTag | Optional. A group ID and a tag used as a filter to select the right prints, in case the persons have more than one print. |
| watchlist | nuance.biosec.v1.UniqueIdAndTag | Optional. A watchlist ID and a tag used as a filter to select the right prints, in case the persons have more than one print. |
| channel_selector | nuance.biosec.v1.AudioChannelSelector | Optional. Specifies the processed channel when processing media with multiple channels. This parameter is ignored if the media has a single channel or if the input is gk_processed_audio_id. |
| ignore_checkpoints | bool | Optional. If true, disable the checkpoints defined in configset (checkpointsForAuthentication and checkpointsForFraudDetection configuration parameters are ignored) to process the whole audio. If false, processing might stop before the end of audio (for example, if a match is found for any of the checkpoints defined). |
| syntheticSpeechDetectionParameters | nuance.biosec.v1.audio.SyntheticSpeechDetectionParameters | Optional. Setting this value enables Synthetic Speech Detection. |
| channelPlaybackDetectionParameters | nuance.biosec.v1.audio.ChannelPlaybackDetectionParameters | Optional. Setting this value enables Channel Playback Detection. |
AnalyzeAudioResponse
Output message that defines parameters returned by AnalyzeAudio.
| Field | Type | Description |
|---|---|---|
| status | nuance.rpc.Status | Mandatory. General operation status. |
| result | AnalyzeAudioResult | Result of the DetectKnownFraudsters operation. |
AnalyzeAudioResult
Contains detailed information about the operation’s outcome. Included in AnalyzeAudio.
| Field | Type | Description |
|---|---|---|
| gk_media_segment_id | nuance.biosec.v1.UniqueId | Optional. The media ID of the audio used. |
| gk_processed_audio_id | nuance.biosec.v1.UniqueId | Optional. The unique ID of the processed audio. In case, the system needs to reprocess the audio, a new gk_processed_audio_id is created, even if input audio is specified by gk_processed_audio_id. |
| decision | nuance.biosec.v1.Decision | Indicates the general decision, based on all the factors used for audio analysis. Indicates if the given audio matches any of the specified voiceprint profiles or if a fraud is detected. |
| reason | DecisionReason | Reason of the decision. |
| voice_class_score | google.protobuf.FloatValue | A score between 0 and 100 that can be used to categorize voices into classes according to various factors such as timbre, pitch, and so on. |
| risk_engine_global_result | nuance.biosec.v1.RiskEngineResult | Level of risk and reliability, computed by the risk engine. |
| validity | nuance.biosec.v1.AudioValidity | Audio validity status. Indicates invalidity reason in case of invalid audio. |
| authentication_result | AnalyzeAudioAuthenticationResult | The authentication result. |
| fraud_detection_result | AnalyzeAudioFraudDetectionResult | The fraud detection result. |
| synthetic_speech_result | nuance.biosec.v1.audio.SyntheticSpeechDetectionResult | Result of Synthetic Speech Detection. |
| channel_playback_result | nuance.biosec.v1.audio.ChannelPlaybackDetectionResult | Result of Channel Playback Detection. |
| gk_calibration_model_revision_id | nuance.biosec.v1.UniqueId | Unique ID of the calibration model used. |
| audio_details | nuance.biosec.v1.AudioDetails | General audio metrics (such as gross audio, net audio, SNR, and so on). |
| voiceprint_results | repeated VoiceprintResult | Detailed results for a specific voiceprint profile. |
| calibration_model_details | CalibrationModelDetails | Optional. Details on the calibration model used for the check. |
AudioProcessingResult
Contains audio metrics and information about the audio model. Included in ProcessAudioResponse.
| Field | Type | Description |
|---|---|---|
| gk_media_segment_id | nuance.biosec.v1.UniqueId | Unique ID of the audio used for enrollment (in case only a subset of audio is used, value may be different from the input audio ID). |
| gk_processed_audio_id | nuance.biosec.v1.UniqueId | Unique ID of the processed audio. |
| validity | nuance.biosec.v1.AudioValidity | Audio validity status. Indicates invalidity reason in case of invalid audio. |
| audio_details | nuance.biosec.v1.AudioDetails | General audio metrics (such as gross audio, net audio, SNR, and so on). |
| voice_class_score | google.protobuf.FloatValue | A score between 0 and 100 that can be used to categorize voices into classes according to various factors such as timbre, pitch, and so on. |
| gk_calibration_model_revision_id | nuance.biosec.v1.UniqueId | Unique ID of the calibration model that the system uses to create the audio model. |
AuthenticationScore
Authentication score for a person’s print, used in Verify or Identify.
| Field | Type | Description |
|---|---|---|
| biometric_score | google.protobuf.FloatValue | Raw biometric score of the comparison between the print and the audio. |
CalibrationModelDetails
Contains general information about a calibration model.
| Field | Type | Description |
|---|---|---|
| gk_calibration_model_revision_id | nuance.biosec.v1.UniqueId | Unique ID of the calibration model revision. |
| calibration_model_id | string | Calibration model ID. |
CheckWatchlistConsistencyRequest
Input message that defines parameters for CheckWatchlistConsistency.
Uses the context field as follows:
- gk_engagement_id: Mandatory
- gk_session_id: Mandatory
- gk_scope_id: Mandatory
- configset_id: Mandatory
| Field | Type | Description |
|---|---|---|
| context | nuance.biosec.v1.Context | Mandatory. General request context. |
| One of target: | Mandatory. The set of prints, specified as an array of voiceprint IDs or as a watchlist ID and tag. |
|
| gk_voiceprint_profile_ids | nuance.biosec.v1.ListOfUniqueId | An array of voiceprint profile IDs. |
| watchlist | nuance.biosec.v1.UniqueIdAndTag | A watchlist ID and a tag used as a filter to select the right prints, in case the persons have more than one print. |
CheckWatchlistConsistencyResponse
Output message that defines parameters returned by CheckWatchlistConsistency.
| Field | Type | Description |
|---|---|---|
| status | nuance.rpc.Status | Mandatory. General operation status. |
| total_number_of_compatible_prints | google.protobuf.Int32Value | Optional. Total number of prints that are found to be compatible with the current fraudster detection settings. |
| total_number_of_incompatible_prints | google.protobuf.Int32Value | Optional. Total number of prints that are found to be incompatible with the current fraudster detection settings. |
| incompatible_prints | repeated IncompatiblePrintDetails | Optional. List of incompatible prints. The list is empty if all prints are compatible. in case of too many incompatible prints, the list is truncated. |
| required_calibration_model | CalibrationModelDetails | Optional. Details on the required calibration model used for the check. |
DetectKnownFraudstersRequest
Input message that defines parameters for DetectKnownFraudsters.
Uses the context field as follows:
- gk_engagement_id: Mandatory
- gk_session_id: Mandatory
- gk_scope_id: Mandatory
- configset_id: Mandatory
| Field | Type | Description |
|---|---|---|
| context | nuance.biosec.v1.Context | Mandatory. General request context. |
| One of audio: | Mandatory. The input audio. |
|
| gk_media_segment_id | nuance.biosec.v1.UniqueId | Unique ID of a new media segment. |
| gk_processed_audio_id | nuance.biosec.v1.UniqueId | Unique ID of the processed audio. |
| One of target: | Mandatory. The set of prints, specified as an array of print IDs or as a watchlist ID and tag. |
|
| gk_voiceprint_profile_ids | nuance.biosec.v1.ListOfUniqueId | An array of voiceprint profile IDs. |
| watchlist | nuance.biosec.v1.UniqueIdAndTag | A watchlist ID and a tag used as a filter to select the right prints, in case the persons have more than one print. |
| channel_selector | nuance.biosec.v1.AudioChannelSelector | Optional. Specifies the processed channel when processing media with multiple channels. This parameter is ignored if the media has a single channel or if the input is gk_processed_audio_id. |
| ignore_checkpoints | bool | Optional. If true, disable the checkpoints defined in configset (checkpointsForAuthentication and checkpointsForFraudDetection configuration parameters are ignored) to process the whole audio. If false, processing might stop before the end of audio (for example, if a match is found for any of the checkpoints defined). |
DetectKnownFraudstersResponse
Output message that defines parameters returned by DetectKnownFraudsters.
| Field | Type | Description |
|---|---|---|
| status | nuance.rpc.Status | Mandatory. General operation status. |
| result | DetectKnownFraudstersResult | Result of the DetectKnownFraudsters operation. |
DetectKnownFraudstersResult
Contains detailed information about the operation’s outcome. Included in DetectKnownFraudsters.
| Field | Type | Description |
|---|---|---|
| voiceprint_details | VoiceprintDetails | General information about the voiceprint profile. |
| gk_media_segment_id | nuance.biosec.v1.UniqueId | Optional. The media ID of the audio used. |
| gk_processed_audio_id | nuance.biosec.v1.UniqueId | Optional. The unique ID of the processed audio. In case, the system needs to reprocess the audio, a new gk_processed_audio_id is created, even if input audio is specified by gk_processed_audio_id. |
| decision | nuance.biosec.v1.Decision | Indicates if the given audio matches any of the specified fraudsters voiceprint profiles. |
| reason | DecisionReason | Reason of the decision. |
| fraud_detection_score | FraudDetectionScore | The fraud detection scores. |
| voice_class_score | google.protobuf.FloatValue | A score between 0 and 100 that can be used to categorize voices into classes according to various factors such as timbre, pitch, and so on. |
| risk_engine_result | nuance.biosec.v1.RiskEngineResult | Level of risk and reliability, computed by the risk engine. |
| gk_calibration_model_revision_id | nuance.biosec.v1.UniqueId | Unique ID of the calibration model used. |
| audio_details | nuance.biosec.v1.AudioDetails | General audio metrics (such as gross audio, net audio, SNR, and so on). |
| voiceprint_results | repeated VoiceprintResult | Detailed results for a specific voiceprint profile. |
| number_of_prints | int32 | Number of valid print used for known fraudster detection. |
EnrollRequest
Input message that defines parameters for Enroll.
Uses the context field as follows:
- gk_engagement_id: Mandatory
- gk_session_id: Mandatory
- gk_scope_id: Mandatory
- configset_id: Mandatory
| Field | Type | Description |
|---|---|---|
| context | nuance.biosec.v1.Context | Mandatory. General request context. |
| gk_voiceprint_profile_id | nuance.biosec.v1.UniqueId | Mandatory. Unique ID of the voiceprint profile for enrollment. |
| gk_processed_audio_id | nuance.biosec.v1.UniqueId | Mandatory. Unique ID of audio that was processed and added to the voiceprint’s enrollment segments collection. The ID is returned by ProcessAudio. |
EnrollResponse
Output message that defines parameters returned by Enroll.
| Field | Type | Description |
|---|---|---|
| status | nuance.rpc.Status | General operation status. |
| result | EnrollResult | Enrollment result. |
EnrollResult
Contains information about the voiceprint profile and the audio that belongs to the enrollment set. Included in EnrollResponse.
| Field | Type | Description |
|---|---|---|
| enroll_status | EnrollStatus | Status of the voiceprint profile after adding the new enrollment segment. Indicates whether the voiceprint can or should be trained. |
| voiceprint_details | VoiceprintDetails | General information about the voiceprint profile. |
| enrolled | google.protobuf.BoolValue | It is true if audio is added to print, false otherwise. |
| reason | EnrollReason | In case of failed enrollment, reason of the failure. |
| audio_details | nuance.biosec.v1.AudioDetails | General audio metrics (such as gross audio, net audio, SNR, and so on) of the input audio of the EnrollRequest. |
EnrollmentSegmentDetails
Contains detailed information about a single enrollment segment that the system uses in the training process. Included in TrainResponse and in ListEnrollmentSegments.
| Field | Type | Description |
|---|---|---|
| gk_media_segment_id | nuance.biosec.v1.UniqueId | Unique ID of the media segment. |
| gk_processed_audio_id | nuance.biosec.v1.UniqueId | Unique ID of the processed audio. |
| consistency_decision | ConsistencyDecision | Indicates if the segment is consistent or not. |
| consistency_score | google.protobuf.FloatValue | Biometric consistency score compared to other segments. |
| used_for_train | google.protobuf.BoolValue | Indicates if the segment is used for training for reasons such as inconsistency, missing model, missing samples, and so on. |
| audio_details | nuance.biosec.v1.AudioDetails | General audio metrics (such as gross audio, net audio, SNR, and so on). |
| voice_class_score | google.protobuf.FloatValue | A score between 0 and 100 that can be used to categorize voices into classes according to various factors such as timbre, pitch, and so on. |
| gk_calibration_model_revision_id | nuance.biosec.v1.UniqueId | Unique ID of the calibration model that the system uses to create the audio model. |
FraudDetectionScore
Fraud detection score for a fraudster’s print, used in DetectKnownFraudsters.
| Field | Type | Description |
|---|---|---|
| biometric_score | google.protobuf.FloatValue | Raw biometric score of the comparison between the print and the audio. |
GetEnrollStatusRequest
Input message that defines parameters for GetEnrollStatus. Contains information about whether the voiceprint can or should be trained.
Uses the context field as follows:
- gk_engagement_id: Mandatory
- gk_session_id: Mandatory
- gk_scope_id: Mandatory
- configset_id: Mandatory
| Field | Type | Description |
|---|---|---|
| context | nuance.biosec.v1.Context | Mandatory. General request context. |
| gk_voiceprint_profile_id | nuance.biosec.v1.UniqueId | Mandatory. Unique ID of the voiceprint profile. |
GetEnrollStatusResponse
Output message that defines parameters returned by GetEnrollStatus.
| Field | Type | Description |
|---|---|---|
| status | nuance.rpc.Status | General operation status. |
| result | EnrollStatus | The status of the voiceprint profile. Indicates whether the voiceprint can or should be trained. |
| is_trained | google.protobuf.BoolValue | Indicates whether the voiceprint is trained and can be used for verification. |
IdentifyRequest
Input message that defines parameters for Identify.
Uses the context field as follows:
- gk_engagement_id: Mandatory
- gk_session_id: Mandatory
- gk_scope_id: Mandatory
- configset_id: Mandatory
| Field | Type | Description |
|---|---|---|
| context | nuance.biosec.v1.Context | Mandatory. General request context. |
| One of audio: | Mandatory. The input audio. |
|
| gk_media_segment_id | nuance.biosec.v1.UniqueId | Unique ID of a new media segment. |
| gk_processed_audio_id | nuance.biosec.v1.UniqueId | Unique ID of the processed audio. |
| One of target: | Mandatory. The set of prints, specified as an array of print IDs or as a group ID and tag. |
|
| gk_voiceprint_profile_ids | nuance.biosec.v1.ListOfUniqueId | An array of voiceprint profile IDs. |
| group | nuance.biosec.v1.UniqueIdAndTag | A group ID and a tag used as a filter to select the right prints, in case the persons have more than one print. |
| channel_selector | nuance.biosec.v1.AudioChannelSelector | Optional. Specifies the processed channel when processing media with multiple channels. This parameter is ignored if the media has a single channel or if the input is gk_processed_audio_id. |
| ignore_checkpoints | bool | Optional. If true, disable the checkpoints defined in configset (checkpointsForAuthentication and checkpointsForFraudDetection configuration parameters are ignored) to process the whole audio. If false, processing might stop before the end of audio (for example, if a match is found for any of the checkpoints defined). |
IdentifyResponse
Output message that defines parameters returned by Identify.
| Field | Type | Description |
|---|---|---|
| status | nuance.rpc.Status | General operation status. |
| result | IdentifyResult | Result of the identify operation. |
IdentifyResult
Contains detailed information about the operation’s outcome. Included in IdentifyResponse.
| Field | Type | Description |
|---|---|---|
| voiceprint_details | VoiceprintDetails | General information about the voiceprint profile. |
| gk_media_segment_id | nuance.biosec.v1.UniqueId | Optional. The media ID of the audio used. |
| gk_processed_audio_id | nuance.biosec.v1.UniqueId | Optional. The unique ID of the processed audio. In case the system needs to reprocess the audio, a new gk_processed_audio_id is created, even if input audio is specified by gk_processed_audio_id. |
| decision | nuance.biosec.v1.Decision | The decision if the given audio matches any of the specified voiceprint profiles. |
| reason | DecisionReason | The reason for the decision. |
| authentication_score | AuthenticationScore | Authentication scores. |
| voice_class_score | google.protobuf.FloatValue | A score between 0 and 100 that can be used to categorize voices into classes according to various factors such as timbre, pitch, and so on. |
| risk_engine_result | nuance.biosec.v1.RiskEngineResult | Level of risk and reliability, computed by the risk engine. |
| gk_calibration_model_revision_id | nuance.biosec.v1.UniqueId | Unique ID of the calibration model used for the identification process. |
| audio_details | nuance.biosec.v1.AudioDetails | General audio metrics (such as gross audio, net audio, SNR, and so on). |
| voiceprint_results | repeated VoiceprintResult | Detailed results for a specific voiceprint profile. |
IncompatiblePrintDetails
Contains detailed information about a single print that is found to be incompatible with the current fraudster detection settings.
| Field | Type | Description |
|---|---|---|
| voiceprint_details | VoiceprintDetails | Mandatory. General information about the incompatible voiceprint profile. |
| incompatible_calibration_model | CalibrationModelDetails | Optional. Calibration model of the incompatible print. |
| fraudster_id | string | Optional. Fraudster ID of the owner of the incompatible print. |
ProcessAudioRequest
Input message that defines parameters for ProcessAudio.
Uses the context field as follows:
- gk_engagement_id: Mandatory
- gk_session_id: Mandatory
- gk_scope_id: Mandatory
- configset_id: Mandatory
| Field | Type | Description |
|---|---|---|
| context | nuance.biosec.v1.Context | Mandatory. General request context. |
| One of input: | Mandatory. Specifies the input audio. |
|
| gk_media_segment_id | nuance.biosec.v1.UniqueId | Unique ID of the new media Segment. |
| gk_processed_audio_id | nuance.biosec.v1.UniqueId | Unique ID of the processed audio segment that is re-processed. |
| is_for_enrollment | google.protobuf.BoolValue | Optional. Specifies the purpose of the audio processing. If true, the audio is processed for enrollment and the processing is limited to the max amount of speech specified in the configuration set. If false or not specified, the audio is processed for verification, backward search, clustering, or other purposes, using all the available audio samples. |
| channel_selector | nuance.biosec.v1.AudioChannelSelector | Optional. Specifies the processed channel when processing media with multiple channels. This parameter is ignored if the media has a single channel or if the input is gk_processed_audio_id. |
ProcessAudioResponse
Output message that defines parameters returned by ProcessAudio.
| Field | Type | Description |
|---|---|---|
| status | nuance.rpc.Status | General operation status. |
| result | AudioProcessingResult | Audio processing result. |
TrainRequest
Input message that defines parameters for Train.
Uses the context field as follows:
- gk_engagement_id: Mandatory
- gk_session_id: Mandatory
- gk_scope_id: Mandatory
- configset_id: Mandatory
| Field | Type | Description |
|---|---|---|
| context | nuance.biosec.v1.Context | Mandatory. General request context. |
| gk_voiceprint_profile_id | nuance.biosec.v1.UniqueId | Mandatory. Unique ID of the voiceprint profile for training. |
TrainResponse
Output message that defines parameters returned by Train.
| Field | Type | Description |
|---|---|---|
| status | nuance.rpc.Status | General operation status. |
| result | TrainResult | The result of the train operation. |
TrainResult
Contains information about the outcome of the operation and the current status of the voiceprint profile. Included in TrainResponse.
| Field | Type | Description |
|---|---|---|
| train_status | nuance.biosec.v1.TrainStatus | Specifies the completion status of the train operation. |
| reason | nuance.biosec.v1.TrainReason | Specifies the outcome of the train operation and failure reason when applicable. |
| status | VoiceprintProfileStatus | Indicates whether the voiceprint profile is trained or not. |
| voiceprint_details | VoiceprintDetails | General information about the voiceprint profile. |
| gk_calibration_model_revision_id | nuance.biosec.v1.UniqueId | Unique ID of the calibration model that the system uses to train the template. |
| total_segments | google.protobuf.Int32Value | Total number of enrollment segments considered in template training. |
| total_valid_segments | google.protobuf.Int32Value | Number of enrollment segments that are used to create the template. |
| min_segments_required | google.protobuf.Int32Value | Minimum number of segments required for a successful training. |
| total_net_audio | google.protobuf.Duration | Total amount of net speech in all valid Segments. |
| min_net_audio_required | google.protobuf.Duration | Minimum amount of net speech required to train a valid template. |
| enrollment_segments_details | repeated EnrollmentSegmentDetails | Additional information about the enrollment segments that are used for training. |
VerifyRequest
Input message that defines parameters for Verify.
Uses the context field as follows:
- gk_engagement_id: Mandatory
- gk_session_id: Mandatory
- gk_scope_id: Mandatory
- configset_id: Mandatory
| Field | Type | Description |
|---|---|---|
| context | nuance.biosec.v1.Context | Mandatory. General request context. |
| One of audio: | Mandatory. Specifies the audio that is processed. |
|
| gk_media_segment_id | nuance.biosec.v1.UniqueId | Unique ID of a new media segment. |
| gk_processed_audio_id | nuance.biosec.v1.UniqueId | Unique ID of the processed audio. |
| gk_voiceprint_profile_id | nuance.biosec.v1.UniqueId | Mandatory. Unique ID of the voiceprint profile that the method verifies. |
| channel_selector | nuance.biosec.v1.AudioChannelSelector | Optional. Specifies the processed channel when processing media with multiple channels. This parameter is ignored if the media has a single channel or if the input is gk_processed_audio_id. |
| ignore_checkpoints | bool | Optional. If true, disable the checkpoints defined in configset (checkpointsForAuthentication and checkpointsForFraudDetection configuration parameters are ignored) to process the whole audio. If false or not defined, processing might stop before the end of audio (for example, if a match is found for any of the checkpoints defined). |
VerifyResponse
Output message that defines parameters returned by Verify.
| Field | Type | Description |
|---|---|---|
| status | nuance.rpc.Status | General operation status. |
| result | VerifyResult | Result of the verify operation. |
VerifyResult
Contains detailed information about the operation’s result. Included in VerifyResponse.
| Field | Type | Description |
|---|---|---|
| voiceprint_details | VoiceprintDetails | General information about the voiceprint profile. |
| gk_media_segment_id | nuance.biosec.v1.UniqueId | Optional. The media ID of the audio segment. |
| gk_processed_audio_id | nuance.biosec.v1.UniqueId | Optional. The unique ID of the processed audio. In case, the system needs to reprocess the audio, a new gk_processed_audio_id is created, even if the input audio is specified by gk_processed_audio_id. |
| decision | nuance.biosec.v1.Decision | Indicates if the given audio matches the specified voiceprint profile. |
| reason | DecisionReason | The reason for the decision. |
| authentication_score | AuthenticationScore | Authentication scores. |
| voice_class_score | google.protobuf.FloatValue | A score between 0 and 100 that can be used to categorize voices into classes according to various factors such as timbre, pitch, and so on. |
| risk_engine_result | nuance.biosec.v1.RiskEngineResult | Level of risk and reliability, computed by the risk engine. |
| gk_calibration_model_revision_id | nuance.biosec.v1.UniqueId | Unique ID of the calibration model that the system used. |
| audio_details | nuance.biosec.v1.AudioDetails | General audio metrics (such as gross audio, net audio, SNR, and so on). |
VoiceprintDetails
Contains general information about a single voiceprint profile.
| Field | Type | Description |
|---|---|---|
| gk_voiceprint_profile_id | nuance.biosec.v1.UniqueId | Unique ID of the voiceprint profile. |
| gk_owner_id | nuance.biosec.v1.UniqueId | Unique ID of the person or fraudster that the print belongs to. |
| owner_type | nuance.biosec.v1.OwnerType | The type of owner (person or fraudster). |
| profile_tag | string | The profile tag used to label one of the owner’s prints. |
| print_version | google.protobuf.Int32Value | Print version, incremented each time a print is retrained. |
VoiceprintResult
Detailed results of a specific print used in Verify, Identify, and DetectKnownFraudsters.
| Field | Type | Description |
|---|---|---|
| gk_voiceprint_profile_id | nuance.biosec.v1.UniqueId | Unique ID of the voiceprint profile. |
| One of score: | The print score. |
|
| authentication_score | AuthenticationScore | The person’s print score, used in Verify or Identify. |
| fraud_detection_score | FraudDetectionScore | The fraudster’s print score, used in DetectKnownFraudsters. |
voiceprints_common_types.proto
ConsistencyDecision
Specifies if an enrollment segment used for training is consistent with the other segments in the collection.
| Name | Number | Description |
|---|---|---|
| CONSISTENCY_DECISION_UNSPECIFIED | 0 | Audio consistency is not set. |
| CONSISTENCY_DECISION_CONSISTENT | 1 | The segment is consistent with other segments in the enrollment segments collection and probably belongs to the same person. |
| CONSISTENCY_DECISION_INCONSISTENT | 2 | The segment is inconsistent with other segments in the enrollment segments collection and probably belongs to a different person. |
DecisionReason
Voiceprint processing decision reason.
| Name | Number | Description |
|---|---|---|
| DECISION_REASON_UNSPECIFIED | 0 | Decision reason is not specified. |
| DECISION_REASON_AUDIO_OK | 1 | Audio is valid. |
| DECISION_REASON_NOT_ENOUGH_SEGMENTS | 2 | Processing requires more audio segments than provided. |
| DECISION_REASON_INVALID_AUDIO | 3 | Audio format is invalid or not supported. |
| DECISION_REASON_AUDIO_TOO_SHORT | 4 | Audio does not contain the amount of speech required to complete the process. |
| DECISION_REASON_AUDIO_TOO_SOFT | 5 | Audio speech level is lower than the level required to complete the process. |
| DECISION_REASON_AUDIO_TOO_LOUD | 6 | Audio is too loud and causes saturation. |
| DECISION_REASON_AUDIO_TOO_NOISY | 7 | Audio SNR (Signal to Noise Ratio) is too low. |
| DECISION_REASON_FRAUDSTER_INDICATION | 8 | A fraud attempt probably occurred. |
| DECISION_REASON_VOICEPRINT_MATCH | 9 | This is probably the authentic person. |
| DECISION_REASON_VOICEPRINT_NO_MATCH | 10 | This is probably not the authentic person. |
| DECISION_REASON_LOW_RELIABILITY | 11 | The system could not reach a reliable decision. |
| DECISION_REASON_NO_RISK_DETECTED | 12 | Risk was not detected. |
| DECISION_REASON_NO_SCORES | 13 | No available scores. |
| DECISION_REASON_INTERNAL_ERROR | 999 | An error occurred while making the decision. |
EnrollReason
Enroll operation result.
| Name | Number | Description |
|---|---|---|
| ENROLL_REASON_UNSPECIFIED | 0 | Value is not set. |
| ENROLL_REASON_INTERNAL_ERROR | 1 | An internal error prevented the system from completing the operation. |
| ENROLL_REASON_ENROLL_OK | 2 | Enroll completed successfully. |
| ENROLL_REASON_TOO_SHORT | 3 | Audio does not contain the amount of speech required to complete the process. |
| ENROLL_REASON_MISSING_MODEL | 4 | Audio has not a valid audio model. |
| ENROLL_REASON_ALREADY_ADDED | 5 | Audio is already added to the print |
| ENROLL_REASON_WRONG_PRINT_TYPE | 6 | Audio was processed for a different type of print |
EnrollStatus
Specifies if the enrollment segments collection of a print allows the system to train the print successfully.
| Name | Number | Description |
|---|---|---|
| ENROLL_STATUS_UNSPECIFIED | 0 | Enroll status is not set. |
| ENROLL_STATUS_TRAIN_NOT_POSSIBLE | 1 | Minimal requirements for training are not met. |
| ENROLL_STATUS_TRAIN_POSSIBLE | 2 | Minimum requirements for training are met, but Nuance recommends adding more audio. |
| ENROLL_STATUS_TRAIN_SUGGESTED | 3 | Optimal training requirements are met. |
| ENROLL_STATUS_FULL | 4 | Too many segments are added and it is not possible to add more. |
VoiceprintProfileStatus
Voiceprint profile status.
| Name | Number | Description |
|---|---|---|
| VOICEPRINT_PROFILE_STATUS_UNSPECIFIED | 0 | Voiceprint profile status is not set. |
| VOICEPRINT_PROFILE_STATUS_NOT_TRAINED | 1 | Print is not trained. |
| VOICEPRINT_PROFILE_STATUS_BASIC_TRAINED | 2 | Print is trained but can be improved using additional enrollment audio. |
| VOICEPRINT_PROFILE_STATUS_OPTIMAL_TRAINED | 3 | Print is trained with an optimal amount of audio. |
VoiceprintProfilesStatusJobState
| Name | Number | Description |
|---|---|---|
| VOICEPRINT_PROFILES_STATUS_JOB_STATE_UNSPECIFIED | 0 | Job state is not specified. |
| VOICEPRINT_PROFILES_STATUS_JOB_STATE_PENDING | 1 | Job is created but not started. |
| VOICEPRINT_PROFILES_STATUS_JOB_STATE_STARTED | 2 | Job started and is in running state. |
| VOICEPRINT_PROFILES_STATUS_JOB_STATE_COMPLETED | 3 | Job is completed and its results are published. |
| VOICEPRINT_PROFILES_STATUS_JOB_STATE_FAILED | 4 | An error occurred while running the job. |