Nicholas Skinner

Freelance website and web application developer

Archive for September, 2009

Integrating Text To Speech Into A Web Application: CDYNE Phone Notify Mini Review

Sunday, September 13th, 2009

CDYNE Phone Notify ScreenshotI recently had a requirement come up for a web application involving communicating a certain set of information over the telephone and receiving a response from the party on the other end acknowledging receipt of that information. I looked into various possibilities, the main one being Asterisk “the world’s leading open source PBX” (according to their website) however that would have involved a reasonably amount of setup in terms of the server, a VoIP provider, and actually getting TTS (Text to Speech) working using e.g. Festival.

I therefore started looking into alternatives, and came across the following:

I chose CDYNE Phone Notify, it basically provides a VoiceXML type service however it does not use the VXML standard.

See below for some of the advantages, disadvantages, and other things to note that I found when testing it out and integrating it into a PHP based web application:

Advantages:

  • Straight forward to interface with via SOAP (I used PHPs standard SOAP extension).
  • Easy to code scripts ranging from the simple to the more advanced.
  • Advanced script can be interactive and dynamic, taking user input via DTMF, sending it to a server you specify via HTTP and then proceeding with the script depending on the response received from the server.
  • Range of voice languages, ages, genders available.
  • Retries calls automatically up to 3 times.
  • Debugging via email containing log of what happened via the call.
  • Possible to change voices, voice speed, and insert pauses as and when required during a call.
  • Handles inbound calls*
  • Can transfer calls back to the PSTN depending on user input*
  • Possible to download converted TTS MP3 file*
  • Can record speech over the phone*

* Not features I had a need for / tested.

Disadvantages:

  • Charge is made even if calls are not successful, i.e. recipient does not answer (a limited number of retries are however available at no extra charge).
  • I have heard more realistic TTS sounding voices, and eventually went with a US voice because they seemed clearer / easier to understand than any of the UK voices available, rates are reasonable / inline with other VoIP providers for the UK.
  • They operate a payment system whereby your credit card is billed depending on your usage at the end of each month. This opens up the possibility of an application e.g. getting stuck in a loop and this resulting in a very large bill at the end of the month. A pre pay system would avoid this. However apparently they do monitor accounts for out of the ordinary usage levels.

Other things to note:

  • Surcharge for international calls, as it is a US based service (however this is somewhat to be expected).
  • Wiki contains all the documentation you need however it could be organised in a way that makes it easier to fine.
  • Documented commands “StatusChangePostUrl” “MaxCallLength” do not seem to work when specified on the “NotifyPhoneAdvanced” SOAP call, only when specified on the script as “~SetVar(maxcallseconds|60)~” and “~\StatusChangePostURL(example.com)~”.

Overall although it has some disadvantages I was impressed with the features available from the CDYNE Phone Notify service and the ease at which they can be utilised in PHP.