
ElevenLabs Conversational AI now supports WebRTC
ElevenLabs Conversational AI now supports WebRTC for improved conversation quality
KUBI é um barista conversacional que trabalha com a Conversational AI da ElevenLabs. Veja como.
KUBI é um robô barista e recepcionista conversacional no Second Space, um espaço de co-working de última geração 24/7 em Kaohsiung, Taiwan. Como a operação do espaço é totalmente automatizada, é muito importante que KUBI — como o primeiro ponto de interação com os membros — adicione um toque amigável e único. É por isso que o Second Space escolheu a Conversational AI da ElevenLabs para criar interações divertidas e memoráveis com os membros. Vamos ver KUBI em ação.
KUBI utiliza uma arquitetura multissensorial sofisticada para simular a interação humana. O sistema se baseia em uma arquitetura de microsserviços, onde serviços especializados operam simultaneamente e se comunicam por meio de um fluxo de eventos em tempo real. Esses serviços gerenciam várias tarefas, incluindo reconhecimento facial e de objetos usando inferência de IA em tempo real, detecção de copos e verificações de sanidade via câmeras, impressão de recibos, reconhecimento facial seguro para controle de acesso e controle preciso dos dispensadores de leite e grãos.
Estes são alguns dos serviços que estão rodando simultaneamente:
Por que todos esses microsserviços? Fácil — nós os gerenciamos de forma independente, escalamos facilmente e usamos as melhores ferramentas para cada tarefa.
Coordenando todos esses microsserviços está um serviço central, humoristicamente chamado de "BigBoy". É essencialmente um grande processador de eventos não bloqueante:
1 | |
2 | internal object WeatherIdleScenario: SingleTaskScenario(scenario){ |
3 | |
4 | importance = Importance.Medium |
5 | compilationTimeout = Time.ThreeSeconds |
6 | interruptable = false |
7 | exeutionExpiration = = Time.TenSeconds |
8 | |
9 | override fun isEligible(event: Event, environment: Environment): Maybe<Boolean> = withEnvironment(environment) { |
10 | just { |
11 | (event is IdleEvent |
12 | && !triggeredInLast(40.minutes) |
13 | && (personPresent() || hasActiveSessions) |
14 | && environment.weatherService.lastReportWithin(10.minutes)) |
15 | } |
16 | } |
17 | } |
18 | |
19 | private val scenario = ScenarioRecipe { event, env, session -> |
20 | |
21 | |
22 | invokeOneOf( |
23 | |
24 | phrase { |
25 | sayWith { |
26 | "Rainy day today, isn't it? That's why I have my little umbrella! Look!".asEnglish |
27 | }.withAutoGift().withAutoMotion() |
28 | }.given { Weather.isRaining() }, |
29 | |
30 | phrase { |
31 | sayWith { |
32 | "Friend, it's so cold outside! So sad for you... because you're a human. I don't really mind!".asEnglish |
33 | }.withAutoMotion() |
34 | |
35 | sayWith { |
36 | "Wait, that soudned a bit rude.".asEnglish |
37 | }.withAutoMotion() |
38 | |
39 | }.given { Weather.isCold() }, |
40 | |
41 | ) |
42 | |
43 | |
44 | } |
45 | |
46 |
O que são cenários?
Pense em cenários como compiladores não bloqueantes para eventos de ação do robô. Um evento de ação é geralmente o evento mais a jusante, que é o último passo em uma cadeia, resultando em um efeito físico, como movimento ou fala. Por exemplo, um cenário de saudação pode acionar:
Geração de Eventos com LLM: Alguns eventos de ação são gerados automaticamente por um LLM, por exemplo, comAutoMotion
escolheria o melhor movimento de uma lista pré-definida com base no contexto dado. Enquanto comAutoGif
usa um LLM para gerar a tag mais adequada para a frase dada. A tag é usada para obter um GIF no Giphy, que será exibido no rosto de KUBI junto com a frase.
Sincronização de eventos de ação: Esses eventos então fluem por um agendador que garante que a fala, expressões faciais e movimentos permaneçam sincronizados. A sincronização garante que a fala de KUBI corresponda perfeitamente aos seus gestos.
O legal é que os cenários podem até ouvir eventos de ação e acionar novos eventos de ação dinamicamente. Por exemplo:
O BigBoy literalmente vê e sabe tudo o que está acontecendo. Bem legal, né?
A maioria dos serviços é hospedada localmente e está encapsulada em um contêiner docker. No contêiner, seu ciclo de vida é gerenciado pelo sistema de controle de processos Supervisor. Logs de erro são coletados no Sentry e são alimentados em um aplicativo administrativo personalizado para monitorar quaisquer exceções, status em tempo real dos serviços e sensores, bem como relatórios de latência. O legal é que o aplicativo Flutter foi 90% gerado por IA.
O Second Space tinha uma personalidade muito específica em mente para KUBI - uma mistura de Deadpool, Wheatley do jogo Portal e um pouco de Pathfinder do Apex Legends. Eles conseguiram desenhar a voz em 15 minutos, completa com emoções e pausas que tornam a voz ainda mais humana.
A ElevenLabs alimenta as capacidades de fala de KUBI por meio de duas APIs principais:
Ativado quando um cliente diz, "Ei KUBI!", a Conversational AI da ElevenLabs é capaz de responder em 200ms, fazendo a interação parecer realmente humana.
Usando a Conversational AI da ElevenLabs via conexão WebSocket, KUBI pode aproveitar a chamada de função, por exemplo:
Alternar entre diferentes modelos LLM facilmente através do painel administrativo da ElevenLabs ajuda o Second Space a otimizar o entendimento e a precisão, pois notamos que diferentes modelos reconhecem melhor as intenções da ferramenta do que outros. Atualmente, eles estão usando o Gemini 2.0 Flash como seu modelo principal para Conversational AI e o ChatGPT 4o para as gerações de fala estática.
Os primeiros commits do Second Space no GitHub referenciando a ElevenLabs datam de janeiro de 2023 - mesmo antes do modelo multilíngue ser lançado. Eles reconheceram a dedicação da ElevenLabs à qualidade desde cedo e construíram com confiança uma arquitetura antecipando o suporte multilíngue futuro. Agora, entrar em mercados como Japão e Coreia do Sul é tão simples quanto apertar um botão — sem necessidade de trabalho extra de desenvolvimento!
Microsserviços, eventos em tempo real e a poderosa tecnologia de voz da ElevenLabs fazem KUBI parecer realmente vivo e pronto para conquistar e encantar o mundo, um café e uma interação espirituosa de cada vez.
ElevenLabs Conversational AI now supports WebRTC for improved conversation quality
Scaling incredible experiences for millions of users in Hindi and English
Desenvolvido por ElevenLabs Conversational AI