
Compartir:
Ingeniero de soluciones para clientes en Vonage. Con experiencia en gestión de productos, operaciones de redes y sistemas, atención al cliente, control de calidad y gestión de equipos de desarrollo de software, Tony trabaja en el sector de las telecomunicaciones, antes en Francia y ahora en Estados Unidos. Ayuda a grandes y pequeñas empresas de todo el mundo a desarrollar soluciones mediante servicios programables de voz, mensajería, vídeo y autenticación multifactor.
Habilitar por voz un chatbot de sólo texto
Tiempo de lectura: 11 minutos
Visión general
Aprenda aquí cómo añadir interacción por voz a su chatbot de sólo texto existente.
Esta aplicación utiliza Voice API de Vonage para el reconocimiento de voz y las capacidades de conversión de texto a voz para permitir que tu chatbot escuche las solicitudes habladas de las personas que llaman y reproduzca las respuestas.
Se admiten más de cuarenta idiomas locales para la activación por voz de su chatbot.
Hay dos ejemplos de código de aplicación Voice API y una aplicación chatbot de texto simple en este tutorial; la primera aplicación Voice API se conectará al servicio de aplicación chatbot simple que simula peticiones/respuestas cuyo único propósito es ilustrar cómo un chatbot real puede ser habilitado para voz, y la segunda aplicación Voice API de ejemplo tiene las mismas capacidades de voz básicas que la primera, actualizarás esa aplicación para integrarla con tu chatbot real para peticiones/respuestas usando la primera como referencia.
El código de ambas aplicaciones Voice API admite llamadas de voz entrantes o salientes desde/hacia los usuarios, según sea necesario para el caso de uso de su chatbot.
En este tutorial, utilizaremos y haremos referencia al repositorio Voice API Applications repositorio GitHub y el simulador de chatbot simple repositorio de GitHub.
Requisitos previos
Necesitarás:
Node.js,
Ngrok,
una Account API de Vonage,
Opcionalmente Heroku para un despliegue alojado.
A continuación se detalla la configuración de cada requisito previo.
Instalación de Node.js
Instale nvm (Gestor de versiones de nodos); si utiliza el sistema operativo Windows, consulte estas notas importantes
Instala la versión 16 de Node.js con el comando:
nvm install 16Usa la versión 16 de Node.js con el comando:
nvm use 16Hemos probado las aplicaciones con Node.js versión 16.15.1
Instalación de Ngrok
Para comenzar a probar rápidamente, puedes ejecutar la aplicación Voice API y la aplicación de simulador de chatbot simple en tu computadora local; sin embargo, deben ser accesibles desde Internet para usar la Voice API de Vonage, por ejemplo, para recibir llamadas de webhook para eventos como llamadas de voz entrantes, llamadas respondidas, transcripciones de reconocimiento de voz. Esta capacidad se logra instalando el servicio de túnel de Internet ngrok.
Cada aplicación necesitará su propio túnel ngrok.
Para configurar ngrok:
Asegúrese de que está utilizando la última versión de ngrok y no una versión previamente instalada de ngrok,
Regístrese para obtener una cuenta Account,
Verify your email address from the email sent by ngrok,
Recuperar su Authoken,
Ejecute el comando
ngrok config add-authtoken<your-authtoken>Configurar ambos túneles
Ejecutar
ngrok config editPara una cuenta ngrok libre, añada las siguientes líneas al fichero de configuración de ngrok (bajo la línea authoken):
tunnels:
six:
proto: http
addr: 6000
eight:
proto: http
addr: 8000Para una cuenta ngrok de pagopuede establecer los nombres de host de ngrok que nunca cambiarán en cada nuevo lanzamiento de ngrok; añada las siguientes líneas al archivo de configuración de ngrok (bajo la línea authoken) - establezca los nombres de host (deben ser únicos) a los valores reales deseados:
tunnels: six: proto: http addr: 6000 hostname: youmustsetanamehere6.ngrok.io eight: proto: http addr: 8000 hostname: youmustsetanamehere8.ngrok.ioCopia
Nota: La aplicación Voice API se ejecutará en el puerto local 8000 y la aplicación de chatbot simple se ejecutará en el puerto local 6000.
Iniciar ambos túneles ngrok
Ejecutar
ngrok start six eightVerá líneas como... Interfaz web http://127.0.0.1:4040 Reenvío https://xxxxxxx.ngrok.io -> http://localhost:6000 Reenvío https://yyyyyyy.ngrok.io -> http://localhost:8000
Toma nota de xxxxxxx.ngrok.io (sin la inicial https://), el asociado al puerto local 6000, ya que se configurará como
BOT_SERVERen los siguientes pasos,Anote https://yyyyyyy.ngrok.io (con el https:// delante), el asociado al puerto local 8000, ya que será necesario en los siguientes pasos.
Cuenta API de Vonage
Conéctese a su o regístrate para obtener una cuenta API de Vonage.
Ir a Sus AplicacionesAcceder a una aplicación existente o + Crear una nueva aplicación.
En la sección Capacidades (haga clic en [Editar] si no ve esta sección Capacidades):
Activar Voice
En URL de respuesta, deje HTTP GET e introduzca
https://<host>:<port>/answer(sustituya<host>y<port>por el nombre de host público y, si es necesario, el puerto público del servidor donde se ejecuta la aplicación Voice API de ejemplo), por ejemplo https://yyyyyyyy.ngrok.io/answer o https://myappname.herokuapp.com/answer (véanse las secciones siguientes) o https://myserver2.mycompany.com:40000/answer (despliegue en sus propios servidores)En URL de evento, seleccione HTTP POST (en lugar de HTTP GET) e introduzca
https://<host>:<port>/event(sustituya<host>y<port>por el nombre de host público y, si es necesario, el puerto público del servidor en el que se ejecuta la aplicación Voice API de ejemplo), por ejemplo https://yyyyyyyy.ngrok.io/evento https://myappname.herokuapp.com/event ver secciones siguientes(véanse las secciones siguientes) o https://myserver2.mycompany.com:40000/event (despliegue en sus propios servidores)Haga clic en [Generar clave pública y privada] si aún no las ha creado o desea crear unas nuevas y, a continuación, guárdelas como
.private.key(observe el punto inicial en el nombre del archivo) en la carpeta que contendrá la aplicación Voice API. IMPORTANTE: No olvide hacer clic en [Guardar cambios] en la parte inferior de la pantalla si ha creado un nuevo conjunto de claves.Vincule un número de teléfono a esta aplicación si aún no se ha vinculado ninguno a la aplicación.
Por favor, tome nota de su ID de solicitud y el número de teléfono vinculado (ya que son necesarios en la siguiente sección).
Para los siguientes pasos, necesitarás:
Tu clave API de Vonage (como
API_KEY)Tu Secreto de API de Vonageno es un secreto de firma (como
API_SECRET)Su ID de aplicación (como
APP_ID),El número de teléfono vinculado a su solicitud (como
SERVICE_NUMBER), tu teléfono llamará a ese número,El nombre de host y puerto públicos del servidor de chatbot Simple Text-Only (como
BOT_SERVER), el argumento no tiene prefijo http:// ni https://, ni / al final, ni sub-ruta, por ejemplo xxxxxxx.ngrok.io o mysimplebotname.herokuapp.com o myserver1.mycompany.com:32000
Configuración de Heroku
Después de probar localmente, en un momento posterior, puede desplegar opcionalmente en entornos alojados en Heroku.
Para configurar Heroku,
Instale git.
Regístrese para obtener una cuenta Heroku Account.
Instale la Heroku línea de comandos e inicie sesión en su cuenta de Heroku.
Para desplegar las Applications, siga las instrucciones de la sección Despliegue en Heroku.
Desarrollo
Veamos cómo funcionan las aplicaciones.
Primera fase
En la primera fase, vamos a utilizar y desplegar la aplicación de referencia voice-on-text-bot-app-with-simple-bot.js del repositorio Voice Enabling Text Bot Application repositoriojunto con la aplicación chatbot simple very-simple-bot.js del repositorio repositorio Voice-Enabling Text Bot Simple Chatbot.
Implantación local en su ordenador para ambas aplicaciones
Voice enabling text-only chatbot. Local deployment for tests
Descargue el código de la aplicación de referencia del repositorio repositorio a una carpeta local, luego vaya a esa carpeta.
Copie el archivo env.example en un nuevo archivo llamado .env (con un punto delante): cp env.example .env
Edite el archivo .env y establezca los valores de los cinco parámetros (consulte las secciones anteriores):
API_KEY=
API_SECRET=
APP_ID=
BOT_SERVER=
SERVICE_NUMBER=Instale las dependencias una vez:
npm install
Asegúrese de que ngrok se ha iniciado con ambos túneles como se explica en las secciones anteriores.
Inicie la aplicación:
node voice-on-text-bot-app-with-simple-bot.js
Descargue el código de la aplicación de chatbot simple del repositorio repositorio a una carpeta local, luego ve a esa carpeta.
Inicie la aplicación:
node very-simple-bot.js
Para interactuar mediante llamadas de voz con el sencillo bot, llame al número de teléfono vinculado a su aplicación, el que aparece como SERVICE_NUMBER.
Despliegue en Heroku
Opcionalmente, puede desplegar ambas aplicaciones en entornos alojados en Heroku.
Asegúrate primero de que tus aplicaciones funcionan como se espera con el despliegue local en tu ordenador y de que has configurado Heroku en los requisitos previos.
Vaya a la carpeta donde tiene la aplicación Voice API,
Si aún no dispone de un repositorio git local, cree uno:
git init
git add .
git commit -am "initial"
Comienza creando esta aplicación en Heroku desde la línea de comandos utilizando la CLI de Heroku: Nota: En el siguiente comando, sustituye "myappname" por un nombre único en toda la plataforma Heroku.
heroku create myappname
o heroku create myappname --team <xxxxx> (si su Account de Heroku utiliza equipos)
En tu dashboard de Heroku donde se muestra la página de tu aplicación, haz click en el botón Settings, añade las siguientes Config Vars y establécelas con sus respectivos valores:
API_KEY
API_SECRET
APP_ID
BOT_SERVER (see further below)
SERVICE_NUMBER
PRIVATE_KEY_FILE with the value ./.private.keyAhora, despliegue la aplicación:
git push heroku master
En tu panel de control de Heroku, donde se muestra la página de tu aplicación, haz clic en el botón Abrir aplicación. Ese nombre de host es el que se utilizará en tu correspondiente Capacidades de la aplicación Voice API de Vonage (haz clic en la aplicación correspondiente y luego en [Editar]).
Por ejemplo, los enlaces respectivos serían (sustituya myappname por el valor real):
https://myappname.herokuapp.com/answer
https://myappname.herokuapp.com/event
Ver más detalles en la sección anterior Cuenta API de Vonage.
Ve a la carpeta donde tienes la aplicación chatbot muy sencilla,
Si aún no dispone de un repositorio git local, cree uno:
ir a esta carpeta de aplicaciones bot simple
git init
git add .
git commit -am "initial"
Crea esta aplicación en Heroku desde la línea de comandos utilizando la CLI de Heroku:
Nota: En el siguiente comando, sustituye "mysimplebotname" por un nombre único en toda la plataforma Heroku.
heroku create mysimplebotname
o heroku create mysimplebotname --team <xxxxx> (si su Account de Heroku utiliza equipos)
Despliegue de la aplicación
git push heroku master
En este caso, al configurar la aplicación Voice API, el parámetro BOT_SERVER para el otro despliegue Heroku será mysimplebotname.herokuapp.com (sustituye mysimplebotname por su valor real, no hay https:// inicial, ni / final).
Para interactuar mediante llamadas de voz con el sencillo bot, llame al número de teléfono vinculado a su aplicación, el que aparece como SERVICE_NUMBER.
Funcionamiento de las Applications
La aplicación voice-on-text-bot-app-with-simple-bot.js:
Utiliza Voice API de Vonage con el SDK de servidor Node.js '@vonage/server-sdk',
Valores preestablecidos para el:
Código de idioma ASR (Automatic Speech Recognition) y TTS (Text-to-Speech), como "languageCode",
Saludo inicial, como 'greetingText',
y otros parámetros comentados.
Gestiona las rutas de los webhooks:
/makecall
Si desea iniciar llamadas salientes
Actualice el número en el objeto callInfo. Debe ser el número internacional completo (formato E.164), con el código de país, sin el signo "+" inicial, sin prefijos internacionales como "011" o "00", sin guiones "-" ni espacios.
Llamará a la ruta '/placecall'
Para iniciar la llamada saliente, en un navegador web, introduzca la dirección web
<this-application-host-name>/placecall, por ejemplo xxxxxxx.ngrok.io/makecall
'/placecall'
Aquí es donde se realiza realmente una solicitud API de llamada saliente de voz.
/respuesta
Esta ruta de webhook es llamada por la plataforma Voice API de Vonage en una llamada de voz entrante o cuando se responde una llamada de voz saliente,
El tramo de llamada (Voice API) se identifica por su valor UUID,
La aplicación devuelve un OCNC donde:
Se reproduce un saludo a la parte remota con "acción": "hablar",
Inicia un ciclo ASR (Automatic Speech Recognition) con "acción": "entrada",
La plataforma Voice API llamará a la URL del webhook especificada en el parámetro eventUrl (ruta /asr) tanto si se ha detectado voz como si no.
/evento
La plataforma Voice API de Vonage llama a esta ruta de webhook en diferentes estados del tramo de llamada de voz con un valor UUID determinado,
En esta aplicación, no hay acciones en respuesta a esta ruta webhook aparte de devolver el código HTTP 200 (ok).
/asr
La plataforma Voice API de Vonage llama a esta ruta de webhook cuando se obtienen resultados de ASR (reconocimiento automático del habla), ya sea que se haya devuelto una transcripción correctamente o no, por ejemplo, si hubo ruidos en lugar de palabras habladas o si se agotó el tiempo de espera si no se detectó ningún sonido (la duración del tiempo de espera corresponde al parámetro
startTimeoutdel parámetro)Inicia un nuevo ciclo ASR devolviendo un NCCO con "acción": "entrada"
'/botreply'
Esta ruta webhook es llamada por el chatbot simple para devolver una respuesta de texto de una solicitud de texto,
A continuación, inicia un TTS (Text-to-Speech) para reproducir la respuesta del chatbot.
En esta aplicación, configure el idioma ASR (Reconocimiento Automático de Voz) y el idioma TTS (Text-To-Speech) (parámetro languageCode) que coincidan con el idioma de tu chatbot de texto. Más de 40 idiomas locales están disponibles con Voice API de Vonage tanto para ASR como para TTS.
Las dos últimas líneas de código permiten que esta aplicación Node.js escuche en el puerto local 8000 para un despliegue local o en un puerto local diferente para un despliegue alojado (configurado automáticamente con un despliegue Heroku).
La aplicación very-simple-bot.js:
Simula un chatbot de solo texto. Su único propósito es mostrar cómo un chatbot real de solo texto se habilitaría por voz con la aplicación que usa Vonage Voice API,
Este ejemplo de chatbot muy sencillo admite los idiomas inglés y francés como ejemplos
Las únicas solicitudes admitidas figuran en los respectivos diccionarios botKbEn y botKbFr,
Este chatbot muy simple no hace Procesamiento del Lenguaje Natural para las pruebas. Debe decir exactamente una de las peticiones soportadas. De lo contrario, la respuesta será la predeterminada para solicitudes desconocidas,
Maneja el webhook '/bot' para recibir peticiones; devolverá la llamada a la URL del webhook que aparece en la petición entrante para proporcionar la respuesta de texto correspondiente,
Las dos últimas líneas de código permiten que esta aplicación Node.js escuche en el puerto local 6000 para un despliegue local o en un puerto local diferente para un despliegue alojado (configurado automáticamente con un despliegue Heroku).
Segunda fase
Voice Enabling text-only chatbot. Hosted/ Production deployment.
En la segunda fase, vas a actualizar (donde se indique en el interior) el código fuente voice-on-text-bot-app-generic.js para interactuar con tu chatbot real para solicitudes/respuestas de texto y utilizar voice-on-text-bot-app-with-simple-bot.js como referencia, tanto desde el repositorio de la aplicación repositorio de aplicaciones.
No necesitará ningún código del repositorio repositorio del simulador de bots simple.
Interactuarás por voz con tu chatbot llamando al número de teléfono vinculado a tu aplicación, el que aparece como SERVICE_NUMBER.
Conclusión
En este tutorial, aprendiste que usando Voice API de Vonage, puedes habilitar por voz cualquier chatbot de sólo texto, y se admiten muchos idiomas.
Empezarás con una implementación local en tu ordenador con la aplicación Voice API y el chatbot de texto simple para ilustrar cómo puedes habilitar por voz un chatbot de texto.
Opcionalmente, puede desplegar en entornos alojados en Heroku.
Luego, actualizarás la otra aplicación Voice API para agregar sólo el código específico para integrarlo con tu chatbot de texto para solicitudes/respuestas de texto, ya que toda la interacción necesaria con la Voice API de Vonage, incluido el manejo de llamadas de voz entrantes/salientes, el reconocimiento automático de voz y la conversión de texto a voz ya se han implementado en ese archivo de código fuente.
¿Qué te ha parecido este tutorial? ¿Tienes alguna pregunta o comentario sobre Voice enabling a text-only chatbot? Únete a nosotros en Slack para desarrolladores de Vonage. Y síguenos en Twitter para estar al tanto de las últimas actualizaciones de Vonage Developer
Compartir:
Ingeniero de soluciones para clientes en Vonage. Con experiencia en gestión de productos, operaciones de redes y sistemas, atención al cliente, control de calidad y gestión de equipos de desarrollo de software, Tony trabaja en el sector de las telecomunicaciones, antes en Francia y ahora en Estados Unidos. Ayuda a grandes y pequeñas empresas de todo el mundo a desarrollar soluciones mediante servicios programables de voz, mensajería, vídeo y autenticación multifactor.