2 puntos por GN⁺ 2024-05-14 | 1 comentarios | Compartir por WhatsApp
  • Pipecat es un framework Python de código abierto para crear agentes conversacionales de voz y multimodales en tiempo real. Soporta desde un único agente de voz hasta sistemas donde varios agentes especializados se coordinan mediante handoff, ejecución en paralelo y un bus compartido
  • Su diseño central agrupa reconocimiento de voz, conversión de texto a voz, procesamiento conversacional, servicios de IA y capas de transporte en pipelines componibles, para que los desarrolladores puedan enfocarse en la lógica propia del agente
  • Entre lo que se puede crear incluye Voice Assistants, sistemas multiagente, compañeros de IA, interfaces multimodales basadas en voz, video e imágenes, storytelling interactivo, bots de recepción y soporte al cliente, y sistemas de diálogo estructurado
  • Los SDK oficiales de cliente soportan JavaScript, React, React Native, Swift, Kotlin, C++, ESP32, y los servicios del lado del servidor se expanden a STT, LLM, TTS, Speech-to-Speech, transporte WebRTC/WebSocket, video, memoria, visión e imagen, procesamiento de audio y herramientas de análisis
  • El inicio rápido se puede hacer con pipecat init quickstart o pipecat init; la instalación base se mantiene liviana y el soporte para servicios de IA de terceros se configura agregando los extras necesarios

Rol de Pipecat

  • Pipecat es un framework Python de código abierto para crear agentes conversacionales de voz en tiempo real y multimodales
  • Permite crear no solo un único agente de voz, sino también sistemas multiagente donde agentes especializados realizan handoff entre sí, fan-out en paralelo, ejecución como sidecars y coordinación basada en un bus compartido
  • Está diseñado para orquestar audio, video, servicios de IA, capas de transporte y pipelines conversacionales, de modo que puedas enfocarte en implementar el comportamiento propio del agente
  • Para empezar rápidamente, ejecuta pipecat init quickstart o sigue la quickstart guide

Qué puedes crear

  • Voice Assistants: asistentes de voz que mantienen conversaciones en streaming de forma natural con IA
  • Multi-Agent Systems: arquitecturas donde agentes especializados hacen handoff, se distribuyen mediante fan-out en paralelo o funcionan como sidecars sobre un bus compartido
  • AI Companions: coaches, asistentes de reuniones y personajes
  • Multimodal Interfaces: interfaces que manejan voz, video, imágenes y más
  • Interactive Storytelling: herramientas creativas basadas en medios generativos
  • Business Agents: recepción de clientes, bots de soporte y flujos guiados
  • Complex Dialog Systems: sistemas que diseñan lógica mediante conversaciones estructuradas

Características de diseño

  • Integra reconocimiento de voz, conversión de texto a voz y procesamiento conversacional con una arquitectura voice-first
  • Ofrece una estructura plug-in para conectar diversos servicios y herramientas de IA
  • Soporta pipelines componibles que construyen comportamientos complejos a partir de componentes modulares
  • Trata cada pipeline como un agente, y permite combinarlos mediante handoff, fan-out en paralelo, workers sidecar y despliegues distribuidos
  • Apunta a interacciones en tiempo real de latencia ultrabaja mediante capas de transporte como WebSockets o WebRTC

Ecosistema y herramientas

  • Los SDK oficiales de cliente se ofrecen para conectar con Pipecat desde varias plataformas
  • Pipecat Flows permite configurar dentro de Pipecat rutas conversacionales predefinidas o dinámicas con gestión de estado
  • Voice UI Kit es un conjunto de componentes, hooks y plantillas para crear rápidamente aplicaciones de IA por voz
  • Pipecat CLI viene incluido con pipecat-ai y se instala con uv tool install "pipecat-ai[cli]"
    • pipecat init inicia un proyecto nuevo y lo configura para que asistentes de programación con IA como Claude Code o Codex puedan crear el proyecto
    • Puede hacer scaffolding de un bot ejecutable en menos de 1 minuto y luego permite monitorear agentes y desplegarlos a producción desde la CLI
  • Whisker es un depurador en tiempo real para pipelines y procesadores de Pipecat
  • Tail es un dashboard de terminal para Pipecat
  • Pipecat Skills soporta scaffolding de proyectos y despliegues en Pipecat Cloud junto con Claude Code
    • Comando de instalación: claude plugin marketplace add pipecat-ai/skills

