In a word, WOW! If you’ve previously used text-to-speech (TTS) applications with Incredible PBX™ or any other PBX, you fully appreciate the challenges of getting excellent voice quality from a synthesized voice. In addition to operating system quirks, you also had to scramble to find TTS software that had acceptable voice quality without breaking the bank. Well, it’s a new day. Amazon’s introduction of Polly TTS provides not only incredible voice quality but it comes at an unbelievable price point. Your first year is free for the first 5 million characters each month. After that and in subsequent years, it’s $4 for every million characters of TTS translation. The icing on the cake is the Wazo PBX application which provides a near perfect platform on which to implement custom applications. But, don’t take our word for it. Listen to this sample. The clip’s introduction uses the free Pico TTS voice. The Yahoo News headlines were generated with Polly. Can you say Night and Day?

The beauty of Nerd Vittles projects is it’s all about the freedom to choose rather than making do with choices selected by others. Today’s addition of the Polly TTS engine brings the number of TTS options supported with Incredible PBX for Wazo to four. In addition to the free options of FLITE, Festival, and PICO, you now have a dirt cheap commercial alternative that rivals the voice quality of any available TTS application on the market. And, as we promised a few weeks ago, we plan to add the IBM Bluemix TTS platform very soon.

Stewart Nelson was kind enough to share his audio clip comparing the Top Four commercial TTS applications. You can judge them for yourself. The clips are played in the following order: Amazon Parrot, Google Translate, IBM Bluemix TTS, and Microsoft.

How New TTS Apps Will Work in Incredible PBX. That’s only half of our story today. We also are introducing a new TTS methodology that makes it easy to roll your own TTS applications and take advantage of the voice platforms already installed on your Incredible PBX for Wazo server. In our new TTS design, there are three components. First, there’s a chunk of dialplan code that answers calls, prompts for input (if required), and then passes the call off for processing and generation of the TTS results using the desired TTS platform.

The processing and TTS components consist of two PHP/AGI scripts on Asterisk® servers. This may be slightly different on 3CX servers once the functionality becomes available. The results processing script actually obtains the data to feed to the TTS processing engine. For example, this could be news headlines or a local weather forecast. This script generates plain text suitable for processing by any TTS engine. Finally, the TTS script stores your user credentials (if required) and handles translation of the results data into an audio file using the TTS platform of your choice. It also plays the audio "results" to the caller. As you add new applications, all that is necessary is a short dialplan snippet and a results processing script to obtain the necessary text to feed the TTS processing script.

Here’s a sample Asterisk dialplan snippet for the Yahoo News Headlines application. Note that you need only change the pollytts line of code to switch TTS engines. Simple design!

;# // BEGIN nv-news-yahoo
exten => 951,1,Answer
exten => 951,n,Wait(1)
exten => 951,n,Set(TIMEOUT(digit)=7)
exten => 951,n,Set(TIMEOUT(response)=10)
exten => 951,n,AGI(picotts.agi,"Please hold while we get the headlines.",en-US)
exten => 951,n,AGI(nv-news-yahoo.php,10) ;  obtain latest 10 Yahoo NEWS Headlines
exten => 951,n,NoOp(News: ${NEWS}) ;  display NEWS in text format on Asterisk CLI
exten => 951,n,AGI(pollytts.php,"${NEWS}") ; pass NEWS to TTS engine for playback
exten => 951,n,Hangup
;# // END nv-news-yahoo

The picotts line (above) shows the syntax to use the Pico TTS engine instead of pollytts. The new line would look like the following. Doesn’t get much easier than this:

exten => 951,n,AGI(picotts.agi,"${NEWS}",en-US)

Getting Started. Here are the steps to get everything working with your existing Incredible PBX for Wazo platform. First, you’ll need credentials from Amazon Polly after you create or sign in to your an Amazon AWS account. Enter "Polly" in the AWS dialog to add the service. Open your Security Credentials by clicking on your name and choosing My Security Credentials. Create a new Access Key ID and Secret. Make note of your Amazon region. You’ll need it as well as your credentials in a minute. Next, you’ll need to put the pieces in place on your Wazo server to support Polly TTS. We’ve made this easy by bundling everything into a single tarball. Just log into your server as root, download the tarball, untar it, add MP3 support for SOX, run the included script to install the dialplan code, and edit the pollytts.php script to install your Amazon credentials. Install time: under a minute.

cd /var/lib/asterisk/agi-bin
tar zxvf nv-polly-wazo.tar.gz
rm -f nv-polly-wazo.tar.gz
apt-get -y install libsox-fmt-mp3
nano -w pollytts.php

