2 points par GN⁺ 2024-05-14 | 1 commentaires | Partager sur WhatsApp
  • Pipecat est un framework Python open source destiné à créer des agents conversationnels vocaux et multimodaux en temps réel, avec une prise en charge allant de l’agent vocal unique jusqu’aux systèmes où plusieurs agents spécialisés sont coordonnés par handoff, exécution en parallèle et bus partagé
  • Sa conception centrale consiste à regrouper reconnaissance vocale, synthèse vocale, traitement conversationnel, services d’IA et couche de transport dans des pipelines composables, afin que les développeurs puissent se concentrer sur la logique propre à leurs agents
  • Parmi les usages possibles figurent les Voice Assistants, les systèmes multi-agents, les compagnons IA, les interfaces multimodales basées sur la voix, la vidéo et l’image, le storytelling interactif, les bots d’accueil et de support client, ainsi que les systèmes de dialogue structurés
  • Les SDK clients officiels prennent en charge JavaScript, React, React Native, Swift, Kotlin, C++, ESP32, tandis que les services côté serveur s’étendent au STT, LLM, TTS, Speech-to-Speech, au transport WebRTC/WebSocket, à la vidéo, à la mémoire, à la vision et à l’image, au traitement audio et aux outils d’analyse
  • La prise en main rapide est possible avec pipecat init quickstart ou pipecat init, et l’installation de base reste légère, la prise en charge des services d’IA tiers se faisant en ajoutant les extras nécessaires

Le rôle de Pipecat

  • Pipecat est un framework Python open source conçu pour créer des agents conversationnels vocaux en temps réel et multimodaux
  • Il permet de construire non seulement un agent vocal unique, mais aussi des systèmes multi-agents dans lesquels des agents spécialisés effectuent des handoffs, du fan-out en parallèle, une exécution en sidecar et une coordination via un bus partagé
  • Il est pensé pour orchestrer ensemble l’audio, la vidéo, les services d’IA, la couche de transport et les pipelines de conversation, afin de se concentrer sur l’implémentation du comportement propre à l’agent
  • Pour démarrer rapidement, il suffit d’exécuter pipecat init quickstart ou de suivre le guide de démarrage rapide

Ce qu’on peut créer

  • Voice Assistants : des assistants vocaux capables de conversations en streaming naturelles avec une IA
  • Multi-Agent Systems : des architectures où des agents spécialisés effectuent des handoffs, du fan-out en parallèle ou fonctionnent comme sidecars sur un bus partagé
  • AI Companions : coachs, assistants de réunion, personnages
  • Multimodal Interfaces : des interfaces qui gèrent voix, vidéo, images, etc.
  • Interactive Storytelling : des outils créatifs fondés sur des médias génératifs
  • Business Agents : accueil client, bots de support, flux guidés
  • Complex Dialog Systems : des systèmes où la logique est conçue à travers des dialogues structurés

Caractéristiques de conception

  • Une architecture voice-first qui intègre reconnaissance vocale, synthèse vocale et traitement conversationnel
  • Une structure plug-in permettant de connecter divers services et outils d’IA
  • Des pipelines composables qui assemblent des composants modulaires pour créer des comportements complexes
  • Chaque pipeline peut être traité comme un agent et combiné avec des handoffs, du fan-out en parallèle, des workers sidecar ou des déploiements distribués
  • L’objectif est une interaction en temps réel à très faible latence via des couches de transport comme WebSockets ou WebRTC

Écosystème et outils

  • Des SDK clients officiels sont proposés pour connecter plusieurs plateformes à Pipecat
  • Pipecat Flows permet de configurer dans Pipecat des parcours conversationnels prédéfinis ou dynamiques, avec gestion d’état
  • Voice UI Kit est un ensemble de composants, hooks et templates pour créer rapidement des applications de voice AI
  • Pipecat CLI est fourni avec pipecat-ai et s’installe avec uv tool install "pipecat-ai[cli]"
    • pipecat init permet de démarrer un nouveau projet et de le configurer afin que des assistants de code IA comme Claude Code ou Codex puissent créer le projet
    • Il est possible de générer le squelette d’un bot exécutable en moins d’une minute, puis de surveiller les agents et de les déployer en production via la CLI
  • Whisker est un débogueur en temps réel pour les pipelines et processeurs Pipecat
  • Tail est un tableau de bord terminal pour Pipecat
  • Pipecat Skills prend en charge, avec Claude Code, le scaffolding de projet, le déploiement sur Pipecat Cloud, etc.
    • Commande d’installation : claude plugin marketplace add pipecat-ai/skills