Alcance de servicios soportados

  • Speech-to-Text soporta varios servicios como AssemblyAI, AWS, Azure, Deepgram, Google, Groq Whisper, Mistral, NVIDIA, OpenAI Whisper, Whisper y xAI
  • LLM incluye Anthropic, AWS, Azure, Cerebras, DeepSeek, Gemini, Grok, Groq, Mistral, NVIDIA NIM, Ollama, OpenAI, OpenAI Responses, OpenRouter, Perplexity, Qwen, Together AI y otros
  • Text-to-Speech se conecta con AWS, Azure, Cartesia, Deepgram, ElevenLabs, Google, Groq, Hume, Kokoro, Mistral, NVIDIA, OpenAI, Piper, Resemble, Rime, Together, XTTS y otros
  • Speech-to-Speech soporta AWS Nova Sonic, Gemini Multimodal Live, Grok Voice Agent, OpenAI Realtime y Ultravox
  • La capa de transporte incluye Daily WebRTC, FastAPI Websocket, LiveKit WebRTC, SmallWebRTCTransport, Vonage WebRTC, WebSocket Server, WhatsApp y Local
  • Además, soporta serializers como Twilio, Telnyx y Vonage; video como HeyGen, Tavus y Simli; memoria mem0; visión e imagen basadas en fal, Google Imagen y Moondream; procesamiento de audio como Silero VAD, Krisp Viva y RNNoise; y herramientas de análisis como OpenTelemetry y Sentry
  • La lista completa se puede consultar en la full services documentation

Instalación y primeros pasos

  • Puedes ejecutar Pipecat en una máquina local y, cuando esté listo, mover el proceso del agente a la nube
  • Antes de empezar, necesitas instalar uv
curl -LsSf https://astral.sh/uv/install.sh | sh
  • El inicio rápido basado en CLI instala Pipecat CLI y luego hace scaffolding interactivo de un nuevo bot para phone o web/mobile
uv tool install "pipecat-ai[cli]"
pipecat init
  • La instalación manual usa uv init y uv add pipecat-ai en un proyecto nuevo, o agrega uv add pipecat-ai a un proyecto existente
uv init my-pipecat-app
cd my-pipecat-app
uv add pipecat-ai
uv add pipecat-ai
  • El archivo de entorno se configura con cp env.example .env
  • El paquete base incluye solo el core framework; si necesitas servicios de IA de terceros, agrega extras
uv add "pipecat-ai[option,...]"
  • Los usuarios de pip pueden instalar con pip install pipecat-ai y pip install "pipecat-ai[option,...]"

Ejemplos y desarrollo

  • Focused examples son pequeños ejemplos de agentes que muestran 1 o 2 servicios o conceptos específicos
  • Example apps son aplicaciones completas que pueden usarse como punto de partida para el desarrollo
  • El desarrollo de Pipecat requiere como mínimo Python 3.11, y la versión recomendada es Python 3.12 o superior
  • El entorno de desarrollo del repositorio se configura con uv sync --group dev --all-extras --no-extra gstreamer --no-extra local
    • Algunos extras como local y gstreamer pueden requerir dependencias del sistema
  • Las pruebas se ejecutan desde la raíz del repositorio con uv run pytest, y una prueba específica se ejecuta con uv run pytest tests/test_name.py

Contribuciones y ayuda

  • Los bugs se reportan abriendo un issue en GitHub, y las ideas de funcionalidades comienzan en una discussion de Discord
  • Las contribuciones de código siguen la guía CONTRIBUTING.md, y las mejoras de documentación se reciben como PR en Docs
  • Las vías para obtener ayuda son Discord, docs y X

