Journal

Local AI Voice Assistant: Whisper.cpp + Ollama (LLaMA 3.2) + Piper TTS บน Raspberry Pi 5

Local AI Voice Assistant: Whisper.cpp + Ollama (LLaMA 3.2) + Piper TTS on Raspberry Pi 5

12 พฤษภาคม 2569 · 2 นาที

Local vs Cloud Voice Assistant: ประเด็นในไทย

Google Assistant และ Amazon Alexa รองรับภาษาไทย แต่มีข้อจำกัด: ทุกเสียงส่งไปยัง Cloud ของ Google/Amazon เพื่อประมวลผล ซึ่งมีนัยด้าน Privacy และ PDPA, ต้องการ Internet ตลอดเวลา, Latency 0.5–2 วินาที ขึ้นอยู่กับ Network Local AI Voice Assistant แก้ปัญหาเหล่านี้ทั้งหมดโดยรันทุกอย่างในเครื่อง

Stack สำหรับ Local AI Voice Assistant

  1. Wake Word Detection: openWakeWord หรือ Porcupine รันบน CPU ตรวจจับ Keyword เช่น สวัสดีบ้าน รับ CPU Load <5% 2. STT (Speech-to-Text): Whisper.cpp ของ OpenAI รัน Quantized Model บน CPU ของ Pi 5 ไม่ต้องการ GPU 3. Intent + Response: Ollama รัน LLaMA 3.2 3B Quantized (Q4) เป็น Local LLM ประมวลผลคำสั่งและสร้างคำตอบ เชื่อม Home Assistant ผ่าน API 4. TTS (Text-to-Speech): Piper TTS (open-source เร็วที่สุดสำหรับ Local) แปลงข้อความเป็นเสียงพูด รองรับ Thai Voice Model

Raspberry Pi 5 Specs และ Performance

Raspberry Pi 5 (8GB RAM): - Whisper.cpp Tiny Thai Model (Q4): ~1–2 วินาที/ประโยค 10 คำ - Whisper.cpp Small Thai Model (Q4): ~3–5 วินาที/ประโยค (แม่นยำกว่า) - Ollama LLaMA 3.2 3B (Q4): ~3–8 วินาทีสร้าง Response 50 Token - Piper TTS: <0.5 วินาทีสำหรับประโยค 20 คำ - Total Latency: 4–15 วินาที ยอมรับได้สำหรับ Smart Home Command แต่ช้ากว่า Cloud 3–5 เท่า แนะนำ: ใช้ Tiny/Small Model สำหรับคำสั่ง Smart Home ที่ Vocabulary จำกัด เพื่อ Latency ต่ำ เก็บ Large Model สำหรับ Queries ที่ซับซ้อน

เปรียบเทียบกับ Google Assistant และ Alexa

Google Assistant (Thai): Latency 0.5–1 วินาที ดีที่สุดสำหรับ Thai NLU แต่ส่ง Audio ไป Cloud Google ต้องใช้ Internet ตลอด ฟรีแต่มี Advertising Ecosystem Amazon Alexa (Thai Limited): Alexa รองรับไทยได้จำกัด บาง Skill ไม่รองรับภาษาไทย Latency คล้าย Google แต่ Ecosystem น้อยกว่าสำหรับไทย Local Whisper + Ollama: Privacy สมบูรณ์ ทำงานได้โดยไม่มี Internet ไม่มีค่า Subscription แต่ Latency สูงกว่าและต้องลงทุน Hardware (Pi 5 ราคา ~2,500–3,500 บาท)

Ollama สำหรับ Home Automation Intent

Ollama รัน LLM แบบ Local ผ่าน REST API ที่ เขียน System Prompt กำหนด Role: บ้านอัจฉริยะ HappySmart รับคำสั่งภาษาไทยและส่ง Action ไปยัง Home Assistant ผ่าน JSON ตัวอย่าง Prompt: User: เปิดไฟห้องนอนด้วย Assistant (JSON): HA เชื่อม Ollama ผ่าน Custom Component หรือ Python Script REST Call → Execute Action

Voice Pipeline ใน Home Assistant

HA 2023.10+ มี Built-in Wyoming Protocol รองรับ Local STT/TTS/Wake Word ติดตั้ง Whisper.cpp และ Piper ผ่าน Add-on (HA OS) หรือ Docker Container เชื่อม Assist Pipeline ใน HA Settings ใช้คุยกับ HA ผ่าน Microphone โดยตรง

ต้นทุนและ ROI

Cloud (Google/Alexa): ฟรีแต่ Privacy และ Dependency Local (Pi 5 8GB + USB Microphone + Speaker): ~3,000–4,000 บาท ครั้งเดียว ไม่มีค่ารายเดือน คืนทุนทันทีถ้าประเมิน Privacy มูลค่าสูง

คำถามที่พบบ่อย

Ollama รัน LLaMA 3.2 บน Raspberry Pi 5 ได้จริงไหม?
ได้ LLaMA 3.2 3B Quantized (Q4) ใช้ RAM ประมาณ 2–3GB รันบน Pi 5 8GB ได้สบาย ตอบ Response 50 Token ใน 3–8 วินาที เพียงพอสำหรับคำสั่ง Smart Home ไม่เหมาะกับ Complex Reasoning ที่ต้องการ Model ใหญ่กว่า
Whisper.cpp ต่างจาก OpenAI Whisper API อย่างไร?
Whisper.cpp เป็น C++ Port ของ Whisper OpenAI ที่ออปติไมซ์สำหรับ CPU ทำงาน Local ไม่ต้องส่งเสียงไป Cloud ไม่มีค่า API Whisper API ของ OpenAI ประมวลผลใน Cloud เร็วกว่าแต่มีค่าใช้จ่ายต่อนาทีและ Privacy ต่ำกว่า
Piper TTS รองรับภาษาไทยไหม?
Piper TTS มี Thai Voice Model ให้ Download ฟรี คุณภาพเสียงดีกว่า eSpeak แต่ยังไม่ Natural เท่า Google TTS หรือ Azure Neural TTS สำหรับ Smart Home Command Confirmation เพียงพอแล้ว
ทำไมต้อง Local LLM ไม่ใช้ GPT-4o หรือ Claude API แทน?
GPT-4o/Claude API คุณภาพดีกว่ามาก แต่ทุกคำสั่งในบ้านส่งไปยัง OpenAI/Anthropic Server Privacy เสียหายสำหรับข้อมูลส่วนตัวในบ้าน นอกจากนี้ต้องการ Internet ตลอดและมีค่า API รายเดือน Local LLM เหมาะกับ Smart Home Command ที่ Vocabulary จำกัด
Local AI Voice Assistant: Whisper.cpp + Ollama (LLaMA 3.2) + Piper TTS บน Raspberry Pi 5 · HappySmart