Learn how to use Voximplant and VoiceIt.io for creating an IVR where users authenticate themselves via 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 with less than 200 lines of code in one VoxEngine scenario. This example shows:
How to setup a basic IVR via 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 are 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.
1. Create a VoiceIt account
First, you need to sign up for an account at https://voiceit.io/. After you login to the VoiceIt developer console you can go to Settings to find your apiKey and apiToken that is required for the integration to work.
Enrollment – a user should record their voice multiple times to create a voice print. The voice print is 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 via 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, use the caller’s phone number as a unique identifier. 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.
2. Create a Voximplant application
Create a new application in the Applications section of the Voximplant control panel and name it voiceit.
3. Create a scenario
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. Do not forget to specify your apiKey and apiToken values in it.
4. Rent a phone number
Purchase a phone number that your users call. The number should be connected to the scenario. This can be done in the Numbers section. Make sure to attach it to the application.
5. Set up routing
And last but not least, set up routing to forward all calls to the phone number you have just bought to the scenario for call processing. When creating a rule, do not change the Pattern input and in the Available scenarios list choose biometric-ivr.
Done! If you call the number you bought and attached to the scenario you should hear the IVR prompt.