[AsteriskBrasil] URA interativa com reconhecimento de voz
Eduardo Assis - Pro Redes
eassis em linuxmail.org
Sexta Janeiro 18 16:13:11 BRST 2013
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/bb1a9aaa/attachment.htm
Mais detalhes sobre a lista de discussão AsteriskBrasil