Stream real-time audio from phone calls to your desired endpoint.
Voxology’s Call Transcription service enables you to easily transcribe audio from phone calls to a user-defined webhook and is supported on all phone calls placed or received via Voxology’s Programmable Voice. Every transcribed call receives the full transcript when the call ends or when transcription is stopped. Developers also have the option to receive webhooks as the audio is transcribed in real-time with Live Transcription. In addition to the call transcript, each webhook includes metadata such as phone numbers, call direction, call_id
s and timestamps.
Now that automated transcription services are reliably transcribing speech to text in real-time, (Google Speech-to-text, Amazon Transcribe, Microsoft Azure), machine learning can be more easily applied to develop communications-related artificial intelligence (AI). Communication that occurs over the phone can be transcribed and analyzed to help businesses with compliance, understand how to better serve their customers, and create insights into the effectiveness of their communications.
Add the TRANSCRIBE Call Flow Action to an existing call flow using the Programmable Voice API. When a call is placed or received, Voxology will send the transcript of the call to a user-defined URL via a webhook.
{
"actions": [
{
"type": "TRANSCRIBE",
"params": {
"action": "start",
"hints": ["appointment", "payment", "return", "balance"],
"tracks": ["caller", "transfer"],
"live_transcript_webhook": {
"url": "https://mywebhook.url-test/live"
},
"end_transcript_webhook": {
"url": "https://mywebhook.url-test/end"
},
"end_transcript_webhook_failover": {
"url": "https://webhook.url-test/end-failover"
}
}
}
]
}
There are two tracks available to transcribe. The caller
track contains the audio from whomever is interacting directly with your Voxology number. This will be the person calling in to a phone number provisioned on the Voxology platform, or the recipient of an outbound call placed via a REST request.
Should the caller be transferred to a new destination via the TRANSFER action, the transfer
track will contain the audio from the participant.
You can define which tracks you want transcribed in the tracks
array.
By default, Voxology will send a full transcript after the call is completed, or after the transcription has been stopped, in an end_transcript
webhook.
{
"start_time": "2022-01-26T20:33:07.570Z",
"transcript": [
{
"track_name": "caller",
"sequence_number": 1,
"text": "I would like to make an appointment.",
"confidence_score": 0.7715668082237244,
"timestamp": "2022-01-26T20:33:18.353Z"
}
{
"track_name": "transfer",
"sequence_number": 2,
"text": "2:30 on Wednesday.",
"confidence_score": 0.7815648092232200,
"timestamp": "2022-01-26T20:33:21.274Z"
}
],
"service": "programmable_voice",
"api_no": "+12097149240",
"end_time": "2022-01-26T20:33:44.125Z",
"transcribe_name": "",
"subaccount_id": 0,
"type": "end_transcript",
"caller_no": "+19495964625",
"app_id": "165a8cde-8ef6-42d3-b42c-a37bb0f22d42",
"call_id": "117723@3031086802",
"direction": "inbound"
}
If live_transcript
is enabled, Voxology will send a sequence of real-time webhooks with the transcribed utterances on the phone call.
{
"start_time": "2022-01-26T20:33:07.570Z",
"transcript": [
{
"track_name": "caller",
"sequence_number": 1,
"text": "I would like to make an appointment.",
"confidence_score": 0.7715668082237244,
"timestamp": "2022-01-26T20:33:18.353Z"
}
],
"service": "programmable_voice",
"api_no": "+11231231234",
"transcribe_name": "",
"subaccount_id": 0,
"type": "live_transcript",
"caller_no": "+13213214321",
"app_id": "1111aa-22bb-33cc-4d4d-555d5d5d55d",
"call_id": "111111@1234567890",
"direction": "inbound"
}
{
"start_time": "2022-01-26T20:33:07.570Z",
"transcript": [
{
"track_name": "transfer",
"sequence_number": 2,
"text": "2:30 on Wednesday.",
"confidence_score": 0.7815648092232200,
"timestamp": "2022-01-26T20:33:21.274Z"
}
],
"service": "programmable_voice",
"api_no": "+11231231234",
"transcribe_name": "",
"subaccount_id": 0,
"type": "live_transcript",
"caller_no": "+13213214321",
"app_id": "1111aa-22bb-33cc-4d4d-555d5d5d55d",
"call_id": "111111@1234567890",
"direction": "inbound"
}
To learn more, see the TRANSCRIBE Call Flow Action as well as the live_call
and end_call
transcription webhooks.
This tutorial is a step-by-step guide to transcribing a call using Voxology’s Programmable Voice API.
In order to use our transcription services, you will need to integrate your Voxology application with Google’s Speech-To-Text API. Go to the Google Integrations page in the Portal and add your Google API key.
Tell Voxology where to send your transcript callback by creating a webhook URL to receive the live and end transcripts. Adding Live Transcript Webhook URL will enable live transcription on the call.
To quickly test transcription, you can set your webhook URLs to the Webhook.site service following these steps:
A. Go to Webhook.site.
B.
Copy/Paste
"Your unique URL" value into the webhook URL objects in the call flow in the next step. You can create multiple URLs by opening a new https://webhook.site tab and clicking +NEW.
Include a TRANSCRIBE
Action at the beginning of an existing Call Flow and add your webhook URLs from the previous step.
{
"actions": [
{
"type": "TRANSCRIBE",
"params": {
"action": "start",
"hints": ["appointment", "payment", "return", "balance"],
"tracks": ["caller", "transfer"],
"live_transcript_webhook": {
"url": "https://mywebhook.url-test/live"
},
"end_transcript_webhook": {
"url": "https://mywebhook.url-test/end"
},
"end_transcript_webhook_failover": {
"url": "https://webhook.url-test/end-failover"
}
}
},
{
"type": "SAY",
"params": {
"text": "Hi, thank you for calling. How can we help you?"
}
},
{
"type": "PAUSE",
"params": {
"seconds": 10
}
},
{
"type": "SAY",
"params": {
"text": "Sure, please hold while we transfer your call"
}
},
{
"type": "TRANSFER",
"params": {
"no": "+YOUR_DESTINATION_NUMBER",
"caller_id_no": "+OUTBOUND_CALLER_ID"
}
},
{
"type": "HANGUP"
}
]
}
Make a call from or receive a call to your Voxology number and the transcript of the call will be sent to the webhook URL(s) you designated.