5 Modos de Falha de Agentes de Voz que Você Enfrentará na Primeira Semana — Venky B, Plivo

스크립트

00:00:00Vamos fazer apenas algumas perguntas rápidas e logo em seguida começaremos. Quantos de nós aqui na sala
00:00:19já construíram agentes de voz com IA? Ok, temos um bom público aqui. E quantos de vocês
00:00:28já construíram agentes de IA que foram implantados em produção? Nada mal. Ok, legal. Então vamos falar
00:00:38sobre o que normalmente acontece, certo? Tipo, todo mundo está falando sobre agentes de voz com IA. A, sabe,
00:00:47a solução mágica para praticamente tudo no mundo hoje são os agentes de voz com IA. Então todo mundo
00:00:51está construindo um e tentando implantá-lo. Eles soam ótimos quando você está construindo isso no seu
00:00:57ambiente de desenvolvimento. E então, no momento em que você leva isso de uma prova de conceito para a produção,
00:01:03as coisas começam a falhar. Então vamos analisar esses cinco ângulos diferentes de como, ou o que nós
00:01:09temos visto na PLEVO com agentes de voz com IA. Mas antes disso, uma breve introdução da minha parte. Eu sou o Venki,
00:01:19o fundador e CAO. Ela usou o título de gerente de engenharia de agentes. Estou me autoproclamando diretor de agentes,
00:01:28do ponto de vista de cargo. Ok, então qual é, o que, sabe, por que sequer somos qualificados para esta
00:01:35discussão e, tipo, o que estamos vendo que muitas empresas não conseguem ver? Então vou,
00:01:42vou falar um pouco sobre a nossa jornada em termos de como chegamos até aqui e depois entrar direto no assunto.
00:01:48Sabe, nós estamos por aí há cerca de 14 anos. Nossa jornada tem sido como uma plataforma de API para desenvolvedores.
00:01:54E agora, um negócio de agentes de IA. Começamos com APIs de voz e SMS lá em 2011.
00:02:01E então, agora estamos focados principalmente em nossa oferta de agentes de IA em full stack.
00:02:08O full stack em nossa plataforma. Nós vemos mais de um bilhão de chamadas de voz todos os meses em todo o globo.
00:02:16E é aí que temos visto muitos desses padrões emergirem em termos de como,
00:02:20quando trabalhamos com nossos clientes, o que acontece com os agentes de voz de IA deles em produção.
00:02:25Somos uma equipe de 90 membros e temos 50 milhões em financiamento no banco. Fato curioso,
00:02:33isso não vem de investidores de capital de risco externos. Isso é fruto de sermos uma empresa lucrativa,
00:02:38acumulando esse caixa no banco ao longo desses anos.
00:02:42Alguns clientes que atendemos em todo o mundo. Deixamos alguns logotipos ali,
00:02:49mas principalmente do ponto de vista de ofertas, eu dividiria isso em três categorias diferentes.
00:02:54Uma é uma oferta programável de agente de IA. Nós chamamos de, quer dizer, é um pipeline
00:03:00de fala, ainda não é um produto verdadeiro de fala para fala, mas é uma oferta programável.
00:03:05Também temos um estúdio de agentes de IA. É um construtor visual sem código. E como eu disse,
00:03:11começamos com APIs de voz. Então, obviamente, construímos isso ao longo dos últimos 14 anos,
00:03:16o entroncamento SIP e a camada de streaming de áudio. Portanto, não dependemos de terceiros para a telefonia
00:03:22ou para a camada de operadora. Esse é o nosso negócio principal que construímos ao longo de todos esses anos.
00:03:26E é sobre isso que a nossa plataforma de agentes de IA se apoia.
00:03:32Ok. Dito isso, vamos entrar no assunto, certo? Tenho certeza de que, como todos vocês já construíram
00:03:39agentes de IA, todos já viram isso ou construíram de uma forma ou de outra. E vamos passar
00:03:44mais tempo nisso em termos de como o pipeline inteiro se parece. O que vemos com os
00:03:51clientes, e tenho certeza de que vocês se identificam com isso, é que qualquer pessoa pensando em
00:03:56agentes de IA escolhe um monte desses frameworks de orquestração e faz um
00:04:01trabalho muito bom, usa LiveKit ou Pipecat, construindo seu agente de IA em cima disso. Eles acham
00:04:06que podem simplesmente orquestrar essas quatro camadas diferentes: fala para texto, LLM e TTS
00:04:13com detecção de turno no meio, e pronto, estamos prontos. Meu agente de IA funciona em uma POC
00:04:19e vai funcionar em produção. Tipicamente é isso que acontece. Eles medem suas
00:04:24latências e vocês podem ver algumas latências indicativas neste slide em cada camada. E eles pensam,
00:04:30sim, isso parece bom para mim, para o que eu preciso. Então vamos colocar em produção. E então
00:04:36a produção começa a dar as caras e você vê todo tipo de modo de falha, sobre o qual
00:04:41vamos passar a maior parte do tempo nesta palestra, pelo menos. Eu deixei algum tempo
00:04:48no final para perguntas e respostas, caso vocês tenham dúvidas, mas vamos pular direto daqui
00:04:53para os diferentes modos de falha que vemos. Vamos começar com o primeiro, do qual
00:05:01todo mundo fala. Este é o modo de falha mais comentado, que é a latência. Acho que
00:05:07temos algumas palestras sobre agentes de IA hoje ou sobre agentes de voz com IA hoje. Tenho quase
00:05:12certeza de que todo mundo vai tocar nesse modo de falha específico, e é por isso que estou trazendo isso logo
00:05:17no início, em termos de como essa experiência inteira é para os usuários, certo? Normalmente,
00:05:26a maioria das pessoas mede isso pelo tempo até o primeiro áudio. Ou seja, o tempo desde quando seus usuários param de falar
00:05:34até o seu agente começar a falar, certo? E acho que vocês provavelmente já viram isso se já
00:05:39construíram agentes de voz, sobre o que parece bom ou natural, o que
00:05:46parece meio irritante ou perceptível, e o que parece realmente irritante, que são diferentes níveis
00:05:52de etapas. Notamos que a maioria das pessoas quer ficar abaixo de 550, porque é o que é anunciado pelas
00:06:00plataformas, soluções ou camadas, mas acho que a maioria acaba entre 750
00:06:07e 1,2. É onde a maioria das pessoas termina. Os de desempenho realmente ruim terminam
00:06:13com mais de 1,2, e aí você começa a ver os usuários desligando. Agora, vou
00:06:19compartilhar com vocês o que temos visto na prática em produção com clientes usando isso em diferentes
00:06:26camadas, e então, soluções para algumas delas. A maneira como queremos pensar
00:06:33sobre esta camada é como um equilíbrio entre estes três fatores: custo, inteligência e latência,
00:06:42certo? E por que trago esses três à tona? Porque eles estão inter relacionados. Acho que uma
00:06:48das coisas sobre as quais eu estava conversando com algumas pessoas lá fora. Uma das coisas,
00:06:51no último ano, vimos muitas inovações, um grande salto de inteligência no lado dos LLMs,
00:06:58certo? E a maior parte da inteligência chegou em termos de raciocínio ou
00:07:05aprendizado por reforço e assim por diante. A ironia com os agentes de voz é que quase sempre
00:07:11o LLM ou o agente que está falando precisa estar com o raciocínio desativado, certo? Então, todos os
00:07:19avanços que tivemos na camada de LLM no último ano, praticamente nenhum deles se aplica aqui agora,
00:07:25certo? Obviamente você tem modelos melhores que podem fazer um melhor seguimento de instruções
00:07:29ou chamadas de ferramentas, mas praticamente toda a inteligência construída na camada de raciocínio
00:07:34fica desligada por padrão se você quiser que seja rápido o suficiente. Essa é uma das
00:07:39ironias que encontramos. Então, como equilibrar inteligência, custo e latência?
00:07:44Vamos analisar algumas dessas opções que estão disponíveis no mercado,
00:07:48certo? E estou escolhendo especificamente o LLM porque, se você olhou para o gráfico anterior, o LLM é
00:07:55o seu grupo de maior latência que contribui para isso, certo? E se você olhar para
00:08:02modelos de fronteira, com os quais a maioria das pessoas começa por padrão — seus OpenAI, Claude,
00:08:09Gemini —, o P50 do TTFT fica em torno de 450 a 500 em um dia bom, e pode ficar
00:08:17instável, certo? O P90, P95 pode facilmente disparar para cima de 1,2, 1,3 segundo inclusive,
00:08:25e isso não é bom para a experiência geral do agente. Então esse é o seu modelo de fronteira.
00:08:31Agora, há outra opção, que são o Cerebras ou o Groq, que são famosos e
00:08:38populares por cuspirem muitos tokens ou tokens muito rápido, certo? Eles funcionam, mas para você obter
00:08:45latência dedicada ou tempo para o primeiro token neles, você precisa de capacidade dedicada e isso é muito caro.
00:08:51Foi aí que mencionei o custo como uma das coisas a se equilibrar, certo? É realmente
00:08:56caro. E se você falar com qualquer pessoa da equipe do Groq ou do Cerebras, eles vão te dizer
00:09:01que você precisa reservar com 12 meses de antecedência para ter capacidade dedicada. Eles estão lotados para os próximos 12 meses.
00:09:05Portanto, essa é uma opção bastante cara. E você realmente precisa ter certeza de que o modelo
00:09:11que você está implantando em algumas dessas camadas de infraestrutura ainda estará aqui daqui a 12 meses, o que é um
00:09:17grande investimento e uma grande incógnita. Então, qual é uma opção realista para agentes de grau de produção,
00:09:27que tenham boa qualidade e equilibrem três desses fatores? Isto é o que tem
00:09:34funcionado para nós: os modelos de código aberto. Obviamente existem muitos deles em termos de
00:09:41variedade e variações que você pode escolher. Estou falando especificamente dos dois com os quais trabalhamos,
00:09:47o Qwen 2.5 e o Gemma 2. Esses são modelos de código aberto de última geração, certo,
00:09:56disponíveis no mercado agora. E fizemos muitos testes comparativos sobre como eles funcionam.
00:10:02Pode ser assustador pensar: 'Ok, eu tenho os modelos, agora preciso hospedá-los, executá-los
00:10:10em minhas próprias GPUs', e assim por diante. Mas se você estiver consistentemente visando menos de 300 ms, isso,
00:10:17temos visto que é uma ótima opção para equilibrar latência, custo e inteligência.
00:10:23Agora, mergulhando mais fundo aqui. Se você está fazendo apenas inglês, o Qwen 2.5 ou o Gemma funcionam bem.
00:10:29Mas se você está fazendo multilíngue, certo, públicos internacionais, diferentes idiomas, o Gemma 2 é um
00:10:35modelo muito melhor para isso. Nós avaliamos a fertilidade de tokens. Essencialmente, o que isso significa,
00:10:44se eu for desmistificar isso, é quantos tokens são necessários para gerar uma palavra em
00:10:48esse idioma? Ok, então o Gemma é muito, muito melhor, pelo menos 2,5 a 3 vezes melhor do que o Qwen 2.5 sob essa
00:10:56perspectiva. Portanto, o seu tempo até as palavras é muito mais rápido no Gemma 2, mantendo todo o resto igual, em uma base multilíngue.
00:11:04com base multilíngue. Agora, quais tamanhos escolher na camada de LLM? O modelo de mistura de especialistas geralmente
00:11:12funciona bem. O modelo de mistura de especialistas de três ou quatro bilhões geralmente funciona bem. O problema com
00:11:17a mistura de especialistas é que, se alguém quiser seguir o caminho do ajuste fino, isso pode ser um
00:11:22desafio, porque fazer o ajuste fino de modelos de mistura de especialistas não é fácil. Você pode acabar quebrando o
00:11:28modelo muitas vezes. Portanto, esse é um desafio que vemos com a mistura de especialistas, mas geralmente, por padrão,
00:11:35ele te deixa 90% mais próximo de onde você quer estar, mesmo sem nenhum ajuste fino ou trabalho
00:11:42personalizado feito no modelo. Essa é a vantagem da mistura de especialistas. Agora, se você quiser fazer um ajuste fino
00:11:48e quiser ir mais fundo e dizer: “Olha, estou trabalhando para um domínio específico, saúde,
00:11:53o que quer que seja”, e eu quero garantir que posso ajustar meu modelo, você vai querer começar pelo menos
00:11:58com o de 8 bilhões, 12 bilhões, pelo menos a partir de onde estamos hoje. Talvez daqui a seis meses
00:12:04um modelo de 4 bilhões vença o modelo de 8 bilhões com facilidade, mas para hoje, o que temos
00:12:11visto é que você precisa no mínimo de um modelo de 8 bilhões ou 12 bilhões, porque você busca duas
00:12:16coisas nesses modelos: primeiro, obviamente, tokens rápidos, mas também uma boa capacidade de seguir instruções, certo? E
00:12:23a segunda coisa é uma taxa de sucesso muito alta na chamada de ferramentas, porque se você fizer bem essas duas coisas,
00:12:29então você já estará 70 ou 80% no caminho certo, sem nem precisar ajustar nenhum modelo,
00:12:35os modelos funcionarão logo de cara, certo? Essa tem sido a nossa receita. Nós realmente
00:12:42usamos duas vertentes: uma com um modelo ajustado para indústrias específicas e outra para,
00:12:50sabe, a maioria dos casos de uso genéricos, um modelo MOE funciona perfeitamente logo de cara.
00:12:56Há mais algumas dicas e truques dos quais falaremos nos próximos slides, onde vemos falhas nos modelos,
00:13:00mas é aí que nos posicionamos em termos de latência de LLM. Certo, estou com
00:13:07o tempo curto, então vou acelerar isso. Há algumas outras abordagens nisso.
00:13:12As pessoas constroem agentes com uma mistura de modelos. O que elas fazem é usar, para a parte
00:13:19de conversação, um modelo conversacional que seja muito menor, um modelo bem menor,
00:13:24e talvez até um modelo de três bilhões, e para a chamada de ferramentas, eles usam um modelo muito maior,
00:13:27para terem uma taxa de sucesso aprimorada nas chamadas de ferramentas.
00:13:35Desculpe. O segundo ponto é: assuma que suas transcrições serão frágeis. Isso é algo
00:13:42pelo qual você deve viver ao construir agentes de IA, mesmo que você tenha
00:13:49o melhor mecanismo de transcrição do mercado, e eu vou te mostrar o porquê. Os mecanismos de transcrição
00:13:55mais avançados do mercado conseguem alcançar uma taxa de erro de palavras de quatro a seis por cento,
00:14:02certo? E isso em conjuntos de avaliação conhecidos. Em chamadas reais e barulhentas com,
00:14:10digamos, sotaques diferentes — pessoas tendo vários tipos de sotaque —, vocabulário de domínio,
00:14:15e assim por diante. Tipo, essas aí costumam ficar na casa dos dois dígitos em termos de taxa de erro de palavras,
00:14:21certo? Obviamente você pode fazer um ajuste fino, escolher um modelo de código aberto e ajustar,
00:14:25mas vemos tipicamente o que costuma falhar aqui, e há padrões sobre o que quebra.
00:14:31Portanto, nomes próprios, jargões, números de telefone (como dígitos perdidos aleatoriamente em números de telefone),
00:14:38substituições erradas. Vou passar por alguns exemplos de como resolver esses problemas.
00:14:43Quando você tenta coletar um endereço longo, o mecanismo de transcrição
00:14:48pode acabar perdendo algumas partes dele. Idiomas com alternância de código (code-switching). Vou dar um exemplo de um
00:14:55idioma que eu falo, porque era fácil para mim colocar no slide, onde, se você
00:15:01pegar o inglês, mas escrito em um alfabeto diferente, é isso que é usado para o hindi,
00:15:06certo? Isto é inglês escrito naquele alfabeto, enquanto a versão em inglês real
00:15:11disso é: “hello, how are you?” Portanto, se estou me dirigindo a um público em um país diferente,
00:15:16onde tenho idiomas misturados e começo a receber meu inglês em um tipo diferente
00:15:21tudo começa a falhar, desde o motor de transcrição até a camada de LLM, e depois
00:15:26disso, porque sua LLM muitas vezes passa a gerar a saída nesse tipo de escrita, e então seu TTS
00:15:32acaba falhando. Certo? Então isso é muito importante de se ter cuidado. Se você quer construir seu
00:15:38agente de forma independente do mecanismo de transcrição, você precisa criar uma camada que normalize tudo isso,
00:15:44certo? Vamos falar sobre soluções em um minuto. E há o outro caso, que é o hindi
00:15:48em caracteres latinos ou romanos, certo? Ou seja, isto é hindi, mas lê-se como
00:15:54inglês, o que novamente atrapalha tudo nos processos posteriores. Esses são apenas exemplos. Isso se aplica a
00:15:59árabe, mandarim, japonês, ou seja, praticamente qualquer idioma. Então,
00:16:04o que realmente faz a diferença na camada de transcrição? Para nomes próprios,
00:16:11recomendamos que você use não apenas o reforço de palavras-chave. Acho que muitos mecanismos de transcrição
00:16:16oferecem o reforço de palavras-chave, onde você pode inserir palavras específicas no mecanismo deles,
00:16:21mas sim fazer um reforço dinâmico de palavras-chave. O que isso significa? Não mantenha a palavra-chave durante todo o estado da
00:16:26chamada. Adicione-a dinamicamente quando achar que precisa dela como resposta, para obter a mais alta
00:16:32precisão. Ou seja, em diferentes momentos da chamada, o mecanismo de transcrição terá diferentes
00:16:38palavras-chave reforçadas durante fases distintas, certo? E é isso que vemos funcionar melhor, porque se você
00:16:43simplesmente poluir o contexto do mecanismo de transcrição com toneladas de palavras-chave, ele voltará a alucinar,
00:16:49certo? Então é isso que costuma funcionar melhor. Faça pós-processamento das suas
00:16:55transcrições com um LLM, porque o seu LLM possui o contexto de domínio, e o seu mecanismo de transcrição não.
00:17:02Portanto, muitas palavras que ele diria — vou dar alguns exemplos — podem não fazer sentido. Isto é
00:17:07uma transcrição, como um número de telefone vindo de um mecanismo de transcrição, certo? O que você acha que esse E é?
00:17:13Certo? Se você fornecer isso a um LLM, ele sabe que aquilo é um três. Da mesma forma, aquele um é o dígito
00:17:18um. Então, o seu mecanismo de transcrição muitas vezes pode errar nisso, mas quando você faz o pós-processamento
00:17:24com uma camada de LLM, ele corrige isso instantaneamente do ponto de vista de coleta. Quer dizer,
00:17:30e a última, como eu disse, a transliteração da sua saída de STT que de certa forma é multilíngue também é
00:17:37normalizada, usando primeiro um LLM para transliterar ou usando algum tipo de mecanismo de transliteração
00:17:46neural. Existem muitos deles de código aberto. Você pode simplesmente escolher um deles,
00:17:49certo? Que fará todo esse trabalho para você. Envie transcrições limpas consistentemente,
00:17:55de forma independente do mecanismo de transcrição, para o seu LLM.
00:18:00Muito bem. O terceiro ponto que costumamos ver é a coleta de dados. É aqui que acho que de 50 a 60
00:18:05por cento dos agentes de IA falham feio. E nós gostamos de pensar nisso como um problema de UX,
00:18:14mas apenas para voz. Pense em modelos de dados, em vez de uma transcrição chegando a um LLM e tentando
00:18:21descobrir o que a transcrição disse. Vamos nos inspirar, assumindo que a maioria de nós aqui
00:18:27seja desenvolvedor, nas classes de dados do Python, Pydantic,
00:18:32Zod do TypeScript ou campos de formulário na UI, certo? Se você começar a pensar a partir dessa formulação
00:18:39de problema, vimos a precisão subir de 30% para cerca de 95% do ponto de vista de coleta de dados
00:18:46quando você passa a pensar dessa maneira. Então, decida o formato antes de perguntar, certo?
00:18:52Em vez de manter algo em aberto, você pode mantê-lo restrito? Um número de telefone pode ser
00:18:58um campo do tipo número de telefone? No momento em que você faz isso, você sabe quantos dígitos ele precisa
00:19:03ter. Você pode aplicar validações sobre isso e definir quais valores permitidos podem
00:19:10existir. Assim, no exemplo anterior que vimos, se um E aparece no meio de um número de telefone e você sabe
00:19:15que é um número de telefone, você percebe instantaneamente e deduz inteligentemente que é um três, confirmando isso com
00:19:20o usuário, ou você sabe que aquilo é um erro, faz a validação e pede para o usuário repetir,
00:19:26certo? Este é um dos padrões comuns que vimos aqui em termos de
00:19:31padrão de coleta. O nome, eu acho, é um caso interessante. Escolhi apenas um
00:19:36nome difícil de pronunciar. É impossível um humano acertar isso e
00:19:43é impossível nosso mecanismo de transcrição acertar, não importa quantas vezes você tente, certo?
00:19:47Portanto, no momento em que você começa a pensar nisso como campos e define regras e mecanismos de confirmação
00:19:53para soletrar isso letra por letra, é só assim que você consegue acertar. Caso contrário,
00:19:58vai falhar feio na forma como você coleta isso em uma chamada de voz.
00:20:03E esse é apenas um exemplo do que estou falando em relação à parte de coleta de dados.
00:20:11Outro aspecto que dá muito errado são os valores relativos, sendo a data um dos exemplos.
00:20:18Se alguém diz “semana que vem, quarta-feira às oito”, isso pode significar 8h ou 20h, e descobrir
00:20:25qual é a data real passa a ser um problema bastante restrito. Se você soubesse que este era um
00:20:30campo de data e hora e estivesse coletando um campo de data e hora, você pegaria a data atual e descobriria
00:20:35qual seria esse valor com base nisso, certo? É assim que você deve garantir
00:20:39que faz isso com uma combinação do LLM com a chamada de ferramentas, onde a chamada de ferramentas
00:20:44faz o trabalho pesado para você do ponto de vista dos campos.
00:20:50E então você executa isso a partir de uma perspectiva de teste unitário. Portanto, todas as suas avaliações precisam
00:20:58começar a tratar esses campos como testes unitários. E desde que seus testes unitários sejam validados e passem,
00:21:06sabe, o seu agente será, é, confiável e repetível. Você não,
00:21:10sabe, executa, é, centenas de casos de teste de ponta a ponta de agentes só para descobrir, sabe, que uma
00:21:15coleta de campo está quebrada. Você faz suas avaliações a nível de campo e de teste unitário.
00:21:24E aí, é, como eu disse, acho que, é, essa mentalidade torna tudo mais estruturado
00:21:30em vez de ficar esperando colocar uma tonelada de prompt, mudando, sabe, o prompt por alguns, é,
00:21:36caracteres toda vez. E de algum modo a minha engenharia de prompt vai fazer a IA deixar o modelo muito mais
00:21:41ajustado a instruções e magicamente começar a seguir algumas dessas coisas. Então, na verdade, é, como eu disse,
00:21:47né, nós nos vimos chegar a 95, 97% de precisão sem precisar ajustar finamente um modelo.
00:21:53Certo? E o truque basicamente é apenas dividir o seu contexto de
00:21:57o que o agente está fazendo naquele momento com estados específicos, é, do que o agente está passando.
00:22:04Certo. É, eu só vou passar rapidamente por cima disso de um
00:22:10ponto de vista de tempo. Eu só vejo que tenho mais três minutos. Um, tomara que isso seja um bug, mas, mas vamos
00:22:16deixar por isso mesmo. Ok. Um, então, esta é a quarta área onde vemos problemas surgindo. A maioria das pessoas pega
00:22:24a saída da IA e depois a envia para um TTS. Obviamente, acho que existem muitos TTSs bons no mercado
00:22:30que cuidam de muita coisa pesada, mas muitas vezes ele, ele estraga. É, o que recomendamos e
00:22:37o que temos visto é que você geralmente quer ter uma camada de normalização entre sua IA e o que
00:22:43é enviado para um TTS. Você não envia a saída da sua IA diretamente para um TTS, certo? E, e vamos passar
00:22:50por alguns exemplos. O básico, que é remover emojis, é, markdown, é, antes, antes de qualquer síntese
00:22:58no TTS. A maioria dos pipelines de orquestração faz isso, tipo, sabe, LiveCAD ou PipeCAD fariam isso
00:23:02para você se você apenas definir algumas flags. Então, eu, mas, mas certifique-se se você não estiver usando eles ou
00:23:08construindo do zero que você definiu isso explicitamente, porque você não quer que um emoji apareça
00:23:12em, em, em, em algo lido em voz alta ou, sabe, markdown aparecendo lá.
00:23:17Ok. Acho, acho que alguns mais comuns, é, dicionários personalizados. A maioria dos motores de TTS fornece
00:23:23isso a você, é, como pronunciar palavras personalizadas, sejam elas, é, sabe, nomes próprios, marcas,
00:23:30é, siglas e assim por diante. Então, defina isso, é, quando você for da sua IA para a saída do TTS,
00:23:36porque se não fizer, você vai estragar isso. E eu, eu vou te mostrar um exemplo de como testamos
00:23:40isso. É, o outro é que a maioria dos motores também te dá velocidade. Então, se você sabe que está pronunciano
00:23:47uma entidade, desacelere, faça seu agente desacelerar. Então, a 0.8x ou 0.7x, para que ele consiga
00:23:54enunciar aquela entidade específica e não estragar a pronúncia de um e-mail ou de um número
00:24:00de telefone ou de um nome letra por letra. E sim, normalize todas as coisas confusas, né? Como e-mails,
00:24:09moeda, datas. Não deixe isso para o TTS fazer. É, a maioria deles faz, mas não deixe
00:24:15para o TTS fazer. Tipo, construa sua camada de normalização na sua ponta para que amanhã você ache que
00:24:21precisa trocar de TTS ou, é, por qualquer motivo o primeiro caiu e você quer usar
00:24:25outro TTS, você consiga não depender nativamente do motor do TTS, mas construa
00:24:32isso internamente, é, para que seja gerenciado. E aí, é, acho que, eu não tenho meu sobrenome
00:24:39aqui, mas eu, eu não tenho meu sobrenome nisso. Então, meu primeiro teste é se ele não consegue pronunciar meu sobrenome
00:24:44ou o nome da minha empresa, ele já está falhando. Então, meu sobrenome é, é, Balasubramanian,
00:24:50e se você não consegue pronunciar isso usando um agente de voz de IA, é, isso é um teste para mim. Eu, eu sei,
00:24:56tipo, é, é, sabe, o agente vai errar muitas palavras que, é, sabe, precisam ser soletadas
00:25:04dia após dia. A segunda é o nome da nossa empresa, Pliwo. Então, muitos motores pronunciam
00:25:09Pliwo ou, é, Pliwo e assim por diante. Mas, mas acho que especificamente poder controlar isso
00:25:16no seu pipeline é super crítico. E aí, se você está construindo um, se você está construindo um produto
00:25:21voltado para o cliente, então, é, dê essa opção aos seus clientes. Certo,
00:25:26eu só vou passar rapidamente pelos, pelos últimos dois slides. É, eu, eu estou estourando muito o tempo.
00:25:32É, detecção de fim de turno, acho que este é um tópico separado, mas vou
00:25:36puxar rapidamente todos os pontos para vocês poderem dar uma olhada. E se, se vocês quiserem conversar, é,
00:25:41depois disso, podemos, podemos falar sobre isso. Certo, é, eu só vou deixar isso por uns cinco
00:25:49segundos e aí, e aí podemos conversar sobre isso offline. Eu, eu estou bem atrasado no tempo. E aí o,
00:25:53o, o último é, é, interrupção e, e escuta ativa (backchanneling). Acho que há muita conversa sobre
00:25:58modelos de fala para fala que fazem parte disso, mas nós conseguimos ver como poderíamos fazer tudo isso
00:26:03em pipelines de fala para fala. Você realmente não precisa de um modelo de fala para fala para fazer tudo isso.
00:26:07É, de novo, eu vou apenas, vou colocar isso no slide e, e encerrar com isso. É,
00:26:15tudo bem. Acho que não temos tempo para perguntas. Podemos respondê-las offline se tiverem tempo, mas,
00:26:19é, tomara que isso tenha sido útil e dado alguns insights sobre, é, o que estamos vendo em produções,
00:26:24é, com bilhões de chamadas em escala. Certo. Obrigado.
00:26:29Até a próxima.

설명

Nearly every intelligence gain in language models over the past year has come from letting them think longer. Voice agents have to turn thinking off, because the budget between a user finishing a sentence and the agent starting to speak is measured in hundreds of milliseconds. Venky B is founder and CEO of Plivo, which carries over a billion voice calls a month and has been building telephony infrastructure since 2011, and this talk is a tour of what breaks when a voice agent leaves the demo and meets production. On latency his numbers are blunt. Teams aim for under 550 milliseconds and most land between 750 and 1,200, and past that users simply hang up. His team's answer is smaller open source models hosted themselves, targeting under 300 milliseconds, chosen partly on how many tokens a language needs per word. The failure he says wrecks half of all deployments is data collection, and his fix is to stop treating it as transcription at all. Decide the shape before you ask. A phone number is a typed field with a length and a validator, so a stray letter in the middle is either corrected with confidence or sent back to the caller, and evaluation happens per field as a unit test rather than end to end. That reframing took his accuracy from roughly 30 percent to the mid nineties with no fine tuning. He is equally specific about transcription being brittle by default, especially with proper nouns and code switched languages, and about never feeding model output straight into speech synthesis. His own benchmark for a vendor is whether it can pronounce his surname and his company's name. Speaker info: - https://x.com/bevenky - https://www.linkedin.com/in/bevenky/ Timestamps: 0:00 - Where voice agents break between demo and production 2:20 - A billion calls a month 4:28 - The pipeline everyone builds first 5:34 - Failure one: latency and time to first audio 6:42 - Balancing cost, intelligence, and latency 7:48 - Why thinking models do not fit 9:56 - Choosing and sizing open source models 13:06 - Failure two: assume transcription is brittle 15:14 - Code switched languages break everything downstream 16:17 - Dynamic keyword boosting and LLM post processing 18:24 - Failure three: collect data as typed fields 20:31 - Relative dates and other traps 21:37 - Field level evals instead of end to end 22:47 - Failure four: normalize before synthesis 25:00 - Failure five: turn detection and barge in

커뮤니티 글

아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!

이 영상에 대해 글쓰기