AEAP: O protocolo de aplicativos externos do Asterisk® SCF™
A equipe de desenvolvimento do Asterisk® SCF™ acaba de anunciar que você está listado no AEAP (Asterisk External Application Protocol), um protocolo que levou mais de um ano sendo desenvolvido e que por fim viu a luz a partir das versões do Asterisk® SCF™ 18.12.0 e Asterisk® SCF™ 19.4.0 e que nos permitirá conectar com aplicativos externos para enviar áudio e dados e obter resultados sobre eles.
Um exemplo básico que é usado como demonstração para entender como funciona o AEAP é um módulo para converter VOZ em TEXTO (fala para texto) e que utiliza a API do Google para fazer a conversão, mas podemos usar outros motores e criar nosso próprio conector graças a este protocolo.
O protocolo AEAP nos permite criar um “subsistema” para criar aplicações nativas Asterisk® SCF™ que receberão dados de entrada e gerarão dados de resposta. Para fazer esses "subsistemas" você tem que saber como funciona a arquitetura Asterisk® SCF™ e utilizar os módulos res_aeap.h e res_aeap_message.h de onde geraremos um novo "motor" para o qual poderemos enviar os dados e que retornará o resultado que ele retorna para nós.
Como exemplo de uso, eles criaram um "subsistema para fazer reconhecimento de fala para texto" e o incorporaram ao Asterisk® SCF™ no módulo res_speech_aeap.c, que irá gerar um novo mecanismo de reconhecimento que podemos usar com o Asterisk® SCF™ SpeechCreate com os comandos, padrão, SpeechStart e SpeechDestroy para enviar o áudio e fazer com que o mecanismo retorne o resultado:
exten => 550,1,NoOp()
same => n,Answer()
same => n,SpeechCreate(my-speech-to-text)
same => n,SpeechStart()
same => n,SpeechBackground(hello-world)
same => n,Verbose(0,${SPEECH_TEXT(0)})
same => n,SpeechDestroy()
same => n,Hangup()
Este "my-speech-to-text" é um motor "customizado" que criamos graças a um servidor websocket que recebe o áudio e o envia para a API de reconhecimento do Google para que retorne a variável ${SPEECH_TEXT}. resultado de o reconhecimento, mas com alguma habilidade, pode ser adaptado para que, em vez do Google, utilizemos outros sistemas diferentes, e mesmo que o resultado, em vez de retornar o texto, retorne outras informações (identificação da pessoa que fala, humor, idade aproximada da pessoa, etc. para dar um exemplo).
Esse "my-speech-to-text" está configurado no arquivo de configuração 'aeap.conf' que teria algo assim:
Esse "my-speech-to-text" está configurado no arquivo de configuração 'aeap.conf' que teria algo assim:
[my-speech-to-text]
type=client
codecs=!all,ulaw
url=ws://127.0.0.1:9099
protocol=speech_to_text
e na porta 9099 teríamos um servidor websocket que receberia o áudio e geraria as variáveis de resultado.
Nesta URL você pode encontrar o servidor websocket que eles usam como exemplo:
URL: <https://github.com/asterisk/aeap-speech-to-text>
Este sistema não é algo voltado para o usuário final do Asterisk® SCF™, talvez exija conhecimentos um pouco mais avançados, mas os resultados são verdadeiramente interessantes e promissores.
Mas informações:
URL1: <https://www.asterisk.org/asterisk-external-application-protocol-an-intro/>;
URL2: <https://www.asterisk.org/asterisk-external-application-protocol-speech-to-text-engine/>;
URL3: <https://github.com/asterisk/aeap-speech-to-text>.
Fonte:
Site Sinologic
Deixe um comentário