Existe un hype con el uso de ChatGPT. Sin embargo, los intentos de entregar una respuesta, frente a una solicitud o pregunta en lenguaje natural, de forma automatizada, están hace rato en producción. Y en este artículo pretendo ahondar en uno que tiene bastantes desafíos técnicos; Voicebot.
Revisaremos
¿Qué es un Voicebot?
Diseño de arquitectura
Desafíos técnicos
1. ¿Qué es un Voicebot?
La epifanía es tener máquinas conversando y atendiendo las solicitudes de los clientes que prefieren utilizar el canal de voz. Es decir, los Voicebots, son ejecutivos virtuales que interactúan con humanos usando lenguaje natural en un canal de audio (voz). Son la nueva generación de IVR (Interactive Voice Response), nombrados en algunos casos como NVR (Natural Voice Response).
Un flujo base de interacción telefónica con un Voicebot, se muestra en la siguiente figura:
El intercambio de mensajes entre la persona y el Voicebot, itera en base al flujo presentado:
Paso 1. La persona entrega su mensaje y el Voicebot “escucha” hasta que se detecta un “silence time” (un tiempo pre definido que indica cuando la persona terminó de dar su mensaje, generalmente definido entre 500 - 1000 [ms]).
Pasos 2 y 3. El mensaje se debe enviar al servicio Speech To Text (STT), el cuál lo transcribe (proceso de pasar audio a texto). Existen 2 métodos de hacer este envío; grabar la voz de la persona y enviarlo como audio o bien, hacer la re-transmisión en “real-time”, esta última capacidad no es soportada por todos los proveedores. En el resultado, se espera también el nivel de confianza del servicio que responde a la pregunta ¿qué tan segura es la transcripción? (Siempre lo imagino como si el Voicebot dijera: “con este nivel de certeza, la persona dijo lo siguiente….”)
Pasos 4 y 5. La transcripción es enviada al Clasificador Multi-clase (p. ej. Watson Assistant). En definitiva, el servicio que hace le clasificación del texto (vía intent mapping). Retorna una respuesta ( + otras variables de contexto, que permiten el seguimiento de una conversación) en texto.
Pasos 6 y 7. La respuesta es enviada al servicio Text to Speech (TTS), el que convierte ese texto en audio (síntesis del habla).
Paso 8. El audio es retransmitido hacia la persona.
Sobre este flujo de interacciones, es que ocurre una conversación entre una persona y el Voicebot. Al igual que en una comunicación entre personas, se mantiene hasta que una de las dos partes decide cortar (y siempre que no se presenten fallas de los componentes que la habilitan).
Además, en la imagen representamos al Voicebot en 2 componentes: Voice Gateway y los A.I. Services, estas son sus principales características:
Voice Gateway
Conecta el BOT a una red VoIP
Orquesta A.I. Services para simular un ejecutivo
A.I. Services
Transcripción de voz a texto
Síntesis de texto a voz.
Entender el lenguaje natural y responder en torno a un diálogo
Los A.I. Services más utilizados son:
Speech To Text – Transcribir audio en texto.
Text To Speech – Síntesis del texto en audio.
Natural Language Classifier – Intent mapping.
Tone Analysis – profesional, amistosa/o, alegre, etc.
Sentiment Analysis – positivo, negativo, neutral.
Deep Search – Carga y búsqueda de datos no estructurados.
Ø Dialog – Necesario directamente para el diálogo (no A.I.).
2. Diseño de arquitectura
Para que un Voicebot se integre a un Contact Center, debe cumplir con proveer un SIP endpoint, en la figura revisaremos los componentes principales que debe considerar esta solución (y aquí empieza lo divertido)
¿WTF? No te lo esperabas, ¿o sí? La mayor complejidad de crear esta solución viene dado por la cantidad de tecnologías que se deben integrar para su operación. Vamos por parte.
¿Qué es eso de Voice Sources? Respondamos esta pregunta, con el caso real de llamar a una empresa:
Al momento nosotros de querer contactar a una empresa por el motivo que sea, nuestra llamada emite una señal que es enviada a través de la red de telefonía pública (PSTN). Independiente del protocolo usado siempre primero existe una “señalización”, un mensaje que busca informar el deseo de establecer un canal por el cuál se transmitirá “audio”.
Tras identificar el punto de conmutación (el camino o ruta, por donde debe seguir la señal), la PSTN reenvía esta señal a un Voice Source, típicamente, una central telefónica privada (PBX, en el fondo, un conjunto de servidores con capacidades de soportar tráfico telefónico dentro de una red privada). En este punto existe un primer cuello de botella, que es la cantidad de canales disponibles entre la PSTN y la PBX. Se relaciona directamente con la cantidad de llamadas simultáneas que se pueden atender.
La PBX privada reenvía la señal al "Voice Gateway” (caja verde de la figura 2) y este a su vez permite que el Voicebot interactúe contigo de acuerdo a la secuencia mostrada en la figura 1.
El Voice Gateway es el que encapsula los distintos protocolos de comunicación y los orquesta en una secuencia lógica para que el Voicebot funcione. Se compone de:
SIP Orchestrator. Permite el intercambio de mensajes SIP para el manejo de la señalización.
Media Control. Permite la comunicación de media en tiempo real (RTP).
REST y Web Socket API’s. Consumo de API’s vía REST y WSS.
Además, en la parte 1 se explicó en un alto nivel, los componentes que permiten darle vida al Voicebot, pero los clientes pedirán reportes y demostrar el cumplimientos de los SLA. Es por esto que hay una consideración en el diseño sobre Storage y Analytics.
Harto que digerir, sin embargo, debemos continuar, porque si estás trabajando en contact centers o estás próximo a dar servicios en uno, hay bastantes desafíos técnicos.
3. Desafíos técnicos
Al interactuar vía telefónica en tiempo real, en lenguaje natural y a la vez orquestar los servicios Speech To Text, Natural Language Understanding y Text To Speech, se presentan varios desafíos para la implementación y mejora continua de un Voicebot.
La evolución del Voicebot en el tiempo es crítico para el éxito de nuestros clientes
3.1 Inbound vs Outbound
¿Qué es Inbound? Que las personas llaman a la empresa (p. ej. servicio de atención al cliente).
¿Qué es Outbound? Que la empresa llama a las personas (p. ej. la maravillosa llamada que te llega al almuerzo para cambiarte a Movistar, Claro, Wom ó Entel.)
Ya pero Pipe, en ambos casos tenemos que hacer conversar el Voicebot con la persona…..La verdad es que sí, pero es distinto contestar una llamada a realizar una llamada.
La gran diferencia a nivel técnico es que para hacer llamadas necesitamos un componente extra, un discador. Se debe encargar de ir a la base de datos de contacto y mediante reglas de discado (se refieren a los criterios definidos para volver a llamar a una persona si esta, por algún motivo, no se logró contactar) hacer llamadas. Los proveedores worldclass incluso tienen módulos de reconocimiento de voz humana para aceptar la llamada
tip: si te llama un número desconocido, contesta y quédate en silencio por unos 3-5 segundos, si la llamada se corta sola, es porque un discador con la capacidad de “Answering Machine Detection (AMD)” te estaba llamando…shhh es un secreto.
Los KPI a mostrar también son diferentes (aquí una referencia de esto)
3.2 Speech To Text (STT)
Desafíos
Transcribir dialectos
Transcribir específicos dominios del habla
Transcribir sílabas solas
Filtrar ruido
Autentificación de voz
Delinear la expresión vocal
Resoluciones
Entrenamiento de modelo acústico
Entrenamiento de modelo lingüistico
Entrenamiento acústico, gramática
Media pre-processing, cancelación de eco
Voice biometrics, Two-factor with SMS
Controlar el tiempo de silencio entre expresiones
3.3 Text To Speech (TTS)
Desafíos
Sonar más humano
Retardos (latency)
Coincidir con el dialecto y el tono correcto
Resoluciones
SSML
Caching, streaming
3.4 Natural Language Understanding (NLU)
Desafíos
Recolectar un número variable de inputs del usuario en un solo mensaje
Convertir Chatbots hacia Voicebots
Resoluciones
En Watson Assistant (IBM) se puede usar “slots”
Reutilizar lo que se pueda, repensar el resto
3.4 Indicadores
• Métricas de llamada (jitter, packet los, caída de servicio).
• Estadísticas de contención e intrusión de usuarios.
• Calidad del audio en las llamadas (escuchar grabaciones).
• Niveles de confianza de los intent.
• Tasa de error de transcripción y sus niveles de confianza.
• Tono, dialecto y sentimiento de los usuarios.
3.5 Escalabilidad
Es importante contar con un balanceador de carga SIP que reciba la demanda de llamadas y direccione de acuerdo a su algoritmo de balanceo. El desafío está en controlar los valores de FROM y TO en el SDP de los mensajes SIP.
Sé que podrían haber más preguntas a responder;
¿Cuáles son los costos de un voicebot?
¿Cuánta capacidad computacional debería considerar?
¿Es posible utilizar cloud?
¿Qué tecnología utilizo?
¿Cómo se implementa?
Lo dejamos para una siguiente parte.