Las plataformas de voz como Alexa y el Google Assistant facilitan la creación de tu propia experiencia de voz, incluso sin profundizar en el procesamiento de audio: todo es parte de la plataforma. Pero, ¿qué pasa si prefieres optar por una solución alojada por ti mismo, ejecutando un asistente en tu propio sitio web, en tu propia infraestructura?
Rasa es una herramienta de construcción de chatbot extensible y amigable para desarrolladores de self-hosting. Botium Speech Processing es una API unificada y fácil de desarrollar para los mejores servicios gratuitos y de código abierto Speech-to-Text y Text-to-Speech disponibles. Combinemos esto, pero primero echemos un vistazo rápido a la arquitectura.
Tabla de contenidos
Arquitectura
1. El usuario habla por un micrófono.
2. Un servicio Speech-To-Text se traduce en texto (Botium Speech Processing).
3. Un motor NLU extrae información del texto (Rasa).
4. Un motor de diálogo crea una respuesta de texto (Rasa).
5. Un servicio Text-To-Speech se traduce en texto hablado (Botium Speech Processing).
6. El usuario escucha el archivo de audio.
La imagen es de esta publicación de blog de Rasa
Pasos de instalación
Así que vayamos a la parte divertida.
Prerrequisitos
Esto es lo que necesitas tener disponible para poder desarrollar este tutorial:
- Cliente de Git.
- Docker y Docker-Compose.
Lanzamiento del servicio de procesamiento de voz Botium.
Botium Speech Processing viene con una configuración predeterminada razonable.
Ambos son gratuitos y de código abierto y una buena combinación para iniciarse con las tecnologías de voz. Además, sin duda se encuentran entre las mejores herramientas de voz gratuitas disponibles.
Puedes iniciarlo con unas pocas llamadas a:
$ git clone https://github.com/codeforequity-at/botium-speech-processing.git $ cd botium-speech-processing $ docker-compose up -d
Dependiendo de la velocidad de la red y del hardware, este paso puede llevar un tiempo.
Apuntando tu navegador a http: // localhost mostrará el explorador de API para Botium Speech Processing.
Configurar Rasa
Usaremos Sara, el Rasa Demo Bot, como ejemplo.
Puedes encontrar información de primera mano en el repositorio de Github.
Prefiero usar Docker en lugar de instalar todo localmente. Entonces, puedes usar estas llamadas para descargar el bot de demostración Rasa y ejecutar un primer entrenamiento:
$ git clone https://github.com/RasaHQ/rasa-demo.git $ cd rasa-demo $ docker run — rm -v .:/app rasa/rasa:latest-full train — domain domain.yml — data data/core data/nlu — out models/dialogue — augmentation 0
Dependiendo de la velocidad de la red y del hardware, este paso puede llevar un tiempo.
Coloca este archivo docker-compose.yml en la carpeta Rasa:
version: ‘3.0’ services: rasa: image: rasa/rasa:latest-full ports: - 5005:5005 volumes: - ./:/app environment: RASA_DUCKLING_HTTP_URL: http://rasa-duckling:8000 command: run — model models/dialogue — endpoints endpoints.yml rasa-actions: build: context: . ports: - 5055:5055 rasa-duckling: image: rasa/duckling ports: - 8000:8000
En el archivo endpoints.yml, cambie la URL del punto final de acciones de http: // localhost: 5055 / webhook a http: // rasa-actions: 5055 / webhook.Ahora inicia el servicio Rasa:
$ docker-compose up -d
El servicio de Rasa ahora está esperando conexiones.
Agrega capacidades de voz a Rasa
Este repositorio de Github incluye un conector personalizado basado en el conector Socket.io integrado de Rasa que agrega capacidades de Speech-To-Text y Text-To-Speech a Rasa.
Primero, clona el repositorio y copia la carpeta de conectores a la carpeta Rasa:
$ git clone https://github.com/codeforequity-at/botium-speech-processing.git $ cd botium-speech-processing $ cp -R connectors <rasa-dir>
En el archivo Connectors / rasa / credentials.yml, hay una configuración de muestra para el conector personalizado Rasa.
Puedes usar este archivo directamente o copiar la configuración del conector botium.SocketIOVoiceInput a su Rasa credentials.yml existente
Cambia el archivo para que apunte a tu ordenador para el procesamiento de voz (también inicia un conector REST por conveniencia y otras pruebas):
botium.SocketIOVoiceInput: socketio_path: /socket.io user_message_evt: user_uttered bot_message_evt: bot_uttered session_persistence: false botium_speech_url: http://localhost botium_speech_apikey: botium_speech_language: en botium_speech_voice: dfki-poppy-hsmmrest:
Luego, cambia el archivo docker-compose.yml para que Rasa use este conector.
version: ‘3.0’ services: rasa: image: rasa/rasa:latest-full ports: - 5005:5005 volumes: - ./:/app environment: PYTHONPATH: “/app/connectors/rasa:/app” RASA_DUCKLING_HTTP_URL: http://rasa-duckling:8000 command: run — cors “*” — credentials /app/connectors/rasa/credentials.yml — enable-api — model models/dialogue — endpoints endpoints.yml rasa-actions: build: context: . ports: - 5055:5055 rasa-duckling: image: rasa/ducklingports: - 8000:8000
Reinicia Rasa para realizar los cambios en tus contenedores Docker.
$ docker-compose up -d
Pruebas
Hay un cliente de prueba simple basado en Rasa Voice Interface disponible en el proyecto Botium Speech Processing.
En el directorio conectores / rasa / client, cambia el endpoint de Rasa en el archivo docker-compose.yml:
version: ‘3’ services: frontend: build: context: . args: RASA_ENDPOINT: http://localhost:5005 RASA_PATH: /socket.io PUBLIC_PATH: / image: botium/botium-speech-rasa-voice restart: always ports: - 4700:8080
Luego, inicia el sitio web con “docker-compose up -d” y accede a la interfaz web en http: // localhost: 4700 para iniciar una conversación con tu bot en Rasa.
La interfaz de voz en acción
¡Ahora es el momento de utilizar el micrófono y los altavoces y charlar con Rasa!
Estimado no carga el contenedor botiumspeechprocessing-frontend-1 de la imagen: botium/botium-speech-frontend:latest
sale el siguiente mensaje: Restarting (1) Less than a second ago
en el explorador sale: 502 Bad Gateway
Alguna ayuda de que podria ser.
Me salio ese mensaje por falta de memoria RAM. Ya pude resolver
El contenedor rasa-demo_rasa_1 no sube.
STATUS: Exited(0)
COMMAND: «rasa –help»