Asterisk AGI MacinTalk

Asterisk AGI MacinTalk


I just wrote an AGI that lets you call MacinTalk as follows

exten => exten,pri,agi,macintalk|The text you want spoken goes here

Put the following into /var/lib/asterisk/agi-bin/macintalk


#!/bin/bash
trap 'rm /tmp/agi$$_*; exit' INT TERM HUP
#declare -a array
while read -e ARG && [ "$ARG" ] ; do :; done # variables not needed
#        array=(` echo $ARG | sed -e 's/://' -e 's/"//g'`)
#       varname=${array[0]}
#        unset array[0]
#       export $varname="${array[*]}"
#done
unqarg=` echo $1 | sed -e 's/"//g'`

checkresults() {
        while read line
        do
        case ${line:0:4} in
        "200 " ) echo $line >&2
                 return;;
        "510 " ) echo $line >&2
                 return;;
        "520 " ) echo $line >&2
                 return;;
        *      ) echo $line >&2;;       #keep on reading those Invlid command
                                        #command syntax until "520 End ..."
        esac
        done
}

say -v Fred -o /tmp/agi$$_1.aiff "$unqarg"
sox /tmp/agi$$_1.aiff -r 8000 -t ul /tmp/agi$$_2.ulaw
echo "EXEC Playback /tmp/agi$$_2"
checkresults

rm /tmp/agi$$_*



If you need sox, I got it by going to http://www.waveformsoftware.com and downloading SoX Wrap. Double clicking on the package installs the necessary libraries, then I copied SoX Wrap.app/Contents/Resources/sox to /usr/local/bin so that it could be used as a command.

How to use Macintalk

On MacOS X, open the Terminal application and type:

say -v Vicki --channels=1 --data-format=UI8@8000 -o /tmp/outfile.wav "Isn't it nice to have a computer that will talk to you?"

If you just type either of the following commands, the computer will simply read it out:

say -v Fred "Hello there!"
or
echo "Hello there!" | say -v Victoria

"man say" displays a manpage that lists the file formats and voices available.

On Ubuntu, if sox gives you this error, you probably are missing option sound formats packages: sox soxio: Failed reading `/tmp/myfile.wav': unknown file type `auto'. If so, do an sudo apt-get update && sudo apt-get install libsox-fmt-all See which sound formats you've got with a good old: sox --help | grep "SUPPORTED FILE FORMATS"

See also


Asterisk AGI MacinTalk


I just wrote an AGI that lets you call MacinTalk as follows

exten => exten,pri,agi,macintalk|The text you want spoken goes here

Put the following into /var/lib/asterisk/agi-bin/macintalk


#!/bin/bash
trap 'rm /tmp/agi$$_*; exit' INT TERM HUP
#declare -a array
while read -e ARG && [ "$ARG" ] ; do :; done # variables not needed
#        array=(` echo $ARG | sed -e 's/://' -e 's/"//g'`)
#       varname=${array[0]}
#        unset array[0]
#       export $varname="${array[*]}"
#done
unqarg=` echo $1 | sed -e 's/"//g'`

checkresults() {
        while read line
        do
        case ${line:0:4} in
        "200 " ) echo $line >&2
                 return;;
        "510 " ) echo $line >&2
                 return;;
        "520 " ) echo $line >&2
                 return;;
        *      ) echo $line >&2;;       #keep on reading those Invlid command
                                        #command syntax until "520 End ..."
        esac
        done
}

say -v Fred -o /tmp/agi$$_1.aiff "$unqarg"
sox /tmp/agi$$_1.aiff -r 8000 -t ul /tmp/agi$$_2.ulaw
echo "EXEC Playback /tmp/agi$$_2"
checkresults

rm /tmp/agi$$_*



If you need sox, I got it by going to http://www.waveformsoftware.com and downloading SoX Wrap. Double clicking on the package installs the necessary libraries, then I copied SoX Wrap.app/Contents/Resources/sox to /usr/local/bin so that it could be used as a command.

How to use Macintalk

On MacOS X, open the Terminal application and type:

say -v Vicki --channels=1 --data-format=UI8@8000 -o /tmp/outfile.wav "Isn't it nice to have a computer that will talk to you?"

If you just type either of the following commands, the computer will simply read it out:

say -v Fred "Hello there!"
or
echo "Hello there!" | say -v Victoria

"man say" displays a manpage that lists the file formats and voices available.

On Ubuntu, if sox gives you this error, you probably are missing option sound formats packages: sox soxio: Failed reading `/tmp/myfile.wav': unknown file type `auto'. If so, do an sudo apt-get update && sudo apt-get install libsox-fmt-all See which sound formats you've got with a good old: sox --help | grep "SUPPORTED FILE FORMATS"

See also


Created by: jcovert, Last modification: Sun 25 of Apr, 2010 (23:00 UTC) by simon
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+