[AsteriskBrasil] RES: URA interativa com reconhecimento de voz

Wagner Sanerip saneripdv em gmail.com
Sexta Janeiro 18 16:24:07 BRST 2013


Rapaz isso valeu ouro.

 

Obrigado!

 

 

De: asteriskbrasil-bounces em listas.asteriskbrasil.org [mailto:asteriskbrasil-bounces em listas.asteriskbrasil.org] Em nome de Eduardo Assis - Pro Redes
Enviada em: sexta-feira, 18 de janeiro de 2013 16:13
Para: asteriskbrasil em listas.asteriskbrasil.org
Assunto: [AsteriskBrasil] URA interativa com reconhecimento de voz

 

Utilizando o AGI do Autor "Lefteris Zafiris" é possivel trabalhar com reconhecimento de voz e conversão de audio para texto do Google. 

 

Para ajudar alguns, fiz uma pequena receita:

 

Site para download:

 

http://zaf.github.com/asterisk-googletts/

Linux: wget https://github.com/downloads/zaf/asterisk-googletts/asterisk-googletts-0.6.tar.gz --no-check-certificate

 

http://zaf.github.com/asterisk-speech-recog/

Linux: wget https://github.com/downloads/zaf/asterisk-speech-recog/asterisk-speech-recog-0.5.tar.gz --no-check-certificate

 

/tmp# tar xvfz asterisk-googletts-0.6.tar.gz

/tmp# tar xvfz asterisk-speech-recog-0.5.tar.gz

 

cp asterisk-googletts-0.6/googletts.agi /var/lib/asterisk/agi-bin/

cp asterisk-speech-recog-0.5/speech-recog.agi /var/lib/asterisk/agi-bin/

 

Como utilizo Slackware ( Arrebenta  !!! ) tive que instalar a libwww-perl

 

Criei um no Mysql 02 tabelas para registrar as informações:

 

Tabela:consultarecebida

Campos: reconheceu - Varchar(255)

 

Tabela:ramais

Campos: ramal - Varchar(255)

Campos: nome - Varchar(255)

 

 

 

; Ura com reconhecimento de Voz

;

exten => 4006,1,Answer()

 

exten => 4006,n,NoOp( Faço gravação para depois ouvir o que ele falou e comparar com o que reconheceu )

exten => 4006,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)

exten => 4006,n,MixMonitor(/pasta_gravacao/arquivo.wav,W(2)W(2))

 

exten => 4006,n(Inicio),agi(googletts.agi,"Após o sinal, fale o nome para procura",pt-BR)

exten => 4006,n,agi(speech-recog.agi,pt-BR,3)

exten => 4006,n,NoOp( O que reconheceu: ${utterance} )

 

exten => 4006,n,NoOp( Gravo no BD )

exten => 4006,n,MYSQL(Connect connid localhost user senha banco)

exten => 4006,n,MYSQL(Query resultid ${connid} INSERT INTO consultarecebida (reconheceu) VALUES ("${utterance}"))

exten => 4006,n,MYSQL(Disconnect ${connid})

 

exten => 4006,n,NoOp( Consulta nome no BD )

exten => 4006,n,MYSQL(Connect connid localhost user senha banco)

exten => 4006,n,MYSQL(Query resultid ${connid} SELECT ramal FROM ramais WHERE nome LIKE "%${utterance}%")

 

exten => 4006,n,MYSQL(Fetch fetchid ${resultid} ramal)

exten => 4006,n,MYSQL(Clear ${resultid})

exten => 4006,n,MYSQL(Disconnect ${connid})

 

exten => 4006,n,NoOp( Ramal encontrado -> ${ramal} )

 

exten => 4006,n,GotoIf($["${ramal}" != ""]?localizado:naolocalizado)

 

exten => 4006,n(localizado),NoOp( Discando para o ramal de ${utterance} )

exten => 4006,n,Dial(SIP/${ramal},60,Tt)

exten => 4006,n,Hangup()

 

exten => 4006,n(naolocalizado),NoOp( Nao Localizado)

exten => 4006,n,agi(googletts.agi,"Não foi possivel identificar ou localizar o nome ${utterance}",pt-BR)

exten => 4006,n,agi(googletts.agi,"Estou transferindo para um atendente",pt-BR)

exten => 4006,n,Dial(SIP/200,60,Tt)

exten => 4006,n,Hangup()

 

 

Com este pequeno exemplo conseguimos Gravar e Ouvir o que nosso cliente falou.


Como fica registrado como o Google reconheceu, podemos ir adicionando o texto reconhecido pelo Google no Mysql.


Dando uma certa inteligencia para o reconhecimento.

 

Ex:

Eduardo Ramal 200

Eduard  Ramal 200

Edvardo Ramal 200

 

Abraços.

 

Eduardo Assis
Gerente Comercial
+55 19 3406-7524
+55 19 9256-4050
www.proredes.com.br
www.telefonasti.com.br
 

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20130118/5ee8f719/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil