Dando voz a Rasa con Botium Speech

Una forma de crear tu propia plataforma de voz utilizando las herramientas de código abierto Rasa y Botium Speech Processing.

- ,

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.

Desarrollo de ChatBots para empresas

Creamos chatbots en WhatsApp, Facebook Messenger, Telegram...

Contáctanos en nuestra web

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.

  • MaryTTS para conversión de texto a voz
  • Kaldi para Speech-To-Text

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!

Entradas del mismo autor

Deja un comentario