como integrar a chamada móvel a um chatbot usando asterisco

0

Estou desenvolvendo um chatbot baseado em voz que pode chamar uma pessoa e conversar. Atualmente, o chatbot usa meu microfone e alto-falante para áudio de entrada e saída. Eu estou tentando integrar isso através da rede móvel, a fim de substituir o microfone do meu PC e alto-falante com o celular. Veja o diagrama de blocos no link para entender

mesmo diagrama de blocos, mas nuvem diferente

Estou recebendo dados do microfone e dando-os a um conversor de fala para texto (S2TC) e a resposta dada pelo chatbot dando-o a um conversor de texto para fala (T2S).

import speech_recognition as sr
from speechtotext import convert_speech_to_text

r = sr.Recognizer()

with sr.Microphone() as source:
    # in_audio is the mic input
    in_audio = r.listen(source)

# bot give response based on input audio  
bot_response = chatbot(convert_speech_to_text(in_audio))
out_audio = convert_text_to_speech(bot_response)

Agora estou tentando utilizar o asterisco para conectar-se à rede e integrar o mobile e o meu chatbot. Para isso, preciso que o que quer que seja falado em dispositivos móveis seja recebido como 'in_audio' e 'out_audio' deve ser enviado pela rede.

Aqui o bot inicia a ligação, eu acabei de receber um link para fazer uma chamada , mas como eu recebo ou capturo o in_audio pela rede para enviar para o meu programa ou para meus conversores, e envio o out_audio para um usuário. Existem funções de asterisco para fazer isso? Se não for possível configurar o asterisco, existe alguma maneira de integrar rede móvel a bots de voz?

Estou construindo o aplicativo usando python e bing speech para o conversor de texto no Windows.

Nota: eu sou novo no asterisco.

    
por Raady 05.05.2018 / 22:28

1 resposta

0

Asterisco tem interfaces de audiohooks que podem ser usadas para isso (requer codificação c / c ++)

Além disso, há interface EAGI (o som pode ser recebido no identificador de arquivo número 3).

Principal problema com tal bot não conexão. Os serviços de telefonia usam voz de 8khz e isso NÃO é suficiente para o reconhecimento correto. Não há como mudar para uma melhor voz, todos os codecs na conexão PSTN / GSM no momento atual são codecs de 8khz.

O IBM Watson também possui serviços de integração de telefonia (custosos) que aceitam chamadas, reconhecem e enviam resultados via retorno de chamada. Mas, novamente, a qualidade do reconhecimento é terrível se a linguagem da pessoa do outro lado não for perfeita.

    
por 06.05.2018 / 12:23