Automated Mass Transcription of Audio Files
Use Case - The customer has 1200+ .WAV files from a legacy platform, which are used as menu prompts within their IVR. However the issue is that these are not fully documented and each file is simply numbered.
The goal is to know the full transcriptions of each of these files, for these to eventually be used in Cyara Test Cases to test a new IVR platform post-migration.
The group of .WAV files vary in length from less than 3 seconds to several minutes. Transcribing each of these files without a level of automation would be a time consuming task.
Solution
The solution to this problem can be broken down into 4 stages to obtain the information that is required.
- Bulk Uploading the Audio Files into the Cyara Platform.
- Running an Outbound Campaign that is designed to fail on each call. (So that the expect to hear step is transcribed).
- Running a matching Inbound Campaign that is using a Data Driven variable to insert each uploaded Audio File into the Test Case.
- The resulting Report from the Outbound Campaign, will contain a transcription for each Audio File which is then obtained via the Cyara API
1. Bulk Uploading Audio Files.
The uploading audio files step is a simple task where multiple files can be selected during the file upload process. This was done in batches of several hundred audio files, and all of the required files were uploaded to a specific folder within the Audio Files management system.
https://support.cyara.com/hc/en-us/articles/360004234696-Audio-File-Management
2. Running an Outbound Campaign that is designed to fail on each call.
Running a campaign that is designed to fail on each call might sound like a strange concept, however it does have advantages due to how the Cyara platform handles Test Case failures. In this instance we designed a test case that had an “Expect to Hear” prompt that would never match against any actual audio, so that it would guarantee a failure on each call attempt. By having this call intentionally fail, Cyara would then Transcribe what it has heard on the call each time.
The Expect to Hear prompt used also included the {AllowHangUpInReply} Tag, so that it would immediately end the call as soon as the supplied .WAV file audio from the Inbound Test Case ended.
3. Running a linked Inbound Campaign that is using a Data Driven variable to insert each uploaded Audio File into the Test Case.
For this step a .CSV spreadsheet containing all of the uploaded Audio File names was added, and the Test Case used in the Inbound Campaign was set to use an Audio File as the Reply Type for the first test case step. A parameter of [WAV-NAME] was used as the first row header of the .CSV spreadsheet, and this was also used as the Reply With field in the test case.
https://support.cyara.com/hc/en-us/articles/360004233616-Data-Driven-Audio-Files
4. The resulting Report from the Outbound Campaign, will contain a transcription for each Audio File which is then obtained via the Cyara API
Once both campaigns have been run the Outbound campaign Report contained a call failure for each supplied .WAV file that was added by the Data Driven Inbound Campaign. By clicking onto any failed call in this Outbound Report, a Transcription is available for the supplied .WAV File.
This Transcription was then obtained by the Cyara API using the following endpoint.
Https://www.cyaraportal.com/cyarawebapi/3.0/accounts/*ID*/transcription/testresults/
Finally to tie all of the information together, a simple Python script was used to step through each Row in a Google Drive Spreadsheet that contained all of the Audio File names, and linked the transcription information to each audio file by calling the above Cyara 3.0 API endpoint.
Please sign in to leave a comment.
Comments
0 comments