Étendue des services pris en charge

  • Le Speech-to-Text prend en charge de nombreux services, dont AssemblyAI, AWS, Azure, Deepgram, Google, Groq Whisper, Mistral, NVIDIA, OpenAI Whisper, Whisper et xAI
  • Les LLM incluent notamment Anthropic, AWS, Azure, Cerebras, DeepSeek, Gemini, Grok, Groq, Mistral, NVIDIA NIM, Ollama, OpenAI, OpenAI Responses, OpenRouter, Perplexity, Qwen et Together AI
  • Le Text-to-Speech se connecte à AWS, Azure, Cartesia, Deepgram, ElevenLabs, Google, Groq, Hume, Kokoro, Mistral, NVIDIA, OpenAI, Piper, Resemble, Rime, Together et XTTS, entre autres
  • Le Speech-to-Speech prend en charge AWS Nova Sonic, Gemini Multimodal Live, Grok Voice Agent, OpenAI Realtime et Ultravox
  • La couche de transport comprend Daily WebRTC, FastAPI Websocket, LiveKit WebRTC, SmallWebRTCTransport, Vonage WebRTC, WebSocket Server, WhatsApp et Local
  • S’y ajoutent des serializers comme Twilio, Telnyx et Vonage, la vidéo avec HeyGen, Tavus et Simli, la mémoire avec mem0, la vision et l’image via fal, Google Imagen et Moondream, le traitement audio avec Silero VAD, Krisp Viva et RNNoise, ainsi que les outils d’analyse OpenTelemetry et Sentry
  • La liste complète est disponible dans la documentation complète des services

Installation et démarrage

  • Pipecat peut être exécuté sur une machine locale, puis le processus d’agent peut être déplacé vers le cloud une fois prêt
  • L’installation de uv est nécessaire avant de commencer
curl -LsSf https://astral.sh/uv/install.sh | sh
  • Le démarrage rapide via la CLI consiste à installer Pipecat CLI puis à générer de manière interactive le squelette d’un nouveau bot phone ou web/mobile
uv tool install "pipecat-ai[cli]"
pipecat init
  • L’installation manuelle consiste à utiliser uv init et uv add pipecat-ai dans un nouveau projet, ou à ajouter uv add pipecat-ai à un projet existant
uv init my-pipecat-app
cd my-pipecat-app
uv add pipecat-ai
uv add pipecat-ai
  • Le fichier d’environnement se configure avec cp env.example .env
  • Le package de base n’inclut que le core framework ; si des services d’IA tiers sont nécessaires, il faut ajouter les extras correspondants
uv add "pipecat-ai[option,...]"
  • Les utilisateurs de pip peuvent installer avec pip install pipecat-ai et pip install "pipecat-ai[option,...]"

Exemples et développement

  • Les Focused examples sont de petits exemples d’agents montrant un ou deux services ou concepts précis
  • Les Example apps sont des applications complètes pouvant servir de point de départ au développement
  • Le développement avec Pipecat nécessite au minimum Python 3.11, la version recommandée étant Python 3.12 ou supérieure
  • L’environnement de développement du dépôt se configure avec uv sync --group dev --all-extras --no-extra gstreamer --no-extra local
    • Certains extras comme local et gstreamer peuvent nécessiter des dépendances système
  • Les tests s’exécutent depuis la racine du dépôt avec uv run pytest, et un test spécifique avec uv run pytest tests/test_name.py

Contribution et aide

  • Les bugs doivent être signalés via une GitHub issue, et les idées de fonctionnalités commencent dans une discussion Discord
  • Les contributions au code suivent le guide CONTRIBUTING.md, et les améliorations de documentation peuvent être soumises via des PR sur Docs
  • Pour obtenir de l’aide, on peut passer par le Discord, la documentation ou X

1 commentaires

 
GN⁺ 2024-05-14
Avis sur Hacker News
  • Ravi de voir une implémentation open source arriver, et j’ai vu beaucoup de startups comme https://www.retellai.com/, https://fixie.ai/ se lancer sur ce créneau
    Au final, on a toujours besoin de modèles voix-à-voix, mais l’approche actuelle semble généralement être voix→texte→texte→voix, avec plusieurs agents, dont un pour l’écoute et un pour la parole
    Curieux de voir comment cela va s’articuler avec le récent lancement de gpt-4o

    • On pourrait aussi ajouter https://vapi.ai à la liste. Leurs outils sont assez bons
      J’essaie de continuer à suivre les différentes couches et les acteurs de ce domaine
    • Chez fixie.ai, ils travaillent sur un SLM, c’est-à-dire un modèle de langage vocal, et devraient bientôt publier quelque chose qu’on pourra tester
    • Je me demande comment fonctionnent les modèles voix-à-voix. Est-ce qu’ils utilisent simplement beaucoup plus de tokens pour capter les nuances de la parole ?
  • C’est excellent, mais côté open source, il faut vraiment aussi des modèles audio-à-audio comme ceux qu’on a vus dans la démo. Je me demande si quelqu’un connaît quelque chose de similaire
    Édition : quelqu’un en a trouvé un : https://news.ycombinator.com/item?id=40346992

    • La plupart des exemples Pipecat en cours de développement se concentrent sur le voix-à-voix. Les exemples montrent comment l’implémenter, et on peut aussi tester directement l’exemple de storytelling hébergé ici : https://storytelling-chatbot.fly.dev/
      Ce serait bien de mettre à jour les exemples du README pour que ce point apparaisse plus clairement
    • Les modèles audio-à-audio représentent clairement une étape supplémentaire, et globalement c’est sans doute vers cela qu’on se dirige
      Dans le contexte de l’IA vocale temps réel, quand la latence passe sous environ 800 ms, la réaction paraît naturelle pour la plupart des gens et des cas d’usage
      La page d’annonce de GPT-4o parle d’environ 320 ms en moyenne jusqu’au premier token à partir d’un prompt audio, donc c’est clairement l’étape suivante et c’est très intéressant. Atteindre 800 ms est actuellement difficile avec n’importe quel pipeline incluant GPT-4 Turbo, ce qui est donc très significatif
      Aujourd’hui, en assemblant en pipeline les modèles les plus rapides de transcription, d’inférence et de synthèse vocale, on peut viser environ 500 ms jusqu’au premier token. Par exemple : transcription Deepgram, Groq Llama-3 et voix Deepgram Aura
  • Siri est sorti en octobre 2011, Amazon Alexa en novembre 2014, et les enceintes vocales Google Assistant en mai 2016
    De ce que je vois, Siri reste encore aujourd’hui un désastre que personne n’a vraiment envie d’utiliser. Je n’ai pas assez utilisé Alexa pour en parler, mais sur les enceintes Google Home et les téléphones Android, je n’ai pas vu de vraie amélioration depuis des années. C’est même pire : je ne peux plus ajouter directement des éléments à AnyList[0] comme avant, seulement à Google Keep
    Même pour des exemples très simples que j’aurais cru résolus depuis longtemps, ils ne comprennent toujours pas des requêtes en deux étapes comme « répète plus fort ce que tu viens de dire » ou « éteins les lumières de la cuisine et de la salle à manger »
    Les assistants vocaux sont pourtant très utiles en voiture, au lit, en cuisinant ou quand on est occupé par autre chose, mais ils donnent l’impression d’avoir presque stagné depuis leur lancement. Personne n’a sans doute trouvé de modèle de monétisation convaincant
    Qu’est-ce qu’il faudrait pour obtenir un meilleur assistant vocal grand public ? Willow[1] n’a pas l’air d’avoir vraiment décollé non plus
    [0] https://help.anylist.com/articles/google-assistant-overview/
    [1] https://heywillow.io/
    Cela dit, j’ai peut-être un peu monopolisé le fil en vidant ce que j’avais en tête. Pipecat a vraiment l’air très cool, j’espère que ça marchera bien, et j’aimerais trouver le temps d’expérimenter avec ce week-end

    • J’utilise surtout Google Home, mais j’ai aussi des Echo Frames, donc j’utilise Alexa assez régulièrement. Mon usage principal, c’est la domotique, et dans ce scénario Alexa est bien plus réactive que Google Home
      Je suis d’accord pour dire que Google Home semble s’être dégradé sur plusieurs aspects. En tant que gros utilisateur d’AnyList, ce changement a été particulièrement frustrant
    • Siri est correcte pour certaines tâches. Par exemple : « envoie un SMS à x », « rappelle-moi de faire x quand j’arrive à la maison »
      Elle s’en sort assez bien même sans connexion Internet. La dictée est toutefois l’exception : c’est bien meilleur quand il y a une connexion
    • Les assistants vocaux ont besoin d’un saut qualitatif, et j’ai l’impression que cela aurait été impossible jusqu’à il y a environ 18 mois. Donc oui, le produit lui-même a stagné
      Cela dit, du point de vue d’Amazon, il n’est pas clair à quel niveau technologique, à un moment donné de l’année écoulée, ils auraient pu tracer une ligne et commencer à itérer produit dessus
    • J’utilise à la fois Siri et Alexa, mais à fonctions limitées égales, j’utilise davantage Alexa tout en la trouvant pire que Siri
      Cela dit, Alexa peut tout de même gérer deux actions à la fois, du genre « allume X et éteins Y » ou « allume X pendant Y secondes »
      J’ai l’impression qu’elle s’est dégradée avec le temps. J’ai vu passer des messages disant que de la poussière pouvait s’accumuler sur le micro et détériorer la capture vocale, donc j’ai essayé un souffleur à poussière, mais ça n’a rien réglé
      En écoutant dans l’application ce qu’Alexa avait réellement capté, aussi bien sur Echo que sur Echo Dot 4e génération, la qualité des micros est vraiment mauvaise. Le mois dernier, j’ai beaucoup testé Whisper sur des sources audio de basse qualité, et j’ai l’impression que ce type de modèle interpréterait ma voix bien mieux que ce qu’utilise Amazon
    • J’utilise Alexa, c’est-à-dire un Amazon Echo Show, pour les briefings d’actualité, la météo, la musique et les minuteurs
      Alexa est nulle et devient sans cesse plus bête. Elle ignore complètement les réglages et peut même réactiver des options que j’avais désactivées
      Elle ne répond souvent pas aux questions et demande à la place si je veux essayer d’autres nouvelles fonctions, et elle rajoute parfois au hasard des chaînes d’info que j’avais explicitement retirées de la liste Flash Briefing
      Je ne comprends pas comment ça peut rester aussi mauvais
  • Je viens aussi de créer https://feycher.com ; c’est similaire mais avec en plus le lip sync en temps réel. Si ça vous intéresse, on peut en discuter

  • Ils développent aussi bolna, une orchestration vocale open source : https://github.com/bolna-ai/bolna

  • LiveKit Agents, qu’OpenAI utilise pour le mode vocal, est aussi open source :
    https://github.com/livekit/agents

  • Tout ce qui touche à la détection d’activité vocale (VAD) est très intéressant, et j’aimerais particulièrement en apprendre davantage sur son fonctionnement quand il y a plusieurs locuteurs

  • Si on voulait utiliser ça pour faire de la traduction en temps réel d’appels téléphoniques, par où commencer ?

    • Daily prend désormais en charge les appels sortants et entrants : https://docs.daily.co/guides/products/dial-in-dial-out#main
      Autrement dit, on peut connecter le bot à l’appel puis lui demander de composer un numéro, et ça fonctionne effectivement comme ça
    • Je me demande pourquoi on voudrait traduire des appels téléphoniques en temps réel. Et il y a Whisper
  • Je me demande quel impact la voix temps réel du GPT-4o tout juste annoncé aura sur ce type de projets
    La démo de conversation multilingue avec traduction en temps réel était vraiment impressionnante

    • Il y a déjà dans Pipecat une démo de traduction utilisant GPT-4 Turbo, désormais un modèle antique et arthritique :-) https://github.com/pipecat-ai/pipecat/tree/main/examples/tra...
      Dès que l’entrée audio de GPT-4o sera disponible via l’API, ils prévoient d’ajouter la prise en charge de 4o dans Pipecat. Pour l’audio bidirectionnel en temps réel, il faudra sans doute un nouvel endpoint WebSocket ou WebRTC
    • Je me pose la même question
      Construire un pipeline qui relie un grand modèle de langage, de la synthèse vocale et des modèles de reconnaissance vocale avec une faible latence, c’est très bien, mais cela paraît clairement désavantagé face à des modèles multimodaux natifs comme GPT-4o
      L’avenir appartient aux modèles natifs pour la voix capables de comprendre les nuances de la parole et de l’intonation, et cet avenir n’est pas si lointain