Asterisk – Text to Speech

Asterisk – Text to Speech

Asterisk – Text to Speech

asterisk text to speech

Configuração de URA integrado com TTS e MYSQL

Esta demonstração foi criada em ambiente virtual, utilizando a versão 4 do Issabel (CentOS 7 64bits).
Apresenta como integrar em uma URA simples, a utilização do Google TTS juntamente com uma consulta a uma base de dados MYSQL (MariaDB) através de AGI escrito em PHP.

TTS (Text to Speech) é a tecnologia que permite sintetizar a fala humana, convertendo texto em linguagem normal.

 

Instalando pacotes necessários

Instalação dos pacotes necessários e dependências da API “googletts”.

# yum install perl-libwww-perl perl-IO-Socket-SSL perl-LWP-Protocol-https mpg123 git -y

Baixando a API “googletts”

Pagina da Api: http://zaf.github.io/asterisk-googletts/

cd /root
git clone git://github.com/zaf/asterisk-googletts
cp asterisk-googletts/googletts.agi /var/lib/asterisk/agi-bin/
cd /var/lib/asterisk/agi-bin/
chmod 700 googletts.agi
chown asterisk:asterisk googletts.agi

Criando a Base de Teste no MYSQL

mysql -u root -pSENHADOMYSQL
mysql>CREATE DATABASE tts;
mysql>CREATE TABLE cliente( id INT(11) UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, cpf VARCHAR(11) NOT NULL, nome VARCHAR(100) NOT NULL);
mysql>CREATE INDEX idx_cpf ON cliente(cpf);
mysql>INSERT INTO cliente (cpf,nome) VALUES (‘11111111111′,’João Roberto da Silva’),(‘22222222222′,’Paulo Ricardo dos Santos’),(‘33333333333′,’Maria Luiza Fernandes’);

Criando AGI para consulta ao MYSQL

Criar arquivo “/var/lib/asterisk/agi-bin/checkcpf.agi” com o seguinte conteúdo:

#!/usr/bin/php -q
<?php

include('phpagi.php');

$cpf = $argv[1];
$agi = new AGI();
$db = mysqli_connect("127.0.0.1","root","102030405060","tts");

if( ! $db ){
 $agi->verbose("Erro ao tentar conectar no MYSQL " . mysqli_connect_error());
 exit(0);
}

$res = $db->query("SELECT * FROM cliente WHERE cpf = '$cpf';");
if( $res->num_rows == 0 ){
  $agi->set_variable("CPFSTATUS",0);
  $agi->set_variable("CPFMESSAGE","CPF NAO ENCONTRADO. DIGITE NOVAMENTE");
}else{
  $row = $res->fetch_object();
  $agi->set_variable("CPFSTATUS",1);
  $agi->set_variable("CPFMESSAGE",$row->nome);
}
$res->close();
$db->close();
exit(0);
?>

Alterar permissões do arquivo
chmod 700 /var/lib/asterisk/agi-bin/checkcpf.agi
chown asterisk:asterisk /var/lib/asterisk/agi-bin/checkcpf.agi

Exten para testar incluída no from-internal
(em extensions_custom.conf )

exten => 5000,1,Verbose(Testando Google TTS);
same => n,Answer();
same => n,Agi(googletts.agi,”Seja bem vindo à empresa XYZ”,pt-BR);
same => n(ini),Agi(googletts.agi,”Por favor, digite o seu CPF”,pt-BR);
same => n,Read(CPF,”silence/1″,11,,,5);
same => n,Agi(checkcpf.agi,${CPF});
same => n,GotoIf($[ “${CPFSTATUS}” = “1” ]?ok:err);
same => n,Hangup();

same => n(ok),Agi(googletts.agi,”Olá, ${CPFMESSAGE}, escolha uma das opções a seguir.”,pt-BR);
same => n,MusicOnHold();
same => n,Hangup();

same => n(err),Agi(googletts.agi,”${CPFMESSAGE}”,pt-BR);
same => n,Goto(ini);

 

Soluções Relacionadas

Pabx IP – Central Telefônica IP

URA – Atendimento Automático