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.

< ?php
    //  Get the phone number of the caller
    $callerID = $currentCall->callerID;

    $date = date("Ymd") . "-" . date('h-i-s');

    //  Filename of the mp3 to be uploaded
    $id = $callerID . "-" . $date;

    //  FTP details, server, path, filename, extension
    $uploadURI = "ftp://ftp.example.com/" . $id . ".mp3";

    //  FTP Login details
    $ftpUser = "user";
    $ftpPassword ="pass";

    //  Email to deliver the message to
    $email = "mailto:tropovoicemail@example.com";

    //  What will appear in the email
    $messageBody = "nFrom: +" . $callerID .
        "nAt " . $date .
        "nLink: http://example.com/" . $id . ".mp3";

    //  Message to be played to the caller
    $spokenMessage = "This is Terence Eden's voicemail.
             Please leave your message at the beep and I will deliver it.";

    // What "voice" to use
    $voice = "Veronica";

    record($spokenMessage,
        array(
            "voice"=> $voice,
            "beep"=>true,
            "timeout"=>10,
            "silenceTimeout"=>7,
            "maxTime"=>60,
            "terminator" => "#",
            "recordFormat" => "audio/wav",
            "recordURI" => $uploadURI,
            "recordUser" => $ftpUser,
            "recordPassword" => $ftpPassword,
            "transcriptionOutURI" => $email,
            "onRecord"=>"recordFCN",
            "transcriptionID" => $messageBody
        )
    );

    function recordFCN($event)
    {
        say("You said" . $event->recordURI);
    }
?>

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.


Share this post on…

What links here from around this blog?

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.Allowed HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">