I must confess: I am a newbie to Asterisk , the popular open source PBX. This does not mean it is not a shrewd user of GNU / Linux
. Lately my interest in this software has increased since I'm trying to achieve integration with the PBX currently in use in the company.
Coming from an experience made with GNU / Bayonne - a scripting system with which to build IVR - I had already tried the integration of telephony and Festival. For the uninitiated, the festival is a translation software TTS (Text To Speech, ie from text to speech).
An IVR is essentially an answering machine, or an interactive telephone system: normally have an IVR menu through which perform actions (eg a premium to do this, press 2 to do that, etc.. Etc...) These menus are basically static and still require the use of pre-recorded voices. It 'obvious that having a TTS system that can translate the texts (eg retrieved from a database) to create the IVR much more flexible and personalized.
The difficulty arises because the Festival is, like most software, in English. Fortunately, a group of researchers of CNR Padova a change in the English voices and realize their Italian.
Let's see how to install Ubuntu on the combination Asterisk + Festival TTS in Italian. Prerequisites:
- Ubuntu 6 or 7
- Asterisk 1.4.x 1.2.xo
Of course the instructions are for the Ubuntu distro, but are easily adaptable to your favorite distro.
The steps are:
- Festival Install:
apt-get install festival - Install the entries for Italian festivals:
apt-get install festvox-italp16k festvox-itapc16k - (Ubuntu) Edit the file
/etc/init.d/festival : Remove an exit 0 that prevents to start the opening of Festival - Edit the file
/usr/share/festival/voices.scm ; it comes to adding the Italian male or female voice as the voice of default:
(defvar default-voice-priority-list
'(pc_diphone <- maschile
lp_diphone <- femminile
- Edit the file
/usr/share/festival/festival.scm to add a macro integration with Asterisk:
(define (tts_textasterisk string mode)
"(tts_textasterisk STRING MODE)
Apply tts to STRING. This function is specifically designed for use in server mode so
a single function call may synthesize the string. This function name may be added to
the server safe functions."
(let ((wholeutt (utt.synth (eval (list 'Utterance 'Text string)))))
(utt.wave.resample wholeutt 8000)
(utt.wave.rescale wholeutt 1.0)
(utt.send.wave.client wholeutt)))
This code is inserted before the last line: (provide 'festival) File festival.scm
- Start the Festival server:
/etc/init.d/festival start
At this point, we can use our extension.conf function Festival
exten => 100,1,Answer()
exten => 100,2,Festival(Ciao Mondo)
exten => 100,3,Hangup()
Happy Festival to You!
Tags: Call Center Systems | VoIP PBX | Asterisk Consultant Naples | PBX | Voip | Asterisk CTI | PBX | IP Phones | Networking | Linux
Development of IVR systems, callcenter, PBX Voip.