1 comentarios

 
GN⁺ 2024-05-14
Opiniones de Hacker News
  • Me alegra que haya una implementación open source, y he visto que muchas startups como https://www.retellai.com/, https://fixie.ai/ están entrando en este espacio.
    Al final siempre termina haciendo falta un modelo de voz a voz, pero el enfoque actual normalmente parece ser voz→texto→texto→voz, con varios agentes encargándose de 1 para escuchar + 1 para hablar.
    Me entusiasma ver cómo encajará con el gpt-4o anunciado recientemente.

    • También valdría la pena agregar https://vapi.ai a la lista. Sus herramientas son bastante buenas.
      Estoy tratando de seguir de cerca las distintas capas y jugadores de este sector.
    • En fixie.ai estamos trabajando en un SLM, es decir, un modelo de lenguaje de voz, y pronto publicaremos algo que se podrá probar.
    • Me da curiosidad cómo funciona un modelo de voz a voz. ¿Usa muchos más tokens para captar los matices del habla?
  • Genial, pero en el lado open source de verdad necesitamos un modelo de audio a audio como el que se vio en la demo. Me pregunto si alguien conoce algo parecido.
    Edit: alguien encontró uno: https://news.ycombinator.com/item?id=40346992

    • La mayoría de los ejemplos de Pipecat en los que estamos trabajando ahora se enfocan en voz a voz. Los ejemplos muestran cómo implementarlo, y también se puede probar directamente el ejemplo alojado de storytelling: https://storytelling-chatbot.fly.dev/
      Sería bueno actualizar los ejemplos del README para que muestren mejor este punto.
    • Un modelo de audio a audio definitivamente es un avance, y en general parece que iremos en esa dirección.
      En el contexto de IA de voz en tiempo real, cuando la latencia baja a alrededor de 800 ms o menos, la respuesta se siente natural para la mayoría de las personas y casos de uso.
      La página de anuncio de GPT-4o dice que desde un prompt de audio hasta el primer token el promedio es de unos 320 ms; eso sin duda es el siguiente nivel y es muy interesante. Ahora mismo es difícil llegar a 800 ms con cualquier pipeline que incluya GPT-4 Turbo, así que es algo importante.
      Si se encadenan en un pipeline los modelos más rápidos actuales de transcripción, inferencia y síntesis de voz, se pueden lograr unos 500 ms hasta el primer token. Por ejemplo, una combinación de transcripción de Deepgram, Groq Llama-3 y voz Deepgram Aura.
  • Siri salió en octubre de 2011, Amazon Alexa en noviembre de 2014 y la bocina con voz de Google Assistant en mayo de 2016.
    Por lo que veo, Siri sigue siendo un desastre que nadie quiere usar, y no puedo opinar mucho sobre Alexa porque nunca la he usado directamente, pero en las bocinas Google Home y en teléfonos Android no he visto grandes mejoras en años. Más bien empeoró: ya no se pueden agregar ítems directamente a AnyList[0] como antes, solo a Google Keep.
    Incluso ejemplos muy simples que hace mucho pensé que ya serían posibles, como “repite más fuerte lo que acabas de decir” o “apaga las luces de la cocina y del comedor”, todavía no interpreta solicitudes de dos pasos.
    Los asistentes de voz son bastante útiles al manejar, al estar acostado en la cama, cocinando o ocupado con otra cosa, pero se sienten casi estancados desde su lanzamiento inicial. Probablemente nadie encontró una forma de monetizarlos.
    ¿Qué haría falta para tener mejores asistentes de voz para consumidores? Willow[1] tampoco parece haber despegado mucho.
    [0] https://help.anylist.com/articles/google-assistant-overview/
    [1] https://heywillow.io/
    Además, siento que me adueñé del hilo descargando algo que tenía en la cabeza últimamente. Pipecat se ve realmente genial y espero que le vaya bien; ojalá tenga tiempo el fin de semana para experimentar con él.

    • Uso principalmente Google Home, pero también tengo Echo Frames, así que uso Alexa con bastante regularidad. El uso principal es la automatización del hogar, y en ese escenario Alexa responde mucho mejor que Google Home.
      Estoy de acuerdo en que Google Home parece haber empeorado en varios aspectos. Como usuario frecuente de AnyList, ese cambio fue especialmente frustrante.
    • Para algunas tareas Siri también está bien. Por ejemplo, cosas como “envíale un mensaje a x” o “recuérdame hacer x cuando llegue a casa”.
      Lo hace bastante bien incluso sin conexión a internet. La excepción es el dictado: con internet funciona mucho mejor.
    • Hay un salto cualitativo que los asistentes de voz tienen que superar, y siento que hasta hace unos 18 meses eso no habría sido posible. Así que sí, el producto en sí también se estancó.
      Pero desde el punto de vista de Amazon, no queda claro en qué momento del último año habrían trazado una línea sobre el nivel tecnológico disponible y empezado a iterar el producto sobre esa base.
    • Uso tanto Siri como Alexa, pero considerando solo funciones limitadas, aunque uso más Alexa, creo que Alexa es peor que Siri.
      Aun así, Alexa sí puede manejar dos cosas a la vez, como “enciende X y apaga Y” o “enciende X durante Y segundos”.
      Siento que ha empeorado con el tiempo, y vi un artículo que decía que el polvo acumulado en el micrófono podía deteriorar la captura de voz, así que probé con un removedor de polvo, pero no lo solucionó.
      Al escuchar en la app el audio que Alexa realmente capturó, tanto el Echo como el Echo Dot de 4.ª generación tienen una calidad de micrófono realmente mala. El mes pasado probé bastante Whisper con audio de baja calidad, y creo que ese tipo de modelo interpretaría mi voz mucho mejor que lo que usa Amazon.
    • Uso Alexa, es decir, Amazon Echo Show, para cosas como el resumen de noticias, revisar el clima, reproducir música y configurar temporizadores.
      Alexa es un desastre y cada vez se vuelve más tonta. Ignora por completo la configuración e incluso vuelve a activar opciones que había desactivado.
      A menudo no responde las preguntas y en cambio pregunta si quiero probar alguna función nueva, y también vuelve a agregar por su cuenta canales de noticias que eliminé explícitamente de la lista de Flash Briefing.
      Sigo sin entender cómo puede ser tan mala.
  • También acabo de crear https://feycher.com; es parecido, pero también soporta lip sync en tiempo real. Si te interesa, podemos hablar.

  • También están creando bolna, una orquestación de voz open source: https://github.com/bolna-ai/bolna

  • LiveKit Agents, que OpenAI usa en el modo de voz, también es open source:
    https://github.com/livekit/agents

  • La detección de actividad de voz (VAD) en general es muy interesante, y quiero aprender más sobre cómo funciona especialmente cuando hay varios hablantes

  • ¿Cómo se podría empezar para usar esto en traducción en tiempo real de llamadas telefónicas?

    • Daily ahora soporta llamadas salientes y entrantes: https://docs.daily.co/guides/products/dial-in-dial-out#main
      Es decir, se puede conectar un bot a la llamada y luego pedirle que marque a un número telefónico, y de hecho funciona así
    • Me da curiosidad por qué querrían traducir llamadas telefónicas en tiempo real. Y existe Whisper
  • Me pregunto qué impacto tendrá la voz en tiempo real de GPT-4o, recién anunciada, en proyectos como estos
    La demo de conversación con traducción multilingüe en tiempo real fue realmente sorprendente

    • En Pipecat hay una demo de traducción usando GPT-4 Turbo, que ahora ya es un modelo antiguo y artrítico :-) https://github.com/pipecat-ai/pipecat/tree/main/examples/tra...
      Apenas la entrada de audio de GPT-4o esté disponible vía API, planean agregar soporte para 4o en Pipecat. Para audio bidireccional en tiempo real probablemente se necesite un nuevo endpoint WebSocket o WebRTC
    • Tengo la misma duda
      Crear un pipeline que conecte modelos de lenguaje de gran escala con modelos de síntesis de voz y reconocimiento de voz con baja latencia está bien, pero comparado con un modelo multimodal nativo como GPT-4o, claramente parece estar en desventaja
      El futuro son los modelos nativos de voz capaces de entender los matices de la voz y la forma de hablar, y ese futuro no parece tan lejano