2 คะแนน โดย GN⁺ 2024-05-14 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Pipecat เป็นเฟรมเวิร์ก Python แบบโอเพนซอร์สสำหรับสร้างเอเจนต์สนทนาแบบเสียงเรียลไทม์และมัลติโมดัล รองรับตั้งแต่เอเจนต์เสียงเดี่ยวไปจนถึงระบบที่มีเอเจนต์ผู้เชี่ยวชาญหลายตัวประสานงานกันผ่านการ handoff, การรันแบบขนาน และบัสร่วม
  • แนวคิดหลักในการออกแบบคือการรวมการรู้จำเสียง, การแปลงข้อความเป็นเสียง, การประมวลผลบทสนทนา, บริการ AI และเลเยอร์การส่งข้อมูลให้เป็น pipeline ที่ประกอบกันได้ เพื่อให้นักพัฒนาโฟกัสกับลอจิกเฉพาะของเอเจนต์
  • สิ่งที่สร้างได้ครอบคลุมถึง Voice Assistants, ระบบ multi-agent, AI companion, อินเทอร์เฟซมัลติโมดัลที่ใช้เสียง·วิดีโอ·รูปภาพ, interactive storytelling, บอตรับเรื่อง·ซัพพอร์ตลูกค้า และระบบบทสนทนาแบบมีโครงสร้าง
  • SDK ไคลเอนต์อย่างเป็นทางการรองรับ JavaScript, React, React Native, Swift, Kotlin, C++, ESP32 ส่วนบริการฝั่งเซิร์ฟเวอร์ขยายได้ด้วย STT, LLM, TTS, Speech-to-Speech, การส่งข้อมูลผ่าน WebRTC/WebSocket, วิดีโอ, หน่วยความจำ, วิชัน·รูปภาพ, การประมวลผลเสียง และเครื่องมือวิเคราะห์
  • เริ่มต้นอย่างรวดเร็วได้ด้วย pipecat init quickstart หรือ pipecat init โดยการติดตั้งพื้นฐานถูกทำให้เบา และการรองรับบริการ AI จากบุคคลที่สามจะจัดการด้วยการเพิ่ม extras ที่จำเป็น

บทบาทของ Pipecat

  • Pipecat เป็นเฟรมเวิร์ก Python แบบโอเพนซอร์สสำหรับสร้างเอเจนต์สนทนาแบบ เสียงเรียลไทม์ และมัลติโมดัล
  • นอกจากเอเจนต์เสียงเดี่ยวแล้ว ยังสามารถสร้างระบบ multi-agent ที่เอเจนต์ผู้เชี่ยวชาญทำ handoff ระหว่างกัน, fan-out แบบขนาน, รันแบบ sidecar และประสานงานบนบัสร่วมได้
  • ออกแบบมาเพื่อ orchestrate เสียง, วิดีโอ, บริการ AI, เลเยอร์การส่งข้อมูล และ pipeline บทสนทนาเข้าด้วยกัน เพื่อให้โฟกัสกับการ implement พฤติกรรมเฉพาะของเอเจนต์
  • หากต้องการเริ่มต้นอย่างรวดเร็ว ให้รัน pipecat init quickstart หรือทำตาม quickstart guide

สิ่งที่สร้างได้

  • Voice Assistants: ผู้ช่วยเสียงที่สนทนาแบบสตรีมมิงกับ AI ได้อย่างเป็นธรรมชาติ
  • Multi-Agent Systems: โครงสร้างที่เอเจนต์ผู้เชี่ยวชาญ handoff กัน, fan-out แบบขนาน หรือทำงานเป็น sidecar บนบัสร่วม
  • AI Companions: โค้ช, ผู้ช่วยประชุม, ตัวละคร
  • Multimodal Interfaces: อินเทอร์เฟซที่จัดการเสียง, วิดีโอ, รูปภาพ ฯลฯ
  • Interactive Storytelling: เครื่องมือสร้างสรรค์บนฐานสื่อที่สร้างด้วย AI
  • Business Agents: การรับเรื่องลูกค้า, บอตซัพพอร์ต, flow แบบนำทาง
  • Complex Dialog Systems: ระบบที่ออกแบบลอจิกด้วยบทสนทนาแบบมีโครงสร้าง

ลักษณะการออกแบบ

  • รวมการรู้จำเสียง, การแปลงข้อความเป็นเสียง และการประมวลผลบทสนทนาไว้ในโครงสร้างแบบ voice-first
  • มีโครงสร้างแบบ pluggable สำหรับเชื่อมต่อบริการและเครื่องมือ AI หลากหลาย
  • รองรับ pipeline ที่ประกอบกันได้ เพื่อสร้างพฤติกรรมซับซ้อนด้วยคอมโพเนนต์แบบโมดูลาร์
  • มองแต่ละ pipeline เป็นเอเจนต์ และสามารถประกอบกันได้ด้วย handoff, fan-out แบบขนาน, sidecar worker และการ deploy แบบกระจาย
  • มุ่งเป้าไปที่การโต้ตอบเรียลไทม์แบบ latency ต่ำมาก ผ่านเลเยอร์การส่งข้อมูลอย่าง WebSockets หรือ WebRTC

อีโคซิสเต็มและเครื่องมือ

  • SDK ไคลเอนต์อย่างเป็นทางการมีให้สำหรับเชื่อมต่อกับ Pipecat บนหลายแพลตฟอร์ม
  • Pipecat Flows ช่วยให้กำหนดเส้นทางบทสนทนาที่นิยามไว้ล่วงหน้าหรือแบบไดนามิก พร้อมการจัดการสถานะ ภายใน Pipecat ได้
    • ดูตัวอย่างการทำงานได้ที่ flows examples
  • Voice UI Kit เป็นชุดคอมโพเนนต์, hook และเทมเพลตสำหรับสร้างแอปพลิเคชัน voice AI ได้อย่างรวดเร็ว
  • Pipecat CLI มาพร้อมกับ pipecat-ai และติดตั้งด้วย uv tool install "pipecat-ai[cli]"
    • pipecat init ใช้เริ่มโปรเจกต์ใหม่ และตั้งค่าให้ AI coding assistant อย่าง Claude Code หรือ Codex สร้างโปรเจกต์ได้
    • สามารถ scaffold บอตที่รันได้ภายใน 1 นาที และหลังจากนั้นใช้ CLI เพื่อตรวจสอบเอเจนต์และ deploy ไป production ได้
  • Whisker เป็นดีบักเกอร์แบบเรียลไทม์สำหรับ pipeline และ processor ของ Pipecat
  • Tail เป็นเทอร์มินัลแดชบอร์ดสำหรับ Pipecat
  • Pipecat Skills รองรับการ scaffold โปรเจกต์, deploy ไป Pipecat Cloud ฯลฯ ร่วมกับ Claude Code
    • คำสั่งติดตั้ง: claude plugin marketplace add pipecat-ai/skills

ขอบเขตบริการที่รองรับ

  • Speech-to-Text รองรับบริการหลากหลาย เช่น AssemblyAI, AWS, Azure, Deepgram, Google, Groq Whisper, Mistral, NVIDIA, OpenAI Whisper, Whisper, xAI
  • LLM ครอบคลุม Anthropic, AWS, Azure, Cerebras, DeepSeek, Gemini, Grok, Groq, Mistral, NVIDIA NIM, Ollama, OpenAI, OpenAI Responses, OpenRouter, Perplexity, Qwen, Together AI เป็นต้น
  • Text-to-Speech เชื่อมต่อกับ AWS, Azure, Cartesia, Deepgram, ElevenLabs, Google, Groq, Hume, Kokoro, Mistral, NVIDIA, OpenAI, Piper, Resemble, Rime, Together, XTTS เป็นต้น
  • Speech-to-Speech รองรับ AWS Nova Sonic, Gemini Multimodal Live, Grok Voice Agent, OpenAI Realtime, Ultravox
  • เลเยอร์การส่งข้อมูลครอบคลุม Daily WebRTC, FastAPI Websocket, LiveKit WebRTC, SmallWebRTCTransport, Vonage WebRTC, WebSocket Server, WhatsApp, Local
  • นอกจากนี้ยังรองรับ serializer เช่น Twilio·Telnyx·Vonage, วิดีโอ เช่น HeyGen·Tavus·Simli, หน่วยความจำ mem0, วิชัน·รูปภาพบนฐาน fal·Google Imagen·Moondream, การประมวลผลเสียง เช่น Silero VAD·Krisp Viva·RNNoise และเครื่องมือวิเคราะห์ OpenTelemetry·Sentry
  • ดูรายการทั้งหมดได้ใน full services documentation

การติดตั้งและเริ่มต้น

  • สามารถรัน Pipecat บนเครื่อง local ก่อน แล้วเมื่อพร้อมจึงย้ายโปรเซสเอเจนต์ขึ้นคลาวด์ได้
  • ก่อนเริ่มต้องติดตั้ง uv
curl -LsSf https://astral.sh/uv/install.sh | sh
  • การเริ่มต้นอย่างรวดเร็วผ่าน CLI ทำได้โดยติดตั้ง Pipecat CLI แล้ว scaffold บอต phone หรือ web/mobile ใหม่แบบโต้ตอบ
uv tool install "pipecat-ai[cli]"
pipecat init
  • การติดตั้งด้วยตนเองให้ใช้ uv init และ uv add pipecat-ai ในโปรเจกต์ใหม่ หรือเพิ่ม uv add pipecat-ai ในโปรเจกต์ที่มีอยู่
uv init my-pipecat-app
cd my-pipecat-app
uv add pipecat-ai
uv add pipecat-ai
  • ตั้งค่าไฟล์ environment ด้วย cp env.example .env
  • แพ็กเกจพื้นฐานมีเฉพาะ core framework เท่านั้น หากต้องการบริการ AI จากบุคคลที่สามให้เพิ่ม extras
uv add "pipecat-ai[option,...]"
  • ผู้ใช้ pip สามารถติดตั้งด้วย pip install pipecat-ai และ pip install "pipecat-ai[option,...]"

ตัวอย่างและการพัฒนา

  • Focused examples เป็นตัวอย่างเอเจนต์ขนาดเล็กที่แสดงบริการหรือแนวคิดเฉพาะ 1–2 อย่าง
  • Example apps เป็นแอปพลิเคชันสมบูรณ์ที่ใช้เป็นจุดเริ่มต้นในการพัฒนาได้
  • การพัฒนา Pipecat ต้องใช้ Python อย่างน้อย 3.11 และแนะนำ Python 3.12 ขึ้นไป
  • ตั้งค่าสภาพแวดล้อมพัฒนาของ repository ด้วย uv sync --group dev --all-extras --no-extra gstreamer --no-extra local
    • extras บางตัว เช่น local, gstreamer อาจต้องพึ่งพา dependency ของระบบ
  • รันทดสอบจาก root ของ repository ด้วย uv run pytest และรันทดสอบเฉพาะรายการด้วย uv run pytest tests/test_name.py

การมีส่วนร่วมและความช่วยเหลือ

  • หากพบ bug ให้เปิดเป็น GitHub issue และไอเดียฟีเจอร์ให้เริ่มจาก Discord discussion
  • การ contribute โค้ดให้ทำตามคู่มือ CONTRIBUTING.md ส่วนการปรับปรุงเอกสารรับผ่าน PR ที่ Docs
  • ช่องทางขอความช่วยเหลือ ได้แก่ Discord, docs, X

1 ความคิดเห็น

 
GN⁺ 2024-05-14
ความคิดเห็นจาก Hacker News
  • ดีใจที่มี implementation แบบโอเพนซอร์สออกมา และก็เห็นสตาร์ตอัปอย่าง https://www.retellai.com/, https://fixie.ai/ เข้ามาในพื้นที่นี้กันเยอะ
    ท้ายที่สุดก็มักจะต้องการ โมเดลเสียง-ต่อ-เสียง อยู่ดี แต่แนวทางในตอนนี้โดยทั่วไปดูเหมือนเป็นเสียง→ข้อความ→ข้อความ→เสียง โดยมีเอเจนต์หลายตัวแบ่งหน้าที่เป็นตัวฟัง 1 ตัว + ตัวพูด 1 ตัว
    น่าตื่นเต้นว่าจะเชื่อมโยงกับ gpt-4o ที่เพิ่งประกาศอย่างไร

    • น่าจะเพิ่ม https://vapi.ai เข้าไปในลิสต์ด้วย เครื่องมือค่อนข้างดี
      กำลังพยายามตามดูเลเยอร์ต่าง ๆ และผู้เล่นในวงการนี้ต่อไปเรื่อย ๆ
    • ทาง fixie.ai กำลังทำ SLM หรือ speech language model อยู่ และน่าจะปล่อยอะไรให้ลองเล่นได้เร็ว ๆ นี้
    • สงสัยว่า โมเดลเสียง-ต่อ-เสียง ทำงานอย่างไร เป็นแนวที่ใช้โทเคนมากขึ้นมากเพื่อจับนัยเสียงในการพูดหรือเปล่า?
  • ยอดเยี่ยม แต่ฝั่งโอเพนซอร์สเองก็ต้องการ โมเดลออดิโอ-ต่อ-ออดิโอ แบบที่เห็นในเดโมจริง ๆ อยากรู้ว่ามีใครรู้จักอะไรคล้าย ๆ กันไหม
    แก้ไข: มีคนหาเจออันหนึ่งแล้ว: https://news.ycombinator.com/item?id=40346992

    • ตอนนี้ตัวอย่างของ Pipecat ที่กำลังทำอยู่ส่วนใหญ่โฟกัสที่ เสียง-ต่อ-เสียง อยู่แล้ว ตัวอย่างต่าง ๆ จะพาไปดูวิธีทำ และยังมีตัวอย่าง storytelling แบบโฮสต์ไว้ให้ลองได้ทันทีด้วย: https://storytelling-chatbot.fly.dev/
      น่าจะอัปเดตตัวอย่างใน README ให้สื่อจุดนี้ได้ชัดขึ้น
    • โมเดลออดิโอ-ต่อ-ออดิโอ เป็นก้าวถัดไปอย่างชัดเจน และโดยรวมแล้วก็น่าจะไปในทิศทางนั้น
      ในบริบทของ AI เสียงแบบเรียลไทม์ ถ้าลด latency ลงไปต่ำกว่าประมาณ 800ms ได้ ก็จะให้ความรู้สึกว่าตอบสนองอย่างเป็นธรรมชาติสำหรับคนส่วนใหญ่และ use case ส่วนมาก
      หน้าเปิดตัว GPT-4o บอกว่าเวลาจาก audio prompt ไปถึง first token เฉลี่ยอยู่ราว 320ms ซึ่งถือเป็นอีกขั้นอย่างชัดเจนและน่าสนใจมาก ตอนนี้ไม่ค่อยมี pipeline ไหนที่รวม GPT-4 Turbo แล้วจะไปถึง 800ms ได้ จึงมีความหมายมาก
      ตอนนี้ถ้าเอาโมเดลถอดเสียง, อนุมาน, และสังเคราะห์เสียงที่เร็วที่สุดมาร้อยเป็น pipeline ก็พอทำเวลาถึง first token ได้ราว 500ms ตัวอย่างเช่นการจับคู่ Deepgram transcription, Groq Llama-3 และเสียง Deepgram Aura
  • Siri ออกมาในเดือนตุลาคม 2011, Amazon Alexa ในเดือนพฤศจิกายน 2014, และลำโพง Google Assistant ในเดือนพฤษภาคม 2016
    เท่าที่เห็น Siri ก็ยังเละจนไม่มีใครอยากใช้ ส่วน Alexa ผมไม่เคยใช้เองเลยพูดยาก แต่บนลำโพง Google Home และมือถือ Android ผมไม่เห็นการพัฒนาครั้งใหญ่เลยมาหลายปีแล้ว กลับกันยังแย่ลงด้วยซ้ำ เพราะเมื่อก่อนเพิ่มรายการลง AnyList[0] ได้ตรง ๆ แต่ตอนนี้ทำได้แค่ Google Keep
    แม้แต่ตัวอย่างง่ายมากที่คิดว่าน่าจะทำได้ตั้งนานแล้ว อย่าง “ช่วยพูดเมื่อกี้ซ้ำอีกครั้งแต่ดังขึ้น” หรือ คำขอสองขั้นตอน อย่าง “ปิดไฟห้องครัวกับห้องอาหาร” ก็ยังตีความไม่ได้
    ผู้ช่วยเสียงมีประโยชน์มากเวลาอยู่ระหว่างขับรถ นอนอยู่บนเตียง ทำอาหาร หรือกำลังยุ่งกับอย่างอื่น แต่กลับรู้สึกว่าแทบหยุดนิ่งตั้งแต่ช่วงเปิดตัวแรก ๆ คงเป็นเพราะไม่มีใครหาวิธีทำเงินกับมันได้จริง
    ถ้าอยากได้ผู้ช่วยเสียงสำหรับผู้บริโภคที่ดีกว่านี้ ต้องมีอะไรเพิ่ม? Willow[1] เองก็ดูจะไม่ดังมาก
    [0] https://help.anylist.com/articles/google-assistant-overview/
    [1] https://heywillow.io/
    เพิ่มเติมคือ เหมือนผมจะยึดเธรดไปเพราะระบายสิ่งที่คิดค้างอยู่ในหัวช่วงนี้ Pipecat ดูเจ๋งมากจริง ๆ และหวังว่าจะไปได้ดี ถ้าสุดสัปดาห์นี้มีเวลาอยากลองเล่นดู

    • ผมใช้ Google Home เป็นหลัก แต่ก็มี Echo Frames เลยใช้ Alexa ค่อนข้างสม่ำเสมอเหมือนกัน
      การใช้งานหลักคือ โฮมอัตโนมัติ และในสถานการณ์นี้ Alexa ตอบสนองได้ดีกว่า Google Home มาก
      เห็นด้วยว่า Google Home ดูแย่ลงในหลายด้าน และสำหรับคนที่ใช้ AnyList เยอะ การเปลี่ยนแปลงนั้นน่าหงุดหงิดเป็นพิเศษ
    • สำหรับบางงาน Siri ก็โอเค เช่น “ส่งข้อความหา x”, “เตือนฉันให้ทำ x ตอนถึงบ้าน” อะไรทำนองนี้
      มันทำได้ค่อนข้างดีแม้ไม่มีอินเทอร์เน็ต ยกเว้นการพิมพ์ตามเสียง ซึ่งถ้ามีเน็ตจะดีกว่ามาก
    • ผู้ช่วยเสียงยังต้องมี การก้าวกระโดดเชิงคุณภาพ อีกครั้งหนึ่ง และความรู้สึกคือก่อนหน้า 18 เดือนที่ผ่านมา สิ่งนั้นคงยังเป็นไปไม่ได้จริง ๆ ดังนั้นการที่ตัวผลิตภัณฑ์นิ่งอยู่กับที่ก็สมเหตุสมผล
      แต่ถ้ามองจากฝั่ง Amazon ก็ยังไม่ชัดว่าควรขีดเส้นที่ระดับเทคโนโลยีของช่วงไหนในรอบปีที่ผ่านมา แล้วเริ่มพัฒนาผลิตภัณฑ์ต่อยอดจากตรงนั้น
    • ผมใช้ทั้ง Siri และ Alexa แต่ถ้าวัดจากการใช้งานฟีเจอร์แบบจำกัด ผมใช้ Alexa มากกว่าและก็ยังคิดว่า Alexa แย่กว่า Siri
      ถึงอย่างนั้น Alexa ก็ยังทำสองอย่างพร้อมกันได้ เช่น “เปิด X และปิด Y” หรือ “เปิด X เป็นเวลา Y วินาที”
      ผมรู้สึกว่ามันแย่ลงเรื่อย ๆ ตามเวลา และหลังจากเห็นโพสต์ว่าฝุ่นอาจสะสมที่ไมโครโฟนจนการจับเสียงแย่ลง ผมก็ลองใช้ที่เป่าฝุ่นแล้วแต่ก็ไม่ช่วย
      พอไปฟังเสียงที่ Alexa จับได้จริงในแอป พบว่าทั้ง Echo และ Echo Dot รุ่นที่ 4 คุณภาพไมโครโฟน แย่มาก เดือนที่แล้วผมลองทดสอบ Whisper กับเสียงคุณภาพต่ำเยอะมาก และคิดว่าโมเดลแนวนั้นน่าจะตีความเสียงของผมได้ดีกว่าที่ Amazon ใช้อยู่มาก
    • ผมใช้ Alexa หรือก็คือ Amazon Echo Show โดยใช้สำหรับสรุปข่าว เช็กอากาศ เปิดเพลง และตั้งเวลาเป็นหลัก
      Alexa แย่มากและยิ่งโง่ลงเรื่อย ๆ มันมักเพิกเฉยต่อการตั้งค่าโดยสิ้นเชิง ถึงขั้นเปิดการตั้งค่าที่ปิดไว้กลับขึ้นมาเอง
      มันชอบไม่ตอบคำถาม แล้วหันไปถามว่าอยากลองฟีเจอร์ใหม่อื่นไหม และยังสุ่มเพิ่มช่องข่าวที่ผมลบออกจากรายการ Flash Briefing อย่างชัดเจนแล้วกลับเข้ามาอีกด้วย
      ผมไม่เข้าใจจริง ๆ ว่าทำไมมันถึงยังแย่ได้ขนาดนี้
  • https://feycher.com ผมก็เพิ่งทำขึ้นมาเช่นกัน คล้ายกันแต่รองรับ ลิปซิงก์แบบเรียลไทม์ ด้วย ถ้าสนใจก็คุยกันได้

  • กำลังทำ bolna ซึ่งเป็น โอเพนซอร์สสำหรับออร์เคสเตรตเสียง อยู่ด้วย: https://github.com/bolna-ai/bolna

  • LiveKit Agents ที่ OpenAI ใช้ในโหมดเสียงก็เป็นโอเพนซอร์สเช่นกัน:
    https://github.com/livekit/agents

  • เรื่อง การตรวจจับกิจกรรมเสียงพูด (VAD) โดยรวมน่าสนใจมาก และอยากเรียนรู้เพิ่มเติมเป็นพิเศษว่ามันทำงานอย่างไรเมื่อมีผู้พูดหลายคน

  • ถ้าจะใช้สิ่งนี้ทำ การแปลแบบเรียลไทม์ในการโทรศัพท์ ควรเริ่มอย่างไร?

    • ตอนนี้ Daily รองรับทั้งสายโทรออกและสายรับเข้าแล้ว: https://docs.daily.co/guides/products/dial-in-dial-out#main
      กล่าวคือสามารถต่อบอตเข้ากับสาย แล้วสั่งให้โทรออกไปยังหมายเลขโทรศัพท์ได้ และมันใช้งานได้จริง
    • สงสัยว่าทำไมถึงอยากแปลการโทรศัพท์แบบเรียลไทม์ และก็มี Whisper อยู่
  • สงสัยว่าเสียงแบบเรียลไทม์ของ GPT-4o ที่เพิ่งประกาศจะส่งผลต่อโปรเจ็กต์พวกนี้อย่างไร
    เดโมบทสนทนาแปลหลายภาษาแบบเรียลไทม์นั้นน่าทึ่งจริง ๆ

    • ใน Pipecat มีเดโมการแปลที่ใช้ GPT-4 Turbo ซึ่งตอนนี้กลายเป็นโมเดลรุ่นเก่าคร่ำครึข้ออักเสบไปแล้ว :-) https://github.com/pipecat-ai/pipecat/tree/main/examples/tra...
      ทันทีที่ GPT-4o audio input เปิดให้ใช้ผ่าน API ก็มีแผนจะเพิ่มการรองรับ 4o ใน Pipecat น่าจะต้องมี WebSocket หรือ WebRTC endpoint ใหม่สำหรับออดิโอเรียลไทม์แบบสองทาง
    • ก็สงสัยเหมือนกัน
      การสร้างไปป์ไลน์ที่เชื่อมโมเดลภาษาขนาดใหญ่ โมเดลสังเคราะห์เสียง และโมเดลรู้จำเสียงพูดเข้าด้วยกันด้วยความหน่วงต่ำก็ไม่เลว แต่เมื่อเทียบกับ โมเดลมัลติโหมดแบบเนทีฟ อย่าง GPT-4o แล้ว ดูเสียเปรียบอย่างชัดเจน
      อนาคตคือ โมเดลที่เนทีฟกับเสียงพูด ซึ่งเข้าใจได้ทั้งเสียงและนัยของน้ำเสียง และอนาคตนั้นก็อยู่ไม่ไกลนัก