Once the pieces are in place and the editor opens, insert your Amazon key, secret, and region code. Then save the file: Ctrl-X, Y, then ENTER. Finally, you can try out the two sample applications on your PBX. Dial 951 for Yahoo News or 947 for Weather. Our live demo now uses the IBM Bluemix TTS engine for News (option 5) and Amazon’s Polly TTS engine for a current Weather Forecast by ZIP Code (option 6).

Live Demo: Enjoy!

Originally published: Monday, May 1, 2017

SECURITY ALERT: The Sangoma® Portal reportedly has been compromised. According to Sangoma’s Chief Operating Officer, customers’ root passwords were stored on Sangoma servers as a favor to customers to facilitate future support access by Sangoma staff. That procedure now has been discontinued. Although not acknowledged, the root passwords were apparently stored in unencrypted format unbeknownst to customers. More than a dozen customers have since reported their servers were compromised using their own root credentials. Sangoma maintains there is a "theoretical possibility" that their portal was the culprit although the COO indicates that they have been unable to find any evidence of an intrusion. Rootkit appears to be a word missing from the Sangoma lexicon. If you do business with Sangoma through their web portal, you are well advised to check your server immediately to determine if your PBX also has been compromised. Full details regarding breach detection and a link to Sangoma’s response are available on the PIAF Forum. If your server has been hacked, prudence would dictate rebuilding your server from the ground up. There was no mention whether Sangoma did the same after a previous unauthorized intrusion. As this incident reinforces, attempting to patch a compromised server is extremely risky.

Support Issues. With any application as sophisticated as this one, you’re bound to have questions. Blog comments are a terrible place to handle support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forums. It’s the best Asterisk tech support site in the business, and it’s all free! Please have a look and post your support questions there. Unlike some forums, the PIAF Forum is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of users just like you. You won’t have to wait long for an answer to your question.

Need help with Asterisk? Visit the PBX in a Flash Forum.


Special Thanks to Our Generous Sponsors

FULL DISCLOSURE: 3CX, RentPBX, Amazon, Vitelity, DigitalOcean, Vultr and others provide financial support to Nerd Vittles and our open source projects through advertising or referral revenue. We’ve chosen these providers not the other way around. Our decisions were based upon their corporate reputation and the quality of their offerings and their pricing. Our technology recommendations are reached independently of financial considerations except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

Awesome Vitelity Special. Vitelity has generously offered a terrific discount for Nerd Vittles readers. You now can get an almost half-price DID from our special Vitelity sign-up link. If you’re seeking the best flexibility in choosing an area code and phone number plus the lowest entry level pricing plus high quality calls, then Vitelity is the hands-down winner. Vitelity provides Tier A DID inbound service in over 3,000 rate centers throughout the US and Canada. When you use our special link to sign up, Nerd Vittles gets a few shekels down the road to support our open source development efforts while you get an incredible signup deal as well. The going rate for Vitelity’s DID service is $7.95 a month which includes up to 4,000 incoming minutes on two simultaneous channels with terminations priced at 1.45¢ per minute. Not any more! For our users, here’s a deal you can’t (and shouldn’t) refuse! Sign up now, and you can purchase a Tier A DID with unlimited incoming calls and four simultaneous channels for just $3.99 a month. To check availability of local numbers and tiers of service from Vitelity, click here. NOTE: You can only use the Nerd Vittles sign-up link to order your DIDs, or you won’t get the special pricing! Vitelity’s rate is just 1.44¢ per minute for outbound calls in the U.S. There is a $35 prepay when you sign up. This covers future usage. Any balance is refundable if you decide to discontinue service with Vitelity.

​​3CX is a software PBX that’s easy to install & manage. It includes integrated softphones, WebRTC conferencing and essential add-ons out of the box, at no additional cost. Try the free edition at Better yet, download the PIAF5 ISO powered by 3CX. Free version includes support for 8 simultaneous calls with a SIP trunk.

  • Run on Premise or in the Cloud, on Windows and now on Linux
  • Softphones for iOS, Android, Win & Mac
  • Easy install, backup & restore, version upgrades
  • Automatically configures IP Phones, SIP Trunks & Gateways

  • RentPBX, a long-time partner and supporter of PIAF project, is offering generous discounts for Nerd Vittles readers. For all of your Incredible PBX hosting needs, sign up at and use code NOGOTCHAS to get the special pricing. The code will lower the price to $14.99/month, originally $24.99/month. It’s less than 50¢/day.

    Some Recent Nerd Vittles Articles of Interest…

    Be Sociable, Share!


    This article has 1 comment

    1. Thank you for coming up with all these clever apps! Any plans to implement this for Incredible PBX for Raspberry Pi?

      [WM: We’va already taken a look at it on both the Raspbian and CentOS platforms, but no cigar thus far. You really need the very latest version of Debian to get all of the Amazon pieces working properly. At least, that is my impression from what I’ve seen thus far.]