2 pontos por GN⁺ 2024-05-14 | 1 comentários | Compartilhar no WhatsApp
  • Pipecat é um framework open source em Python para criar agentes conversacionais multimodais e de voz em tempo real, com suporte desde um único agente de voz até sistemas em que vários agentes especializados são coordenados por handoff, execução paralela e barramento compartilhado
  • O design central reúne reconhecimento de fala, síntese de voz, processamento de conversa, serviços de IA e camada de transporte em pipelines componíveis, permitindo que desenvolvedores foquem na lógica específica do agente
  • É possível criar Voice Assistants, sistemas multiagente, AI companions, interfaces multimodais baseadas em voz, vídeo e imagem, storytelling interativo, bots de atendimento e suporte ao cliente e até sistemas de diálogo estruturado
  • Os SDKs cliente oficiais oferecem suporte a JavaScript, React, React Native, Swift, Kotlin, C++, ESP32, enquanto os serviços no lado do servidor se expandem para STT, LLM, TTS, Speech-to-Speech, transporte WebRTC/WebSocket, vídeo, memória, visão/imagem, processamento de áudio e ferramentas de análise
  • O início rápido pode ser feito com pipecat init quickstart ou pipecat init, e a instalação padrão permanece leve, adicionando suporte a serviços de IA de terceiros por meio dos extras necessários

O papel do Pipecat

  • Pipecat é um framework open source em Python para criar agentes conversacionais multimodais e de voz em tempo real
  • É possível construir não só um agente de voz único, mas também sistemas multiagente em que agentes especializados fazem handoff, fan-out paralelo, execução sidecar e coordenação baseada em barramento compartilhado
  • Ele orquestra áudio, vídeo, serviços de IA, camada de transporte e pipelines de conversa para que o foco fique na implementação dos comportamentos específicos do agente
  • Para começar rapidamente, basta executar pipecat init quickstart ou seguir o guia de início rápido

O que dá para criar

  • Voice Assistants: assistentes de voz que mantêm conversas em streaming de forma natural com IA
  • Multi-Agent Systems: estruturas em que agentes especializados fazem handoff, fan-out em paralelo ou operam como sidecars sobre um barramento compartilhado
  • AI Companions: coaches, assistentes de reunião e personagens
  • Multimodal Interfaces: interfaces que lidam com voz, vídeo, imagem etc.
  • Interactive Storytelling: ferramentas criativas baseadas em mídia generativa
  • Business Agents: bots de recepção de clientes, suporte e fluxos guiados
  • Complex Dialog Systems: sistemas que projetam lógica por meio de diálogos estruturados

Características de design

  • Estrutura voice-first que integra reconhecimento de fala, síntese de voz e processamento de conversa
  • Oferece uma arquitetura plugável para conectar vários serviços e ferramentas de IA
  • Suporta pipelines componíveis para criar comportamentos complexos com componentes modulares
  • Trata cada pipeline como um agente, que pode ser combinado com handoff, fan-out paralelo, workers sidecar e implantação distribuída
  • Busca interações em tempo real com latência ultrabaixa por meio de camadas de transporte como WebSockets e WebRTC

Ecossistema e ferramentas

  • Os SDKs cliente oficiais são fornecidos para conectar-se ao Pipecat em várias plataformas
  • Pipecat Flows permite configurar, dentro do Pipecat, caminhos de conversa predefinidos ou dinâmicos com gerenciamento de estado
  • Voice UI Kit é um conjunto de componentes, hooks e templates para criar rapidamente aplicações de IA por voz
  • Pipecat CLI vem junto com pipecat-ai e pode ser instalado com uv tool install "pipecat-ai[cli]"
    • pipecat init inicia um novo projeto e faz a configuração para que assistentes de programação com IA como Claude Code ou Codex possam criar o projeto
    • É possível fazer o scaffolding de um bot executável em menos de 1 minuto e depois monitorar agentes e implantá-los em produção com a CLI
  • Whisker é um depurador em tempo real para pipelines e processadores do Pipecat
  • Tail é um dashboard de terminal para Pipecat
  • Pipecat Skills dá suporte, junto com Claude Code, a scaffolding de projetos, deploy no Pipecat Cloud e mais
    • Comando de instalação: claude plugin marketplace add pipecat-ai/skills

Escopo dos serviços suportados

  • Speech-to-Text oferece suporte a vários serviços, como AssemblyAI, AWS, Azure, Deepgram, Google, Groq Whisper, Mistral, NVIDIA, OpenAI Whisper, Whisper e xAI
  • LLM inclui Anthropic, AWS, Azure, Cerebras, DeepSeek, Gemini, Grok, Groq, Mistral, NVIDIA NIM, Ollama, OpenAI, OpenAI Responses, OpenRouter, Perplexity, Qwen e Together AI
  • Text-to-Speech conecta-se a AWS, Azure, Cartesia, Deepgram, ElevenLabs, Google, Groq, Hume, Kokoro, Mistral, NVIDIA, OpenAI, Piper, Resemble, Rime, Together e XTTS
  • Speech-to-Speech suporta AWS Nova Sonic, Gemini Multimodal Live, Grok Voice Agent, OpenAI Realtime e Ultravox
  • A camada de transporte inclui Daily WebRTC, FastAPI Websocket, LiveKit WebRTC, SmallWebRTCTransport, Vonage WebRTC, WebSocket Server, WhatsApp e Local
  • Além disso, há suporte a serializers como Twilio, Telnyx e Vonage; vídeo com HeyGen, Tavus e Simli; memória com mem0; visão/imagem baseada em fal, Google Imagen e Moondream; processamento de áudio com Silero VAD, Krisp Viva e RNNoise; e ferramentas de análise como OpenTelemetry e Sentry
  • A lista completa está disponível na documentação completa de serviços

Instalação e início

  • É possível executar o Pipecat na máquina local e, quando tudo estiver pronto, mover o processo do agente para a nuvem
  • Antes de começar, é preciso instalar o uv
curl -LsSf https://astral.sh/uv/install.sh | sh
  • No início rápido com CLI, instale o Pipecat CLI e faça interativamente o scaffolding de um novo bot de telefone ou web/mobile
uv tool install "pipecat-ai[cli]"
pipecat init
  • Na instalação manual, use uv init e uv add pipecat-ai em um novo projeto ou adicione uv add pipecat-ai a um projeto existente
uv init my-pipecat-app
cd my-pipecat-app
uv add pipecat-ai
uv add pipecat-ai
  • O arquivo de ambiente é configurado com cp env.example .env
  • O pacote padrão inclui apenas o core framework, e, se forem necessários serviços de IA de terceiros, basta adicionar os extras
uv add "pipecat-ai[option,...]"
  • Quem usa pip pode instalar com pip install pipecat-ai e pip install "pipecat-ai[option,...]"

Exemplos e desenvolvimento

  • Focused examples são pequenos exemplos de agentes que mostram 1 ou 2 serviços ou conceitos específicos
  • Example apps são aplicações completas que podem servir como ponto de partida para o desenvolvimento
  • Para desenvolver com Pipecat, é necessário no mínimo Python 3.11, sendo Python 3.12 ou superior a versão recomendada
  • O ambiente de desenvolvimento do repositório é configurado com uv sync --group dev --all-extras --no-extra gstreamer --no-extra local
    • Alguns extras, como local e gstreamer, podem exigir dependências de sistema
  • Os testes são executados a partir da raiz do repositório com uv run pytest, e testes específicos com uv run pytest tests/test_name.py

Contribuição e ajuda

  • Bugs devem ser reportados em issues no GitHub, e ideias de funcionalidades devem começar em discussões no Discord
  • Contribuições de código seguem o guia CONTRIBUTING.md, e melhorias na documentação podem ser enviadas via PR no Docs
  • Os canais de ajuda são Discord, docs e X

