This tutorial explains how to use Voximplant and VoiceIt.io for creating an IVR that where users authenticate themselves using voice biometrics. Everyone’s voice has a unique pattern, or voiceprint. Biometric services like Voiceit allow you to recognize this voiceprint. We can leverage Voximplant’s serverless architecture to create the full biometricIVR using just less than 200 lines of code in one VoxEngine scenario. This example shows:
How to setup a basic IVR using VoxEngine in Voximplant.
How to use VoxEngine’s ApplicationStorage to store variables.
How to use the Recorder module to capture recordings.
How to interface with the VoiceIt.io API 2.0 without leaving the platform.
Why use voice biometric authentication
Typically some form of customer authentication is required for customer-specific interactions and data processing before proceeding too far in an IVR. The most common way to do this without prompting the user for a pre-designated code like a PIN is to use the caller’s phone number. While the phone number is universal, the phone network can hardly be considered a super secure environment as there are many methods of caller ID spoofing these days. Adding an additional layer of security in the form of voice biometric authentication resolves many of these issues. More importantly, voice biometrics can help automate the gathering of ID information, offloading agents and improving customer experience.
You can try it in action by calling +1 929 243-5993. If it is your first time calling with a given phone number, you will be asked to create a new voiceprint. After you have created that voiceprint, you can speak the passphrase again to authenticate.
Build it yourself
VoiceIt makes voice authentication accessible via their API and can be easily integrated with Voximplant in a few minutes. Let's do it!
First, you need to sign up for an account at https://voiceit.io/. After you login to VoiceIt developer console you can go to Settings to find your apiKey and apiToken that will be required for the integration to work.
Enrollment – a user should record his voice multiple times to create a voice print. The voice print will be used for authentication attempts in the future.
Authentication is done by comparing a phrase said by a user with a voice print stored in the system. VoiceIt works via a REST API and can authenticate using a voice record file. Different audio file formats are supported, but lossless formats are preferred for improved authentication. Voximplant supports lossless recording in the FLAC format which is also supported by VoiceIt.
Users – a voice print should be associated with a specific user in the system that should be created before the enrollment process. For simplicity, we will use the caller’s phone number as a unique identifier. We will use ApplicationStorage on Voximplant's side to store caller id : user id pairs, thus no external backend needed for the whole scenario to work.
You can learn more in the VoiceIt API documentation.
Create a new application in the Applications section of Voximplant control panel and name it
In the app scenarios section create a new VoxEngine scenario, you can name it
biometric-ivr. Paste in the provided code example for the scenario. Don't forget to specify your apiKey and apiToken values in it.
Now we need to buy a phone number that our users will call that will be connected to the scenario. This can be done in the Numbers section. Make sure to attach it to the application.
And last, but not least, setup Routing to forward all calls to the phone number you've just bought to the scenario for call processing. Open Routing and click the New Rule button, in the appeared form put AllCalls in the Name input, don't change the Pattern input and in the Available scenarios list choose biometric-ivr, it should appear in the Assigned scenario list after that. Click the Create rule button to finish the process.
Done! If you call the number you've bought and attached to the scenario you should hear the IVR prompt.