Tropo Voicemail Transcription Service

I've been using Ribbit Voicemail ever since SpinVox died. Sadly, Ribbit has croaked.

So, how to get my voicemails transcribed and have MP3s emailed to me?

Enter Tropo!

Tropo makes it simple to build phone, SMS and Instant messaging applications. You use the web technologies you already know and Tropo's powerful cloud API to bring real-time communications to your apps.

Basically, you write PHP to run on Tropo's servers, which then can interact with Voice and Text.

Following Tropo's great tutorials, I was able to knock up this voicemail system in a few minutes.

This accepts a voice call, plays a message, records the call and uploads it to an FTP site. Then it emails me the transcription.

  1. < ?php
  2.  // Get the phone number of the caller
  3.  $callerID = $currentCall->callerID;
  4.  
  5.  $date = date("Ymd") . "-" . date('h-i-s');
  6.  
  7.  // Filename of the mp3 to be uploaded
  8.  $id = $callerID . "-" . $date;
  9.  
  10.  // FTP details, server, path, filename, extension
  11.  $uploadURI = "ftp://ftp.example.com/" . $id . ".mp3";
  12.  
  13.  // FTP Login details
  14.  $ftpUser = "user";
  15.  $ftpPassword ="pass";
  16.  
  17.  // Email to deliver the message to
  18.  $email = "mailto:[email protected]";
  19.  
  20.  // What will appear in the email
  21.  $messageBody = "\nFrom: +" . $callerID .
  22.   "\nAt " . $date .
  23.   "\nLink: http://example.com/" . $id . ".mp3";
  24.  
  25.  // Message to be played to the caller
  26.  $spokenMessage = "This is Terence Eden's voicemail.
  27.    Please leave your message at the beep and I will deliver it.";
  28.  
  29.  // What "voice" to use
  30.  $voice = "Veronica";
  31.  
  32.  record($spokenMessage,
  33.   array(
  34.    "voice"=> $voice,
  35.    "beep"=>true,
  36.    "timeout"=>10,
  37.    "silenceTimeout"=>7,
  38.    "maxTime"=>60,
  39.    "terminator" => "#",
  40.    "recordFormat" => "audio/wav",
  41.    "recordURI" => $uploadURI,
  42.    "recordUser" => $ftpUser,
  43.    "recordPassword" => $ftpPassword,
  44.    "transcriptionOutURI" => $email,
  45.    "onRecord"=>"recordFCN",
  46.    "transcriptionID" => $messageBody
  47.   )
  48.  );
  49.  
  50.  function recordFCN($event)
  51.  {
  52.   say("You said" . $event->recordURI);
  53.  }
  54. ?>

The Result

tropo transcription screenshot
The transcription is terrible. It doesn't even get the gist of the message. Interestingly, the transcription quality is fantastic if the caller speaks with an American accent. This is an acknowledged problem with the Tropo platform - you can pass the voice file to a paid-for transcription service if you want.

The email won't let you customise the subject line, nor can you attach the voice file. As you can see, there is some scope for customising the message body - so a link to the file can be placed there. Filesize is about 0.5MB for a 60 second voicemail - so nice and quick to download even over GPRS.

What's Next?

The nice thing about this system is that it's pretty customisable. I can set up personalised greetings based on the caller's number, I can route messages in various ways, and generally muck around with it.

I think I'll play about with Tropo for now. It's free, easy to use, and just about does the job. I'm hearing good things about Twilio so may give them a trial next.

If you'd like to leave me a voicemail, call me on +441865521052.


What Do You Reckon?