2 điểm bởi GN⁺ 2024-05-14 | 1 bình luận | Chia sẻ qua WhatsApp
  • Pipecat là một framework Python mã nguồn mở để xây dựng các agent hội thoại thời gian thực bằng giọng nói và đa phương thức, hỗ trợ từ một agent giọng nói đơn lẻ đến các hệ thống trong đó nhiều agent chuyên biệt được điều phối bằng handoff, chạy song song và shared bus
  • Thiết kế cốt lõi gói nhận dạng giọng nói, chuyển văn bản thành giọng nói, xử lý hội thoại, dịch vụ AI và tầng truyền tải thành các pipeline có thể kết hợp, giúp nhà phát triển tập trung vào logic đặc thù của agent
  • Những gì có thể xây dựng bao gồm Voice Assistants, hệ thống multi-agent, AI companion, giao diện đa phương thức dựa trên giọng nói·video·hình ảnh, interactive storytelling, bot tiếp nhận·hỗ trợ khách hàng và cả các hệ thống hội thoại có cấu trúc
  • SDK client chính thức hỗ trợ JavaScript, React, React Native, Swift, Kotlin, C++, ESP32; còn các dịch vụ phía máy chủ có thể mở rộng sang STT, LLM, TTS, Speech-to-Speech, truyền tải WebRTC/WebSocket, video, memory, vision·image, xử lý âm thanh và công cụ phân tích
  • Có thể bắt đầu nhanh với pipecat init quickstart hoặc pipecat init; bản cài đặt mặc định được giữ gọn nhẹ, còn hỗ trợ dịch vụ AI bên thứ ba được cấu hình bằng cách thêm các extras cần thiết

Vai trò của Pipecat

  • Pipecat là một framework Python mã nguồn mở để xây dựng các agent hội thoại giọng nói thời gian thực và đa phương thức
  • Không chỉ có agent giọng nói đơn lẻ, nó còn có thể tạo các hệ thống multi-agent nơi các agent chuyên biệt thực hiện handoff, fan-out song song, chạy sidecar và điều phối dựa trên shared bus
  • Được thiết kế để điều phối cùng lúc audio, video, dịch vụ AI, tầng truyền tải và pipeline hội thoại, giúp tập trung vào việc triển khai hành vi đặc thù của agent
  • Để bắt đầu nhanh, có thể chạy pipecat init quickstart hoặc làm theo quickstart guide

Có thể xây dựng gì

  • Voice Assistants: trợ lý giọng nói có thể trò chuyện streaming tự nhiên với AI
  • Multi-Agent Systems: kiến trúc nơi các agent chuyên biệt handoff cho nhau, fan-out song song hoặc hoạt động như sidecar trên shared bus
  • AI Companions: huấn luyện viên, trợ lý họp, nhân vật
  • Multimodal Interfaces: giao diện xử lý giọng nói, video, hình ảnh, v.v.
  • Interactive Storytelling: công cụ sáng tạo dựa trên nội dung sinh thành
  • Business Agents: tiếp nhận khách hàng, bot hỗ trợ, luồng hướng dẫn
  • Complex Dialog Systems: hệ thống thiết kế logic bằng hội thoại có cấu trúc

Đặc điểm thiết kế

  • Cấu trúc voice-first tích hợp nhận dạng giọng nói, chuyển văn bản thành giọng nói và xử lý hội thoại
  • Cung cấp cấu trúc dạng plugin để kết nối nhiều dịch vụ và công cụ AI khác nhau
  • Hỗ trợ các pipeline có thể kết hợp để tạo hành vi phức tạp bằng các thành phần mô-đun
  • Mỗi pipeline được xem như một agent, có thể kết hợp bằng handoff, fan-out song song, worker sidecar và triển khai phân tán
  • Hướng đến tương tác thời gian thực độ trễ cực thấp qua các tầng truyền tải như WebSockets hoặc WebRTC

