Get Started With Call Transcription

Introduction

Stream real-time audio from phone calls to your desired endpoint.

Call Transcription

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_ids 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.

Stuff you can build

  • AI Virtual Assistant // Create a virtual assistant to schedule (or reschedule) appointments, update account information and more.
  • Surveys and User Data Collection Systems // Collect unstructured data about your customers or users during a phone call.
  • Conversational AI IVR // Use Natural Language Understanding (NLU) to interpret spoken requests over the phone in lieu of a traditional IVR menu.
  • Real-Time Phone Call Monitoring // Monitor phone conversations for compliance or training purposes.
  • Sales and Support Conversation Insights // Transcribe phone calls to help sales and support teams learn best practices.

How it Works

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.

Example Callback Response // TRANSCRIBE Action
{
    "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"        
        }
       }
     }
    ]
}
Tracks

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.

End Transcript

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.

Example 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"
}
Live Transcription

If live_transcript is enabled, Voxology will send a sequence of real-time webhooks with the transcribed utterances on the phone call.

Example Live Transcript Webhook // First Leg (Caller)
{
  "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"
}
Example Live Transcript Webhook // Second Leg (Transfer)
{
  "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.


Getting Started

Call Transcription Programmable Voice API

This tutorial is a step-by-step guide to transcribing a call using Voxology’s Programmable Voice API.

Prerequisites

Tutorial

1. Set Up Your Google API Key In The Voxology Portal

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.

2. Set Up Your Webhook URLs

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.

3. Add TRANSCRIBE To A Call Flow

Include a TRANSCRIBE Action at the beginning of an existing Call Flow and add your webhook URLs from the previous step.

Example Call Flow Script // Transcribe Action
{
    "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"
      }
    ]
  }

4. Make Or Receive A Call

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.