ตึงจัด! สร้าง "CrankGPT" AI Voice Assistant แบบออฟไลน์ 100% ปั่นไฟด้วยมือหมุนล้วนๆ

โฉมหน้าโปรเจกต์ CrankGPT แค่หมุนๆ ปั่นไฟ ก็คุยกับ AI ได้เลย ไม่ง้อปลั๊กไฟ ไม่ง้ออินเทอร์เน็ต!

สวัสดีชาว Maker สายหาทำทุกคนครับ! 🛠️ ปกติเวลาเราพูดถึงความฉลาดของ AI อย่าง ChatGPT สิ่งแรกที่แว้บเข้ามาในหัวคือ "ต้องต่อเน็ต" และ "ต้องมีเซิร์ฟเวอร์ยักษ์ใหญ่คอยประมวลผล" ใช่ไหมครับ? แต่ทีมผู้สร้างโปรเจกต์ "CrankGPT" เขาบอกว่า "ไม่จำเป็นเสมอไป!"

พวกเขาเลยจัดหนัก สร้างตู้ AI ผู้ช่วยสั่งการด้วยเสียง (Voice Assistant) ที่ ไม่ต้องมีแบตเตอรี่ และ ไม่ต้องต่อคลาวด์! มีแค่ "เครื่องปั่นไฟแบบมือหมุน (Hand crank)", คอมพิวเตอร์จิ๋ว Raspberry Pi 5 และโมเดลภาษาขนาดเล็ก (LLMs) ที่รันแบบ Local ล้วนๆ ถ้าวงจรไม่เปียกน้ำ ต่อให้อีกพันปีข้างหน้า เครื่องนี้ก็ยังคงทำงานและคุยกับคุณได้ครับ! โคตรสุด!

ทำไมต้องลำบากปั่นไฟรัน AI? 🤔

แรงจูงใจของทีมสร้างคือเรื่องของ ความเป็นส่วนตัว (Privacy) และการตั้งคำถามกับวงการเทคฯ ครับ ว่าทำไมเราต้องผลาญพลังงานเป็นกิโลวัตต์ และเสียเงินมหาศาลไปกับคลาวด์ เพื่อรันคำสั่งง่ายๆ ในเมื่อ "โมเดลขนาดเล็ก (Small Models)" ก็สามารถทำงานได้ดีเยี่ยมไม่แพ้กัน แถมใช้พลังงานน้อยกว่าบานเบอะ!

แกะกล่องฮาร์ดแวร์: จัดของยังไงให้อยู่รอด 🧰

การจะทำระบบให้ใช้ไฟจากการปั่นมือได้ ต้องรีดประสิทธิภาพและจัดการฮาร์ดแวร์ให้เป๊ะที่สุดครับ:

  • สมองกล (Single Board Computer): ใช้ Raspberry Pi 5 รุ่น 8GB พร้อมพัดลมระบายความร้อน ทำหน้าที่รันโมเดล AI ทั้งรับเสียง (ASR), ประมวลผลภาษา (LLM) และพูดโต้ตอบ (TTS) บน CPU ล้วนๆ แบบไม่มีตัวเร่งความเร็ว!
  • ระบบเสียง (Audio): ใช้บอร์ดเสริม KEYESTUDIO ReSpeaker 2-Mic Pi HAT ที่มีไมค์คู่สวมทับบน GPIO ของบอร์ด Pi พอดีเป๊ะ
  • ขุมพลังมือหมุน (Power): ใช้เครื่องปั่นไฟฉุกเฉิน 20W แต่เนื่องจาก Pi 5 ตอนรัน AI จะกินไฟกระชากสูงมาก (Peak 5A) จนเครื่องปั่นไฟตัดดับ เขาเลยต้อง สร้างแผงวงจรคาปาซิเตอร์ (Capacitor board) มาทำหน้าที่เป็นถังพักน้ำ เพื่อหน่วงไฟให้บอร์ด Pi ทำงานต่อได้นิ่งๆ ประมาณ 20 วินาทีครับ

💡 Maker's Tip: ในโปรเจกต์นี้เขาบอกเลยว่า ตอนที่บอร์ด Pi รัน AI พร้อมกับแปลงเสียงพูด (Inference stack) มือที่เราปั่นไฟอยู่จะ รู้สึกฝืดและหนักขึ้นชัดเจน! เพราะฮาร์ดแวร์มันดึงกระแสไฟไปกินแบบสุดหลอดนั่นเองครับ!