Hệ sinh thái và công cụ

  • SDK client chính thức được cung cấp để kết nối với Pipecat trên nhiều nền tảng
  • Pipecat Flows cho phép cấu hình các luồng hội thoại được định nghĩa sẵn hoặc động, bao gồm cả quản lý trạng thái, bên trong Pipecat
  • Voice UI Kit là bộ sưu tập component, hook và template để nhanh chóng tạo ứng dụng voice AI
  • Pipecat CLI được cung cấp cùng với pipecat-ai, cài đặt bằng uv tool install "pipecat-ai[cli]"
    • pipecat init dùng để bắt đầu dự án mới và thiết lập để các trợ lý code AI như Claude Code hoặc Codex có thể tạo dự án
    • Có thể scaffold một bot chạy được trong chưa đến 1 phút, sau đó dùng CLI để giám sát agent và triển khai production
  • Whisker là trình gỡ lỗi thời gian thực cho pipeline và processor của Pipecat
  • Tail là dashboard terminal dành cho Pipecat
  • Pipecat Skills hỗ trợ scaffold dự án, triển khai Pipecat Cloud, v.v. cùng với Claude Code
    • Lệnh cài đặt: claude plugin marketplace add pipecat-ai/skills

Phạm vi dịch vụ được hỗ trợ

  • Speech-to-Text hỗ trợ nhiều dịch vụ như AssemblyAI, AWS, Azure, Deepgram, Google, Groq Whisper, Mistral, NVIDIA, OpenAI Whisper, Whisper, xAI, v.v.
  • LLM bao gồm Anthropic, AWS, Azure, Cerebras, DeepSeek, Gemini, Grok, Groq, Mistral, NVIDIA NIM, Ollama, OpenAI, OpenAI Responses, OpenRouter, Perplexity, Qwen, Together AI, v.v.
  • Text-to-Speech kết nối với AWS, Azure, Cartesia, Deepgram, ElevenLabs, Google, Groq, Hume, Kokoro, Mistral, NVIDIA, OpenAI, Piper, Resemble, Rime, Together, XTTS, v.v.
  • Speech-to-Speech hỗ trợ AWS Nova Sonic, Gemini Multimodal Live, Grok Voice Agent, OpenAI Realtime, Ultravox
  • Tầng truyền tải bao gồm Daily WebRTC, FastAPI Websocket, LiveKit WebRTC, SmallWebRTCTransport, Vonage WebRTC, WebSocket Server, WhatsApp, Local
  • Ngoài ra còn hỗ trợ serializer như Twilio·Telnyx·Vonage, video như HeyGen·Tavus·Simli, memory mem0, vision·image dựa trên fal·Google Imagen·Moondream, xử lý âm thanh như Silero VAD·Krisp Viva·RNNoise và công cụ phân tích OpenTelemetry·Sentry
  • Có thể xem danh sách đầy đủ tại full services documentation

Cài đặt và bắt đầu

  • Có thể chạy Pipecat trên máy cục bộ trước, rồi khi sẵn sàng thì chuyển process của agent lên cloud
  • Trước khi bắt đầu cần cài uv
curl -LsSf https://astral.sh/uv/install.sh | sh
  • Cách bắt đầu nhanh bằng CLI là cài Pipecat CLI rồi scaffold tương tác một bot phone hoặc web/mobile mới
uv tool install "pipecat-ai[cli]"
pipecat init
  • Cài đặt thủ công có thể dùng uv inituv add pipecat-ai trong dự án mới, hoặc thêm uv add pipecat-ai vào dự án hiện có
uv init my-pipecat-app
cd my-pipecat-app
uv add pipecat-ai
uv add pipecat-ai
  • Thiết lập file môi trường bằng cp env.example .env
  • Gói mặc định chỉ gồm core framework; nếu cần dịch vụ AI bên thứ ba thì thêm extras
uv add "pipecat-ai[option,...]"
  • Người dùng pip có thể cài bằng pip install pipecat-aipip install "pipecat-ai[option,...]"

Ví dụ và phát triển

  • Focused examples là các ví dụ agent nhỏ minh họa 1–2 dịch vụ hoặc khái niệm cụ thể
  • Example apps là các ứng dụng hoàn chỉnh có thể dùng làm điểm khởi đầu phát triển
  • Để phát triển Pipecat cần tối thiểu Python 3.11, và phiên bản được khuyến nghị là Python 3.12 trở lên
  • Môi trường phát triển của repository được thiết lập bằng uv sync --group dev --all-extras --no-extra gstreamer --no-extra local
    • Một số extras như local, gstreamer có thể cần phụ thuộc hệ thống
  • Chạy kiểm thử từ thư mục gốc của repository bằng uv run pytest, còn kiểm thử cụ thể dùng uv run pytest tests/test_name.py

Đóng góp và trợ giúp

  • Lỗi được báo qua GitHub issue, còn ý tưởng tính năng nên bắt đầu trong Discord discussion
  • Đóng góp mã nguồn theo hướng dẫn CONTRIBUTING.md, còn cải thiện tài liệu có thể gửi PR vào Docs
  • Các kênh hỗ trợ gồm Discord, docs, X

1 bình luận

 
GN⁺ 2024-05-14
Ý kiến trên Hacker News
  • Rất vui khi thấy có bản triển khai mã nguồn mở, và tôi đã thấy nhiều startup như https://www.retellai.com/, https://fixie.ai/ tham gia vào lĩnh vực này
    Cuối cùng thì lúc nào cũng cần mô hình giọng nói-giọng nói, còn cách tiếp cận hiện nay thường có vẻ là giọng nói→văn bản→văn bản→giọng nói, với nhiều agent đảm nhiệm 1 phần nghe + 1 phần nói
    Rất mong xem nó sẽ kết hợp thế nào với gpt-4o vừa được công bố gần đây

    • Cũng đáng thêm https://vapi.ai vào danh sách. Các công cụ của họ khá tốt
      Tôi đang cố tiếp tục theo dõi nhiều tầng và các bên tham gia trong lĩnh vực này
    • Ở fixie.ai, họ đang làm SLM, tức mô hình ngôn ngữ giọng nói, và sắp công bố thứ có thể dùng thử
    • Tôi tò mò mô hình giọng nói-giọng nói hoạt động như thế nào. Có phải là dùng nhiều token hơn hẳn để nắm bắt sắc thái trong lời nói không?
  • Tuyệt vời, nhưng phía mã nguồn mở cũng thật sự cần một mô hình audio-audio như đã thấy trong demo. Không biết có ai biết thứ gì tương tự không
    Sửa: có người đã tìm thấy một cái: https://news.ycombinator.com/item?id=40346992

    • Hầu hết các ví dụ Pipecat mà chúng tôi đang làm hiện tập trung vào giọng nói-giọng nói. Các ví dụ hướng dẫn cách triển khai, và bạn cũng có thể thử ngay ví dụ kể chuyện được host sẵn tại: https://storytelling-chatbot.fly.dev/
      Có lẽ nên cập nhật các ví dụ trong README để thể hiện điểm này rõ hơn
    • Mô hình audio-audio chắc chắn là một bước tiến, và nhìn chung có vẻ mọi thứ sẽ đi theo hướng đó
      Trong bối cảnh AI giọng nói thời gian thực, khi độ trễ xuống khoảng dưới 800ms thì với đa số người và trường hợp sử dụng, phản hồi bắt đầu có cảm giác tự nhiên
      Trang công bố GPT-4o nói thời gian trung bình từ prompt audio đến token đầu tiên là khoảng 320ms, và đây chắc chắn là cấp độ tiếp theo nên rất thú vị. Với bất kỳ pipeline nào có GPT-4 Turbo hiện nay, rất khó đạt 800ms, nên điều này rất có ý nghĩa
      Nếu ghép các mô hình chuyển lời nói thành văn bản, suy luận và tổng hợp giọng nói nhanh nhất hiện nay thành một pipeline thì có thể đạt khoảng 500ms đến token đầu tiên. Ví dụ là kết hợp chuyển lời nói thành văn bản của Deepgram, Groq Llama-3 và giọng nói Deepgram Aura
  • Siri ra mắt tháng 10/2011, Amazon Alexa tháng 11/2014, còn loa giọng nói Google Assistant tháng 5/2016
    Theo tôi thấy, Siri đến giờ vẫn là một mớ hỗn độn mà chẳng ai muốn dùng; Alexa thì tôi chưa trực tiếp dùng nên khó nói, nhưng trên loa Google Home và điện thoại Android, tôi không thấy cải thiện lớn nào trong nhiều năm. Thậm chí còn tệ đi: không còn có thể thêm trực tiếp mục vào AnyList[0] như trước nữa, chỉ dùng được Google Keep
    Ngay cả những ví dụ rất đơn giản mà từ lâu tôi tưởng sẽ làm được, như “lặp lại to hơn điều vừa nói” hay yêu cầu hai bước kiểu “tắt đèn bếp và phòng ăn”, nó vẫn chưa diễn giải được
    Trợ lý giọng nói khá hữu ích khi đang lái xe, nằm trên giường, nấu ăn, hoặc bận việc khác, nhưng có cảm giác gần như chững lại từ sau giai đoạn đầu ra mắt. Có lẽ chưa ai tìm được cách kiếm tiền từ nó
    Cần gì để có trợ lý giọng nói tốt hơn cho người tiêu dùng? Willow[1] có vẻ cũng chưa thật sự bùng lên
    [0] https://help.anylist.com/articles/google-assistant-overview/
    [1] https://heywillow.io/
    Nói thêm, có vẻ tôi đã hơi chiếm luồng thảo luận vì tuôn ra những gì dạo này đang nghĩ trong đầu. Pipecat trông thật sự rất hay và tôi hy vọng dự án thành công; mong là cuối tuần có thời gian thử nghiệm

    • Tôi chủ yếu dùng Google Home, nhưng cũng có Echo Frames nên cũng dùng Alexa khá đều đặn. Mục đích chính là tự động hóa nhà thông minh, và trong kịch bản này Alexa phản hồi tốt hơn Google Home rất nhiều
      Tôi đồng ý rằng Google Home có vẻ đã tệ đi ở nhiều mặt. Với tư cách người dùng AnyList khá thường xuyên, thay đổi đó đặc biệt gây bực bội
    • Siri cũng ổn trong một số tác vụ. Ví dụ như “nhắn tin cho x”, “nhắc tôi làm x khi về đến nhà”
      Nó làm khá tốt ngay cả khi không có kết nối Internet. Tuy nhiên đọc chính tả là ngoại lệ, có Internet thì tốt hơn nhiều
    • Trợ lý giọng nói cần vượt qua một bước nhảy vọt về chất, và tôi có cảm giác điều đó trước 18 tháng qua thì không thể làm được. Vì vậy sản phẩm tự nó bị chững lại cũng đúng
      Nhưng nếu đứng từ phía Amazon, không rõ họ sẽ vạch một mốc ở trình độ công nghệ vào thời điểm nào trong năm qua rồi bắt đầu lặp lại phát triển sản phẩm dựa trên đó
    • Tôi dùng cả Siri lẫn Alexa, nhưng nếu xét trong phạm vi các tính năng hạn chế mà tôi dùng, dù dùng Alexa nhiều hơn, tôi vẫn cho rằng Alexa tệ hơn Siri
      Dù vậy Alexa có thể xử lý đồng thời hai việc kiểu “bật X và tắt Y”, “bật X trong Y giây”
      Tôi cảm thấy nó tệ đi theo thời gian, và sau khi đọc bài nói rằng bụi bám trên micro có thể làm khả năng thu giọng nói kém đi, tôi đã thử dùng dụng cụ thổi bụi nhưng không giải quyết được
      Nghe lại giọng nói Alexa thực sự thu được trong app thì cả Echo lẫn Echo Dot thế hệ 4 đều có chất lượng micro thật sự tệ. Tháng trước tôi đã thử khá nhiều Whisper với âm thanh chất lượng thấp, và tôi nghĩ những mô hình như vậy sẽ hiểu giọng tôi tốt hơn hẳn thứ Amazon đang dùng
    • Tôi dùng Alexa, tức Amazon Echo Show, với các mục đích như nghe bản tin, xem thời tiết, phát nhạc và đặt hẹn giờ
      Alexa là một mớ hỗn độn và ngày càng ngu hơn. Nó hoàn toàn phớt lờ cài đặt, thậm chí bật lại những cài đặt đã tắt
      Nó thường không trả lời câu hỏi mà lại hỏi tôi có muốn thử tính năng mới khác không, và còn tự ý thêm lại các kênh tin tức mà tôi đã rõ ràng xóa khỏi danh sách Flash Briefing
      Tôi vẫn không hiểu sao nó có thể tiếp tục tệ đến mức này
  • Tôi cũng vừa làm https://feycher.com, tương tự nhưng cũng hỗ trợ lip sync thời gian thực. Nếu quan tâm thì có thể trao đổi thêm

  • Cũng đang phát triển bolna, một dự án điều phối giọng nói mã nguồn mở: https://github.com/bolna-ai/bolna

  • LiveKit Agents, thứ OpenAI dùng trong chế độ giọng nói, cũng là mã nguồn mở:
    https://github.com/livekit/agents

  • Toàn bộ mảng phát hiện hoạt động giọng nói (VAD) rất thú vị, và đặc biệt muốn tìm hiểu thêm nó hoạt động thế nào khi có nhiều người nói

  • Nếu muốn dùng thứ này để dịch cuộc gọi điện thoại theo thời gian thực thì nên bắt đầu thế nào?

    • Daily hiện đã hỗ trợ cả gọi đi và nhận cuộc gọi: https://docs.daily.co/guides/products/dial-in-dial-out#main
      Tức là có thể kết nối bot vào cuộc gọi rồi yêu cầu nó gọi đến một số điện thoại, và thực tế nó hoạt động như vậy
    • Tò mò vì sao lại muốn dịch cuộc gọi điện thoại theo thời gian thực. Và còn có Whisper
  • Tò mò giọng nói thời gian thực của GPT-4o vừa được công bố sẽ ảnh hưởng thế nào đến các dự án như thế này
    Demo hội thoại dịch đa ngôn ngữ thời gian thực thật sự rất ấn tượng

    • Pipecat có demo dịch dùng GPT-4 Turbo, giờ đã thành một mô hình cổ lỗ bị viêm khớp :-) https://github.com/pipecat-ai/pipecat/tree/main/examples/tra...
      Ngay khi đầu vào âm thanh của GPT-4o được cung cấp qua API, sẽ thêm hỗ trợ 4o vào Pipecat. Âm thanh thời gian thực hai chiều có lẽ sẽ cần endpoint WebSocket hoặc WebRTC mới
    • Cũng có cùng thắc mắc
      Việc xây dựng pipeline nối mô hình ngôn ngữ lớn với mô hình tổng hợp giọng nói và nhận dạng giọng nói ở độ trễ thấp cũng ổn, nhưng so với mô hình đa phương thức native như GPT-4o thì rõ ràng trông yếu thế hơn
      Tương lai là các mô hình native về giọng nói có thể hiểu được sắc thái của giọng và cách nói, và tương lai đó cũng không còn xa lắm