Cómo integrar la llamada móvil a un chatbot usando un asterisco

0

Estoy desarrollando un chatbot basado en voz que puede llamar a una persona y mantener la conversación. Actualmente, el chatbot usa el micrófono y el altavoz de mi PC para el audio de entrada y salida. Estoy tratando de integrar esto a través de la red móvil para reemplazar el micrófono y el altavoz de mi PC con el móvil. Vea el diagrama de bloques en el enlace para comprender

mismo diagrama de bloques pero diferente nube

Estoy tomando la entrada del micrófono y la doy a un convertidor de voz a texto (S2TC) y la respuesta dada por chatbot dándola a un convertidor de texto a voz (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)

Ahora estoy tratando de utilizar un asterisco para conectarme a la red e integrar el móvil y mi chatbot. Para esto, necesito que todo lo que se hable en el móvil se reciba como 'in_audio' y 'out_audio' debe enviarse a través de la red.

Aquí el bot inicia la llamada, acabo de recibir un enlace para hacer una llamada , pero ¿cómo recibo o capturo in_audio a través de la red para enviarlo a mi programa o a mis convertidores y enviar el out_audio a un usuario? ¿Hay alguna función de asterisco para hacer esto? Si no es posible configurar el asterisco, ¿hay alguna forma de integrar la red móvil a los bots de voz?

Estoy creando la aplicación usando Python y el convertidor de voz a texto de Bing en Windows.

Nota: Soy nuevo en asterisco.

Raady
fuente

Respuestas:

1

Asterisk tiene interfaces de audiohooks que se pueden usar para esto (requiere codificación c / c ++)

También hay una interfaz EAGI (el sonido se puede recibir en el identificador de archivo número 3).

Problema principal con tal bot no conexión. Los servicios de telefonía usan voz de 8khz y eso NO es suficiente para un reconocimiento correcto. No hay forma de cambiar a una mejor voz, todos los códecs en la conexión PSTN / GSM en este momento son códecs de 8 kHz.

Además, IBM Watson tiene servicios de integración de telefonía (costosos), que aceptan llamadas, reconocen y envían resultados a través de una devolución de llamada. Pero nuevamente, la calidad del reconocimiento es terrible si el lenguaje de la persona del otro lado no es perfecto.

arheops
fuente