Daspeak Client usage¶
This is an example of how to use the Daspeak client:
Check if the API is alive¶
from vericlient import DaspeakClient
client = DaspeakClient(apikey="your_api_key")
print(f"Alive: {client.alive()}")
Get the available biometrics models¶
from vericlient import DaspeakClient
client = DaspeakClient(apikey="your_api_key")
print(f"Biometrics models: {client.get_models().models}")
Get the metadata of a biometrics model¶
from vericlient import DaspeakClient
from vericlient.daspeak.models import GetModelMetadataInput
client = DaspeakClient(apikey="your_api_key")
model = client.get_models().models[-1]
metadata = client.get_model_metadata(GetModelMetadataInput(hash=model)).metadata
print(f"Model {metadata.hash} is {metadata.description}")
Get the calibrations a model supports¶
Any value returned here is valid as the calibration argument of generate_credential
and of the comparison inputs.
from vericlient import DaspeakClient
from vericlient.daspeak.models import GetModelCalibrationsInput
client = DaspeakClient(apikey="your_api_key")
model = client.get_models().models[-1]
calibrations = client.get_model_calibrations(GetModelCalibrationsInput(hash=model)).calibrations
print(f"Supported calibrations: {calibrations}")
Find out which model generated a credential¶
Useful to check whether a credential you stored some time ago still matches a model the service offers today.
from vericlient import DaspeakClient
from vericlient.daspeak.models import GetModelMetadataFromCredentialInput
client = DaspeakClient(apikey="your_api_key")
metadata = client.get_model_metadata_from_credential(
GetModelMetadataFromCredentialInput(credential=stored_credential),
).metadata
print(f"Generated with model {metadata.hash} ({metadata.description})")
Generate a credential from an audio file¶
The following code generates a credential from an audio file using the last model:
from vericlient import DaspeakClient
from vericlient.daspeak.models import GenerateCredentialInput
client = DaspeakClient(apikey="your_api_key")
model_input = GenerateCredentialInput(
audio="/home/audio.wav",
hash=client.get_models().models[-1],
)
generate_credential_output = client.generate_credential(model_input)
print(f"Credential generated with an audio file: {generate_credential_output.credential}")
You can also check the authenticity of the audio file, its duration, and its net speech duration:
print(f"Authenticity of the audio file: {generate_credential_output.authenticity}")
print(f"Duration of the audio file: {generate_credential_output.duration}")
print(f"Net speech duration of the audio file: {generate_credential_output.net_speech_duration}")
Generate a credential from a bytes object¶
from vericlient import DaspeakClient
from vericlient.daspeak.models import GenerateCredentialInput
client = DaspeakClient(apikey="your_api_key")
with open("/home/audio.wav", "rb") as f:
model_input = GenerateCredentialInput(
audio=f.read(),
hash=client.get_models().models[-1],
)
generate_credential_output = client.generate_credential(model_input)
print(f"Credential generated with virtual file: {generate_credential_output.credential}")
Compare a credential with an audio file¶
You can compare a credential with an audio file using the following code:
from vericlient import DaspeakClient
from vericlient.daspeak.models import CompareCredential2AudioInput
client = DaspeakClient(apikey="your_api_key")
compare_input = CompareCredential2AudioInput(
audio_to_evaluate="/home/audio.wav",
credential_reference=generate_credential_output.credential,
)
compare_output = client.compare(compare_input)
print(f"Similarity between the credential and the audio file: {compare_output.score}")
Similarly, you can check the authenticity of the audio file and its durations durations:
print(f"Authenticity of the audio file: {compare_output.authenticity_to_evaluate}")
print(f"Durations of the audio file: {compare_output.duration_to_evaluate}")
print(f"Net speech duration of the audio file: {compare_output.net_speech_duration_to_evaluate}")
Compare a credential with a bytes object¶
from vericlient import DaspeakClient
from vericlient.daspeak.models import CompareCredential2AudioInput
client = DaspeakClient(apikey="your_api_key")
with open("/home/audio.wav", "rb") as f:
compare_input = CompareCredential2AudioInput(
audio_to_evaluate=f.read(),
credential_reference=generate_credential_output.credential,
)
compare_output = client.compare(compare_input)
print(f"Similarity between the credential and the virtual file: {compare_output.score}")
Compare two audio files¶
You can compare two audio files, no matter if they are virtual or real:
from vericlient import DaspeakClient
from vericlient.daspeak.models import CompareAudio2AudioInput
client = DaspeakClient(apikey="your_api_key")
with open("/home/audio.wav", "rb") as f:
compare_input = CompareAudio2AudioInput(
audio_reference="/home/audio.wav",
audio_to_evaluate=f.read(),
)
compare_output = client.compare(compare_input)
print(f"Similarity between the two audio files: {compare_output.score}")
Compare two credentials¶
You can compare two credentials using the following code:
from vericlient import DaspeakClient
from vericlient.daspeak.models import CompareCredential2CredentialInput
client = DaspeakClient(apikey="your_api_key")
compare_input = CompareCredential2CredentialInput(
credential_reference=generate_credential_output.credential,
credential_to_evaluate=generate_credential_output.credential,
)
compare_output = client.compare(compare_input)
print(f"Similarity between the two credentials: {compare_output.score}")
Identify a subject comparing an audio against a list of credentials¶
You can identify a subject comparing an audio against a list of credentials using the following code:
from vericlient import DaspeakClient
from vericlient.daspeak.models import CompareAudio2CredentialsInput
client = DaspeakClient(apikey="your_api_key")
compare_input = CompareAudio2CredentialsInput(
audio_to_evaluate="/home/audio.wav",
credential_list=[
("subject1_credential", generate_credential_output.credential),
("subject2_credential", generate_credential_output.credential),
],
)
compare_output = client.compare(compare_input)
print(f"Subject identified: {compare_output.scores}")