1 comentários

 
GN⁺ 2024-05-14
Opiniões no Hacker News
  • É bom ver uma implementação open source, e tenho visto muitas startups como https://www.retellai.com/ e https://fixie.ai/ entrando nessa área
    No fim, sempre acaba surgindo a necessidade de um modelo voz-para-voz, mas a abordagem atual geralmente parece ser voz→texto→texto→voz, com vários agentes ficando responsáveis por 1 parte de escuta + 1 parte de fala
    Estou curioso para ver como isso vai se encaixar com o gpt-4o, anunciado recentemente

    • Vale acrescentar https://vapi.ai à lista também. As ferramentas são bem boas
      Estou tentando acompanhar as várias camadas e players desse setor
    • Na fixie.ai, estamos trabalhando em um SLM, ou seja, um modelo de linguagem de fala, e em breve vamos lançar algo que as pessoas poderão testar
    • Fico curioso para saber como um modelo voz-para-voz funciona. Será que ele usa muito mais tokens para captar as nuances da fala?
  • Excelente, mas o lado open source também precisa muito de um modelo áudio-para-áudio como o que vimos na demo. Alguém conhece algo parecido?
    Edit: alguém encontrou um: https://news.ycombinator.com/item?id=40346992

    • A maioria dos exemplos do Pipecat em que estamos trabalhando agora é focada em voz-para-voz. Os exemplos orientam como implementar isso, e também há um exemplo hospedado de storytelling que dá para testar diretamente: https://storytelling-chatbot.fly.dev/
      Seria bom atualizar os exemplos do README para mostrar melhor esse ponto
    • Modelos áudio-para-áudio são definitivamente um avanço, e acho que a tendência geral é ir nessa direção
      No contexto de IA de voz em tempo real, quando a latência cai para cerca de 800 ms ou menos, a resposta passa a parecer natural para a maioria das pessoas e casos de uso
      A página de anúncio do GPT-4o diz que a média entre o prompt de áudio e o primeiro token é de cerca de 320 ms, o que claramente é o próximo patamar e é muito interessante. Hoje é difícil chegar a 800 ms com qualquer pipeline que inclua GPT-4 Turbo, então isso é bem significativo
      Encadeando os modelos mais rápidos atuais de transcrição, inferência e síntese de voz, dá para chegar a cerca de 500 ms até o primeiro token. Por exemplo, usando transcrição da Deepgram, Groq Llama-3 e voz Deepgram Aura
  • A Siri saiu em outubro de 2011, a Amazon Alexa em novembro de 2014, e as caixas de som com Google Assistant em maio de 2016
    Pelo que vejo, a Siri ainda é uma bagunça que ninguém quer usar; nunca usei a Alexa diretamente, então é difícil comentar, mas nas caixas Google Home e em celulares Android não vejo grandes melhorias há anos. Na verdade, piorou: não dá mais para adicionar itens diretamente ao AnyList[0] como antes, só ao Google Keep
    Mesmo em exemplos muito simples que eu achava que já seriam possíveis há muito tempo, ela ainda não consegue interpretar pedidos em duas etapas, como “repita mais alto o que você acabou de dizer” ou “apague as luzes da cozinha e da sala de jantar”
    Assistentes de voz são bastante úteis ao dirigir, deitado na cama, cozinhando ou ocupado com outra coisa, mas parece que ficaram quase parados desde o começo do lançamento. Talvez ninguém tenha encontrado uma forma de monetizá-los
    O que seria necessário para termos assistentes de voz melhores para consumidores? O Willow[1] também parece não ter decolado muito
    [0] https://help.anylist.com/articles/google-assistant-overview/
    [1] https://heywillow.io/
    Dito isso, acho que desviei o fio porque estava despejando algo que vinha me ocupando a cabeça ultimamente. O Pipecat parece muito legal, espero que dê certo, e tomara que eu tenha tempo no fim de semana para experimentar

    • Uso principalmente o Google Home, mas também tenho Echo Frames, então uso a Alexa com certa regularidade. Meu uso principal é automação residencial e, nesse cenário, a Alexa é muito mais responsiva que o Google Home
      Concordo que o Google Home parece ter piorado em vários aspectos. Como alguém que usa bastante o AnyList, essa mudança foi especialmente frustrante
    • Para algumas tarefas, a Siri também funciona bem. Por exemplo, coisas como “mande uma mensagem para x” ou “me lembre de fazer x quando eu chegar em casa”
      Ela funciona razoavelmente bem mesmo sem conexão à internet. A exceção é o ditado, que é muito melhor quando há internet
    • Há um salto qualitativo que os assistentes de voz precisam superar, e me parece que isso não teria sido possível até antes dos últimos 18 meses. Então é verdade que os produtos em si também ficaram estagnados
      Mas, se eu estivesse no lugar da Amazon, não sei em que ponto do nível tecnológico do último ano eu teria traçado uma linha e começado a iterar o produto a partir dali
    • Uso tanto a Siri quanto a Alexa, mas, considerando apenas um conjunto limitado de recursos, uso mais a Alexa e ainda assim acho a Alexa pior que a Siri
      Mesmo assim, a Alexa consegue lidar com duas coisas ao mesmo tempo, como “ligue X e desligue Y” ou “ligue X por Y segundos”
      Sinto que ela piorou com o tempo; vi um post dizendo que poeira no microfone poderia prejudicar a captura de voz e tentei usar um removedor de poeira, mas não resolveu
      Ouvindo no app o áudio que a Alexa realmente capturou, a qualidade do microfone tanto no Echo quanto no Echo Dot de 4ª geração é realmente muito ruim. No mês passado testei bastante o Whisper com áudio de baixa qualidade, e acho que um modelo desse tipo interpretaria minha voz muito melhor do que o que a Amazon usa
    • Uso a Alexa, mais especificamente um Amazon Echo Show, para briefing de notícias, previsão do tempo, tocar música e configurar timers
      A Alexa é uma bagunça e fica cada vez mais burra. Ela ignora completamente as configurações e até reativa opções que eu tinha desligado
      Muitas vezes não responde à pergunta e pergunta se quero experimentar algum recurso novo; também volta a adicionar por conta própria canais de notícias que eu havia removido explicitamente da lista do Flash Briefing
      Continuo sem entender como pode ser tão ruim assim
  • Também acabei de criar https://feycher.com, que é parecido, mas também oferece suporte a lip-sync em tempo real. Se houver interesse, podemos conversar

  • Também está criando o bolna, uma orquestração de voz open source: https://github.com/bolna-ai/bolna

  • O LiveKit Agents, que a OpenAI usa no modo de voz, também é open source:
    https://github.com/livekit/agents

  • A área de detecção de atividade de voz (VAD) como um todo é muito interessante, e gostaria de aprender mais sobre como ela funciona especialmente quando há vários falantes

  • Como eu poderia começar se quisesse usar isso para fazer tradução em tempo real de chamadas telefônicas?

    • O Daily agora oferece suporte a chamadas de saída e de entrada: https://docs.daily.co/guides/products/dial-in-dial-out#main
      Ou seja, é possível conectar um bot à chamada e depois mandá-lo ligar para um número de telefone, e isso realmente funciona
    • Fico curioso sobre por que alguém gostaria de traduzir chamadas telefônicas em tempo real. E existe o Whisper
  • Fico curioso para saber que impacto a voz em tempo real do GPT-4o, recém-anunciada, terá sobre esses projetos
    A demo de conversa com tradução multilíngue em tempo real foi realmente impressionante

    • Há uma demo de tradução no Pipecat usando o GPT-4 Turbo, que agora virou um modelo antigo e artrítico :-) https://github.com/pipecat-ai/pipecat/tree/main/examples/tra...
      Assim que a entrada de áudio do GPT-4o estiver disponível via API, será adicionado suporte ao 4o no Pipecat. Para áudio bidirecional em tempo real, provavelmente será necessário um novo endpoint WebSocket ou WebRTC
    • Tenho a mesma curiosidade
      Criar um pipeline que conecte modelos de linguagem de grande porte, síntese de voz e modelos de reconhecimento de fala com baixa latência também é uma boa abordagem, mas, comparado a modelos multimodais nativos como o GPT-4o, parece estar claramente em desvantagem
      O futuro está em modelos nativos de voz capazes de entender as nuances da voz e do jeito de falar, e esse futuro não parece estar tão distante