Agentes de voz en tiempo real con inteligencia de vanguardia — Bohan Li, EliseAI
AAI Engineer
컴퓨터/소프트웨어AI/미래기술
스크립트
00:00:00Mi nombre es Bo. Voy a presentar Agentes de Voz en Tiempo Real con Inteligencia de Frontera.
00:00:18Básicamente voy a hablar un poco sobre cómo nosotros en
00:00:22Elise AI diseñamos nuestro sistema de agentes de voz para lograr voz en tiempo real con el
00:00:28nivel de inteligencia de frontera que necesitamos. Así que antes de empezar, creo que quería
00:00:36establecer algunos paralelismos sobre por qué decidimos optar por agentes de voz en cascada
00:00:42y especialmente compararlo con los coches autónomos, en los que trabajaba
00:00:48antes. Para mí, los agentes de voz en cascada tienen mucho sentido cuando se ven bajo
00:00:53la óptica de dividirlo en percepción, que para los coches autónomos
00:00:59son, ya sabes, las cajas delimitadoras, la cámara, el lidar. Para la voz, va a ser la
00:01:05transcripción, básicamente convirtiendo estas señales del mundo real
00:01:09en elementos de datos que el modelo de lenguaje o cualquier cerebro con el que estés trabajando pueda
00:01:17procesar. El segundo es la pila de planificación, que es bastante sencilla.
00:01:23Aquí es donde el modelo de lenguaje tomará las salidas de la etapa de percepción y producirá
00:01:29las salidas que deseas generar de regreso hacia el mundo real. Y finalmente está la capa de control
00:01:36donde, en la conducción autónoma, tomarías la trayectoria que emite el planificador y la convertirías
00:01:43en los controles reales para conducir el coche. Aquí estamos convirtiendo el texto en
00:01:50el audio que usamos para expresar los pensamientos de nuestros agentes de voz. Y sí, aquí profundizaré en
00:02:00cada uno de estos elementos y hemos hecho algunos trucos interesantes en cada una de estas áreas para
00:02:08mejorar la velocidad de nuestros agentes de voz sin sacrificar la inteligencia.
00:02:13El primero va a ser la capa de transcripción. Se nos ocurrió este concepto llamado
00:02:19transcriptor especulativo en streaming, donde efectivamente superponemos un transcriptor rápido
00:02:24en streaming como Flux sobre o debajo de un Scribe v2, que es una transcripción por lotes precisa
00:02:33que toma más contexto. Es un poco más lenta, pero ofrece detecciones más precisas.
00:02:39Vamos a recorrer un escenario ahora. En este caso, el agente acaba de preguntar
00:02:44¿Puede escribir su nombre y fecha de nacimiento? Y el usuario va a decir esto y veremos cómo se desarrolla
00:02:49en términos de tiempo. Primero obtendremos la detección inicial. La obtendremos
00:02:57de la capa de streaming. La capa precisa, la capa correctiva, no se va a activar porque es el mismo texto.
00:03:05Obtendremos más detecciones de texto en streaming y en este caso la capa correctiva en realidad es
00:03:11cancelada porque obtuvimos texto nuevo, así que más contexto y más audio van a superar al anterior y preciso.
00:03:21Y aquí es donde entra la primera corrección. Como la capa Scribe v2 comprende
00:03:27el contexto de la pregunta, es capaz de entender que esto habla de un nombre y que esto es una fecha de nacimiento.
00:03:34Y luego un par de detecciones más. Son solo puntuación. No nos importan.
00:03:37Y al final enviamos este texto al agente.
00:03:44Pasando al modelo de lenguaje. Aquí, dado que estamos usando estos LLM lentos pero
00:03:52inteligentes, realmente queremos reducir el número de viajes de ida y vuelta, y lo que nos hace hacer
00:03:58muchas inferencias son las llamadas a herramientas. Una forma de eliminar eso es haciendo que los agentes en segundo plano hagan
00:04:05las llamadas a herramientas por ti y devuelvan las herramientas al contexto del agente principal para que piense
00:04:13que hizo la llamada a la herramienta, pero en realidad no lo hizo. Recuerda la detección anterior. Lo que sucederá es que cada una de estas detecciones activará
00:04:26una generación temprana por parte del agente, pero no la emitiremos hasta confirmar que
00:04:38el usuario ha terminado de hablar. En este caso el usuario dice claro. El agente sabe que el usuario está a punto de decir algo más.
00:04:45Nuestra llamada a herramientas en segundo plano aquí, que nos ayudará a averiguar el nombre y la fecha de nacimiento a partir de la detección del usuario,
00:04:51no se está disparando, así que no hay mucho ahí. Llega la siguiente detección instantánea. Dice que todavía no es realmente un nombre.
00:05:02Nuestro agente le sigue la corriente y continúa.
00:05:06Ahora llega más contexto. El agente siente que debería haber un nombre.
00:05:11Va a pedir que lo deletreen porque probablemente piensa que hay algún error de transcripción.
00:05:16Todavía no hay nombre ni fecha de nacimiento. Y finalmente esta, recuerda que es nuestra
00:05:22detección instantánea final corregida del transcriptor de Scribe v2.
00:05:27Aquí nuestra ansiosa generación de agentes que se hizo sin llamadas a herramientas va a ser cancelada
00:05:34porque el agente en segundo plano finalmente puede encontrar el nombre y la fecha de nacimiento que busca.
00:05:38Así que se reactivará y ahora el agente tiene el contexto que necesita.
00:05:45Y ves que aquí lo estamos haciendo. La llamada a la herramienta aquí es un poco
00:05:49más inteligente. Vamos a corregir errores de transcripción del nombre,
00:05:53haciendo una coincidencia fonética aquí.
00:05:57Y una vez que hayamos entendido que este es el final de la intervención del usuario,
00:06:02la emitiremos. Así que bastante estándar.
00:06:06Bien, la siguiente capa aquí será la conversión de texto a voz. Con esta, el objetivo
00:06:12es tomar lo que dijo el agente, que lo estará emitiendo de manera
00:06:16continua. Necesitamos producir audio lo más rápido posible. Lo ideal es que
00:06:24antes de que el agente termine de generar todo el texto, puedas reproducir el audio. Así se
00:06:31oculta la latencia de finalizar la generación. Voy a reproducir la salida
00:06:39del agente en streaming ahora. Comienza con U. Y antes de profundizar, hay
00:06:46un nuevo concepto que introducimos aquí llamado caché de prefijo. La caché de prefijo
00:06:52analizará el flujo del agente para ver si ya hemos generado audio para esa secuencia de palabras
00:07:02de una generación previa o quizás de la misma generación en esta llamada.
00:07:10Ve la palabra U. Con esta caché de prefijo no queremos
00:07:17acertar inmediatamente en cada palabra. Esperaremos un poco más de palabras. Así que después
00:07:24de tres palabras, la caché de prefijo tiene su primer acierto. A la derecha tenemos nuestro
00:07:31proveedor estándar de texto a voz, Cartesia, que es un motor de texto a voz con soporte de WebSocket.
00:07:36Enviamos al agente a través de la caché y también a través de WebSocket.
00:07:45Llegan más tokens, más caché, más envíos al WebSocket. Nada más que decir.
00:07:51Y bien, ahora tenemos nuestra primera situación única: encontramos un token que
00:07:59provoca un fallo en la caché. Tiene sentido si guardamos en caché generaciones anteriores. “Usted dijo que su nombre
00:08:05es” es muy común, pero al añadir el nombre, de repente eso causará un fallo en la caché.
00:08:12En este punto vamos a emitir nuestro audio almacenado en caché. “Usted dijo que su nombre es” se
00:08:19emitirá mientras llega el resto del texto en streaming. En este punto el usuario escucha al agente.
00:08:25El usuario no sabe lo que pasa, solo percibe tiempos de respuesta muy rápidos.
00:08:32Ahora fluye el texto restante. Llegados a este punto ya hemos emitido desde la caché.
00:08:38La caché hizo su trabajo. El resto lo enviamos a Cartesia. Aquí está el truco
00:08:46donde Cartesia ha visto toda la transcripción hasta este momento. Para Cartesia es como si no supiera
00:08:56de la existencia de esta caché de prefijo. Generará toda la oración con
00:09:01una entonación natural estándar. Pero lo que hacemos es que, cuando regresa la generación, dado que ya reprodujimos
00:09:08el audio aquí, podemos suprimir el audio de Cartesia en esta parte
00:09:13y reproducir lo restante. Así que el usuario podría notar un pequeño salto. Pondré algo de audio después y
00:09:21verás que probablemente ni lo notes. Tomamos esta parte
00:09:28y la emitimos justo después de que este audio termine de reproducirse, para que parezca fluido al usuario.
00:09:35Y bueno, supongo que a estas alturas hay muchos detalles técnicos. Lo mejor será
00:09:43reproducir una llamada y ver esto en acción. Así que grabé una llamada, escuchemos qué pasa.
00:09:53Aquí vamos a hablar con ustedes. Soy Bo, Ginecobstetricia de Elise.
00:09:59Hola, creo que podría estar embarazada y quiero programar una ecografía para confirmarlo.
00:10:03Es una noticia emocionante. ¿Puede proporcionar su nombre y fecha de nacimiento?
00:10:08Claro, es Elise trial. Fecha de nacimiento, 2303.
00:10:15Gracias. ¿Es usted una paciente nueva con nosotros?
00:10:24Sí. Bienvenida a Bo, Ginecobstetricia. ¿Puedo enviarle un enlace por mensaje para que suba la información de su seguro?
00:10:34Claro. De acuerdo. Enviado. Avíseme cuando lo reciba.
00:10:48He recibido la información de su seguro. La cita más pronta que tengo es el jueves
00:10:532 de julio a las 10 a.m. De hecho, déjeme un segundo. Déjeme revisar mi calendario.
00:11:01Claro. tómese su tiempo. ¿Tiene algo para la próxima semana?
00:11:09Para la próxima semana, puedo ofrecer una ecografía con la Dra. Avery Stone en North Clinic el martes
00:11:147 de julio a las 2 p.m. o 3 p.m. ¿Le sirve alguna de esas opciones?
00:11:20Sí, las 2 p.m. está bien. Genial. Su cita ha sido reservada. Esperamos verla entonces.
00:11:29Gracias. Adiós. Muy bien. Sí, eso es prácticamente todo.
00:11:35Sí, se puede ver todo este streaming y muchas cosas que
00:11:43ocurren en segundo plano. Y esto es lo que realmente hace interesantes a los agentes de voz.
00:11:48Hay mucho esfuerzo que se puede hacer en el sistema para lograr realmente una
00:11:55conversación natural, que es lo que buscamos.
00:11:59Bien. Sí. En la última parte, quiero hablar un poco
00:12:04sobre Elise. Nuestras oficinas centrales están en Nueva York, y estamos
00:12:09intentando expandir nuestra presencia aquí en el Área de la Bahía. Creo que es un estilo diferente
00:12:15de empresa que la gente imagina al pensar en startups de IA en San Francisco,
00:12:23donde realmente nos enfocamos en ayudar a las personas y ayudarles donde más lo necesitan,
00:12:31en las áreas más críticas de la vida. Trabajamos en vivienda, salud, y nos va muy
00:12:37bien. Hay un enlace aquí para unirse a nuestro equipo, y
00:12:45estaremos publicando mucho en Twitter, así que pueden seguirnos en @Elyse.ai también. Eso es todo.
00:12:57Por lo tanto, estaremos publicando un poco más en Twitter, y estaremos publicando un poco más en Twitter.
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기