and have a tape announcement as a text which must be translated via text to speech. When I try to call an outgoing phone number how can I setup the text to speech variable and the recipient?
An example would be
ami.action({
'action': 'originate',
'??? phonenumber ???': '12345',
'??? text to be spoken ???': 'Hello, this is a tape announcement'
}, (err, res) => {
if (err) {
throw err;
}
console.log('everything was fine');
});
@david551 Currently I don’t know how to setup the command. I have a text as a string and want to call someone, how / where can I pass in the text and the Asterisk engine launches a text to speech message when calling?
If using AMI Originate action you can pass the string as a channel variable, then using the Exten option trigger your tts engine from the dial plan using system() or shell() command + playback()
That will send text as text, not as speech. I don’t believe there is any speech synthesis API in Asterisk. I think you have to use third party tools to construct the file and then play that file out.
So currently I think it would be the best way to use a TTS tool (third party addon) because we only get strings to process => on demand. I think it would be bad to generate a audio file on demand, make a call and delete the file afterwards.
Many people would use Google, but there may be data protection issues with doing that.
Those on a zero budget would probably use Festival.
In many cases you can assemble messages from pre-recorded segments, which is how Asterisk handles its own messages, but you can’t do that for free text.
Hi… Could someone suggest me a Text-to-speech solution with better quality than Cepstral ?
I need a solution like Cepstral that allows me to produce wave files or voices from text without internet access. I’ve found Cepstral really simple to integrate in asterisk and I’m looking for something like that with better voice quality…
Thanks in advance.
Matteo