หากเพื่อนๆ อยากลองสร้าง Voice Assistant ของตัวเองดูบ้าง แวะมาช้อป บอร์ด Raspberry Pi 5, พัดลมระบายความร้อน และบอร์ดไมโครโฟนเสริม ได้ที่ Globalbyte Shop เลยครับ! ทัก LINE OA มาให้แอดมินช่วยจัดเซ็ตได้เลยนะ!

ซอฟต์แวร์สุดรีดพลัง รันไวกว่าแสง ⚡

เพื่อให้ตอนปั่นไฟไม่ต้องรอนาน เขาหั่น OS ให้เหลือแค่ DietPi (OS สายมินิมอล) ปิดบลูทูธ ปิดไวไฟทิ้งหมด ทำให้บูตเข้า Linux ได้ในเวลาแค่ 3 วินาที! ส่วนระบบ Voice Agent เขาเขียนขึ้นมาเองใหม่หมดตั้งแต่ต้นจนจบ เพื่อให้กินสเปก CPU น้อยที่สุดครับ:

  • หู (ASR): ใช้ Moonshine ASR แปลงเสียงเป็นข้อความ เพราะไวที่สุดบน CPU ทำงานคู่กับ Silero VAD ในการตัดเสียงรบกวน
  • สมอง (LLM): รันโมเดลบน llama.cpp โดยใช้โมเดลตัวจิ๋วแต่แจ๋วอย่าง Liquid AI LFM2 (350M / 1.2B) และ Gemma 3 (1B)
  • ปาก (TTS): แปลงข้อความกลับเป็นเสียงด้วย Piper เพราะหน่วงน้อยสุด เอาชนะตัวอื่นๆ อย่าง Kokoro หรือ KittenTTS ขาดลอย!

⚠️ ข้อควรรู้สำหรับสาย AI on Edge

การปรับแต่ง Kernel และรัน LLM บนบอร์ดคอมพิวเตอร์จิ๋วเป็นเรื่องที่มีความซับซ้อน (Complex) มากครับ ยิ่งการทำโมเดลแบบ Streaming ให้เสียงพูดและคำตอบไหลออกมาพร้อมกันโดยไม่กระตุก ต้องใช้ทักษะการ Optimize ระดับสูง หากใครอยากเจาะลึก แนะนำให้เข้าไปเสพข้อมูลเพิ่มเติมที่หน้าโปรเจกต์ต้นฉบับเลยครับ!

วิดีโอสาธิตการทำงานจริง (Demo) 🎬

ลองฟังเสียงตอบโต้ที่สมูทและไวมาก แม้จะรันบน CPU ของ Raspberry Pi ล้วนๆ!

ตารางเปรียบเทียบความเร็วโมเดล LLM บน Raspberry Pi 5 📊

การเจนเนอเรตคำ (Token generation) คือคอขวดที่ใหญ่ที่สุด ซึ่งขึ้นอยู่กับแบนด์วิดท์ของ RAM ล้วนๆ ครับ:

โมเดล AI (Model) ขนาดแรมที่ใช้ (Memory) Prefill t/s Generation t/s
lfm2.5 350M (Q4_K_M) 354.48 MiB 222.65 ± 1.09 48.86 ± 0.02
lfm2.5 1.2B (Q4_K_M) 762.49 MiB 71.31 ± 0.04 15.01 ± 0.01
gemma3 1B (Q4_K_M) 762.49 MiB 46.12 ± 0.01 14.31 ± 0.01

ตารางการใช้พลังงาน (Practical Power Needs) ⚡

นี่คือเหตุผลว่าทำไมคนหมุนถึงเหงื่อตกตอนที่บอร์ดกำลังคิดเลข!

สถานะการทำงาน (Scenario) แรงดันไฟ (Voltage) กระแสไฟ (Current) พลังงาน (Power)
Idle (สแตนด์บายเฉยๆ) ~5 V ~0.8 A ~4 W
ASR (Moonshine กำลังฟังเสียง) ~5 V ~1.6 A ~8 W
LLM + TTS inference (กำลังคิดและพูด) ~5 V ~3 A ~15 W (พีคสุด 5A)
*คำเตือนและข้อแนะนำ: เนื้อหาบทความนี้สรุปและแปลมาจากบทความเทคโนโลยีต่างประเทศ โปรเจกต์ CrankGPT มีความซับซ้อนในเชิงฮาร์ดแวร์วงจรจ่ายไฟและการปรับแต่งสถาปัตยกรรมระดับ Kernel OS ของ Linux เพื่อลดความหน่วง (Latency) แนะนำให้ผู้ใช้งานศึกษาโครงสร้างซอร์สโค้ดจาก บล็อกผู้พัฒนาโดยตรง ก่อนนำไปทดลองใช้งานครับ

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี