บทความ › โปรเจกต์

ของเล่น AI พูดได้ ด้วย ESP32-S3 และ xiaozhi-esp32 คำปลุกบนบอร์ด สมองบนคลาวด์

ทำของเล่นคุยได้ด้วยโปรเจกต์โอเพนซอร์ส xiaozhi-esp32 บอร์ดฟังคำปลุกเอง ส่วน LLM อยู่บนคลาวด์ พร้อมเรื่องที่ต้องคิดก่อนให้เด็กเล่น ทั้งความเป็นส่วนตัวและไฟบอกไมค์

กลาง อ่าน 7 นาที 23 ตุลาคม 2569 ของใหม่ที่ช่างควรลอง 2026 · บทที่ 17/20

อ่านจบแล้วจะรู้
  • คำปลุก (wake word) ตรวจบนบอร์ดด้วย ESP-SR แต่เสียงที่พูดหลังคำปลุกถูกส่งขึ้นเซิร์ฟเวอร์เพื่อแปลงเป็นข้อความ ให้ LLM ตอบ แล้วแปลงกลับเป็นเสียง
  • เฟิร์มแวร์ค่าตั้งต้นต่อเซิร์ฟเวอร์ทางการ xiaozhi.me ถ้าไม่อยากส่งเสียงออกไปที่อื่น ต้องตั้งเซิร์ฟเวอร์เอง ซึ่งยังไม่พร้อมใช้งานจริงตามที่ผู้พัฒนาเขียนไว้
  • ของเล่นที่เด็กใช้ ต้องมีไฟบอกว่ากำลังฟัง ผู้ปกครองตั้งค่าเครือข่ายเอง และอยู่ด้วยตอนเล่น
  • เสียงเด็กเป็นข้อมูลส่วนบุคคล PDPA ของไทยกำหนดให้เด็กอายุต่ำกว่า 10 ปีต้องได้ความยินยอมจากผู้ปกครอง

ของเล่นที่ทักแล้วตอบได้ ทุกวันนี้ทำเองได้ด้วยบอร์ด ESP32-S3 กับโปรเจกต์โอเพนซอร์ส xiaozhi-esp32 (ใบอนุญาต MIT) บอร์ดทำหน้าที่ฟังคำปลุก อัดเสียง และเล่นเสียงตอบ ส่วน “สมอง” คือ LLM ที่อยู่บนเซิร์ฟเวอร์ บทนี้อธิบายว่าเสียงเดินทางไปไหนบ้าง ทำตัวต้นแบบยังไง และเรื่องที่ต้องคิดให้จบก่อนยื่นของเล่นให้เด็ก

ข้อมูลในบทอ้างอิง README ของ xiaozhi-esp32 และคู่มือ XiaoZhi AI ของบอร์ด Waveshare ESP32-S3-AUDIO-Board ณ ตุลาคม 2026 โปรเจกต์นี้เปลี่ยนเร็ว ตรวจหน้า GitHub อีกครั้งก่อนลงมือ

อะไรทำบนบอร์ด อะไรทำบนคลาวด์

งานทำที่ไหนหมายเหตุ
ฟังคำปลุกบนบอร์ดESP-SR (WakeNet) ไม่ต้องใช้เน็ต
อัดเสียงหลังคำปลุก บีบอัดบนบอร์ดเข้ารหัสเป็น Opus
ส่งเสียงเครือข่ายWebSocket หรือ MQTT + UDP
แปลงเสียงเป็นข้อความ (ASR)เซิร์ฟเวอร์
คิดคำตอบ (LLM)เซิร์ฟเวอร์ / คลาวด์เช่น Qwen, DeepSeek
แปลงข้อความเป็นเสียง (TTS)เซิร์ฟเวอร์
เล่นเสียง แสดงหน้าตาบนจอบนบอร์ด

ค่าตั้งต้นของเฟิร์มแวร์คือต่อเซิร์ฟเวอร์ทางการ xiaozhi.me ถ้าอยากคุมเอง มีเซิร์ฟเวอร์ที่ชุมชนเขียนให้รันบนเครื่องตัวเอง เช่น xiaozhi-esp32-server (Python) แบบติดตั้งน้อยที่สุดต้องการราว 2 คอร์ RAM 2 GB ถ้าใช้ API บนคลาวด์ทั้งหมด หรือ 4 GB ถ้ารัน FunASR ในเครื่อง ผู้พัฒนาเขียนไว้ชัดว่ายังไม่ผ่านการทดสอบความปลอดภัยเครือข่าย ไม่ควรใช้ในงานจริง และถ้าเปิดออกเน็ตสาธารณะต้องป้องกันเอง

โปรเจกต์ยังมี MCP ฝั่งอุปกรณ์ ให้ LLM สั่งของบนบอร์ดได้ เช่น ปรับเสียง เปิดไฟ LED หมุนเซอร์โว ตรงนี้ทำให้ของเล่นขยับตามคำพูดได้ แต่ก็แปลว่าโมเดลบนคลาวด์สั่งฮาร์ดแวร์ในห้องเด็กได้ ให้เปิดเฉพาะคำสั่งที่ปลอดภัยเท่านั้น

ฟังคำปลุกบนบอร์ดทำงานในเครื่องอัดเสียง บีบอัด Opusส่งขึ้นเซิร์ฟเวอร์จากจุดนี้ออกนอกบ้านASR แปลงเป็นข้อความLLM คิดคำตอบTTS พูดกลับส่งเสียงกลับมาที่บอร์ด
มีแค่คำปลุกที่อยู่บนบอร์ด ที่เหลือไปเซิร์ฟเวอร์

ตัวอย่างบอร์ด: ESP32-S3-AUDIO-Board

บอร์ดสำเร็จรูปตัวนี้มีครบสำหรับของเล่นเสียง ESP32-S3R8 (dual-core 240 MHz) แฟลช 16 MB PSRAM 8 MB ไมค์ดิจิทัล 2 ตัว ชิปเสียง ES8311 กับ ES7210 ภาคขยายลำโพง ไฟ RGB วงแหวน 7 ดวง และช่องต่อแบตลิเธียม 3.7 V พร้อมวงจรชาร์จ ถ้าจะใส่แบต อ่านใช้แบตลิเธียมอย่างปลอดภัย ก่อน

ขั้นตอนจากคู่มือ

  1. ตรวจว่าบอร์ดอยู่ในรายชื่อบอร์ดที่ XiaoZhi รองรับ
  2. แฟลชเฟิร์มแวร์สำเร็จรูปจาก GitHub ของ XiaoZhi หรือของผู้ผลิตบอร์ด หรือ build เองด้วย ESP-IDF (idf.py menuconfig เลือกชนิดบอร์ด) เวอร์ชันล่าสุดต้องใช้ ESP-IDF 6.0 ขึ้นไป
  3. บอร์ดเปิดฮอตสปอตชื่อ Xiaozhi-xxxxxx ต่อมือถือเข้าไป หน้าเลือก Wi-Fi จะเด้งขึ้น หรือเปิด http://192.168.4.1 เอง รองรับเฉพาะ Wi-Fi 2.4 GHz
  4. ต่อเน็ตได้แล้ว บอร์ดแสดงรหัส 6 หลัก นำไปใส่ในหน้าควบคุมบน xiaozhi.me เพื่อผูกอุปกรณ์กับบัญชี
  5. พูดคำปลุก “Hello XiaoZhi” หรือกดปุ่ม BOOT แล้วเริ่มคุย

ตัวอย่างคำนวณ: เสียงหนึ่งประโยคมีขนาดเท่าไร

WakeNet รับเสียง 16 kHz โมโน 16 บิต และประมวลผลเป็นเฟรมละ 30 ms

  1. ตัวอย่างเสียงต่อเฟรม = 16,000 × 0.030 = 480 ตัวอย่าง
  2. อัตราข้อมูลดิบ = 16,000 × 16 บิต = 256,000 บิต/วินาที = 32 KB/วินาที
  3. เด็กพูดประโยคยาว 6 วินาที เสียงดิบ = 6 × 32 = 192 KB
  4. ถ้าบีบอัดด้วย Opus ที่ 24 kbps (ตัวเลขสมมุติเพื่อเทียบ ค่าจริงขึ้นกับการตั้งค่า) = 6 × 24,000 ÷ 8 = 18 KB เล็กลงราว 10 เท่า

ตัวเลขนี้บอกสองอย่าง ข้อแรก Wi-Fi บ้านธรรมดาส่งเสียงได้สบาย ข้อสอง เสียงทุกประโยคหลังคำปลุกเป็นไฟล์ที่เก็บ ส่งต่อ และฟังซ้ำได้ ถ้าเซิร์ฟเวอร์ปลายทางเลือกเก็บไว้

ความเป็นส่วนตัวของเด็ก

เสียงเด็กคือข้อมูลส่วนบุคคล และหลายครั้งในประโยคมีชื่อ ชื่อโรงเรียน หรือเรื่องในบ้านปนมาด้วย

  • กฎหมายไทย: ตามแนวทางของคณะกรรมการคุ้มครองข้อมูลส่วนบุคคล ภายใต้ PDPA เด็กอายุต่ำกว่า 10 ปีให้ความยินยอมเองไม่ได้ ต้องเป็นผู้ใช้อำนาจปกครอง ถ้าทำของเล่นให้คนอื่นใช้หรือขาย นี่คือเรื่องที่ต้องถามผู้รู้กฎหมาย ไม่ใช่เดาเอง
  • มุมของสหรัฐฯ: FTC ระบุว่าไฟล์เสียงของเด็กเป็นข้อมูลส่วนบุคคลภายใต้ COPPA และจะผ่อนผันเฉพาะกรณีที่ใช้เสียงแทนการพิมพ์ เก็บไว้สั้น ๆ แล้วลบ และต้องเขียนนโยบายการลบไว้ชัด ใช้เป็นมาตรฐานขั้นต่ำในการคิดได้ดี
  • ถามเซิร์ฟเวอร์ปลายทาง: README ของ xiaozhi-esp32 ไม่ได้เขียนว่าเสียงเก็บไว้นานเท่าไร หรือเก็บที่ไหน ก่อนผูกบัญชีให้อ่านเงื่อนไขของบริการนั้นเอง ถ้าหาคำตอบไม่ได้ ให้ถือว่าเสียงอาจถูกเก็บ
  • ข้อมูลที่ไม่ควรถาม: ตั้ง system prompt ไม่ให้ของเล่นถามชื่อจริง ที่อยู่ โรงเรียน หรือรูปภาพ และบอร์ดบางรุ่นมีกล้อง ถ้าไม่จำเป็นให้ปิดหรือไม่ต่อกล้องเลย

ของเล่นที่ฟังได้ ต้องให้ผู้ใหญ่รู้ทุกครั้งว่ามันกำลังฟัง และรู้ว่าเสียงไปที่ไหน ถ้าตอบสองข้อนี้ไม่ได้ ยังไม่ควรให้เด็กเล่น

พึ่งคลาวด์: เมื่อเซิร์ฟเวอร์หาย ของเล่นก็เงียบ

ของเล่นตัวนี้ทำงานได้เท่าที่เซิร์ฟเวอร์ยังเปิด บริการเปลี่ยนเงื่อนไข ปิดตัว หรือ API ของ LLM เปลี่ยน ของเล่นก็ตอบไม่ได้ คำตอบของ LLM ก็ไม่แน่นอนร้อยเปอร์เซ็นต์ อาจพูดเรื่องที่ไม่เหมาะกับวัย หรือพูดข้อมูลผิดอย่างมั่นใจ

ทางลดความเสี่ยง ตั้งเซิร์ฟเวอร์เองในบ้าน เลือก ASR และ TTS แบบรันในเครื่อง เขียน prompt จำกัดหัวข้อให้เหมาะกับวัย และอย่าออกแบบให้ของเล่นเป็นสิ่งเดียวที่เด็กคุยด้วยก่อนนอน

ไฟบอกไมค์และการดูแลของผู้ปกครอง

  • ไฟบอกสถานะที่เห็นชัด: ใช้ไฟ RGB วงแหวนแสดงสามสถานะต่างสีกัน รอคำปลุก, กำลังฟังและส่งเสียง, กำลังพูดตอบ เด็กและผู้ใหญ่ควรดูออกจากระยะในห้อง
  • รู้ข้อจำกัด: ไฟที่เฟิร์มแวร์คุม ปิดได้ด้วยเฟิร์มแวร์ ถ้าต้องการความมั่นใจสูงกว่านั้น ใส่สวิตช์ตัดไฟไมค์หรือสวิตช์ปิดเครื่องที่กดเห็นได้จากภายนอก
  • ผู้ปกครองตั้งค่าเอง: การต่อ Wi-Fi การผูกบัญชี และการเปิดคำสั่ง MCP ให้ผู้ใหญ่ทำ ไม่ใช่เด็ก
  • อยู่ด้วยตอนเล่น: โดยเฉพาะเด็กเล็ก และฟังว่าโมเดลตอบอะไร ถ้าเจอคำตอบไม่เหมาะ ปรับ prompt หรือหยุดใช้
  • ฮาร์ดแวร์: ลำโพงใกล้หู ตั้งเสียงสูงสุดให้ไม่ดังเกินไป แบตลิเธียมต้องอยู่ในกล่องที่เด็กแกะไม่ได้ ชิ้นส่วนเล็กต้องยึดแน่น

ข้อผิดพลาดที่เจอบ่อย

  • เข้าใจว่าคำปลุกบนบอร์ดแปลว่าทุกอย่างอยู่ในบอร์ด จริง ๆ ส่วนที่ฟังประโยคและตอบอยู่บนเซิร์ฟเวอร์ทั้งหมด
  • ใช้ Wi-Fi 5 GHz หน้าตั้งค่ารองรับเฉพาะ 2.4 GHz
  • build ด้วย ESP-IDF 5.x โค้ดรุ่นล่าสุดต้องใช้ 6.0 ขึ้นไป
  • เปิดเซิร์ฟเวอร์ตั้งเองออกอินเทอร์เน็ต โดยไม่มีรหัสผ่านหรือ firewall
  • ไม่มีไฟบอกสถานะ ผู้ใหญ่ในบ้านไม่รู้ว่าของเล่นกำลังส่งเสียงออกไป

บอร์ด ESP32 รุ่นไหนเหมาะกับงานอะไร ดูเลือกบอร์ด ESP32

แหล่งข้อมูล

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

ไม่มีเน็ต ของเล่นยังคุยได้ไหม

ไม่ได้ บอร์ดตรวจคำปลุกได้เองก็จริง แต่การฟังประโยค การคิดคำตอบ และการพูดกลับ ต้องผ่านเซิร์ฟเวอร์ ถ้าเน็ตหลุด ของเล่นจะได้ยินคำปลุกแต่ตอบไม่ได้

ตั้งเซิร์ฟเวอร์เองแล้ว เสียงจะไม่ออกนอกบ้านใช่ไหม

ขึ้นกับว่าเลือก ASR, LLM และ TTS แบบไหน xiaozhi-esp32-server มีตัวเลือกแบบรันในเครื่อง เช่น FunASR สำหรับแปลงเสียง แต่ถ้าเลือก LLM หรือ TTS ผ่าน API บนคลาวด์ ข้อความหรือเสียงก็ยังออกไปที่ผู้ให้บริการนั้น

บอร์ดแบบไหนใช้ได้

โปรเจกต์รองรับหลายชิป ทั้ง ESP32, C3, C5, C6, S3 และ P4 และมีโฟลเดอร์บอร์ดสำเร็จรูปกว่า 130 แบบ ถ้าเริ่มครั้งแรก เลือกบอร์ด ESP32-S3 ที่มีไมค์ ลำโพง และอยู่ในรายชื่อบอร์ดที่รองรับ จะไม่ต้องต่อวงจรเสียงเอง

วงจรและโค้ดในบทความทดสอบกับบอร์ดตัวอย่าง บอร์ดต่างรุ่นอาจใช้ขาต่างกัน ตรวจ pinout ของบอร์ดที่ใช้ก่อนต่อไฟเสมอ

อ่านต่อ

#โปรเจกต์กลาง

บังคับรถหุ่นยนต์ ESP32 ด้วยจอยเกมคอนโซล ผ่าน Bluepad32

ใช้ Bluepad32 ให้ ESP32 รับจอยเกมคอนโซลผ่าน Bluetooth แล้วขับรถสองล้อด้วย TB6612FNG ESP32 รุ่นแรกรองรับจอยทุกแบบ ส่วน S3/C3/C6 ได้เฉพาะ BLE และต้องแยกไฟมอเตอร์

อ่าน 9 นาที
#โปรเจกต์กลาง

กล่องดนตรี NFC ฝังแท็ก NTAG215 ในตัวหมากพิมพ์ 3 มิติ อ่านด้วย ESP32 กับ PN532

ฝังแท็ก NTAG215 ในตัวหมากด้วยการหยุดพิมพ์กลางงาน แล้วให้ ESP32 กับเครื่องอ่าน PN532 อ่าน UID ของแท็ก วางตัวไหนเล่นเพลงนั้น พร้อมคำนวณความลึกช่องและจุดหยุดพิมพ์

อ่าน 9 นาที
#โปรเจกต์เริ่มต้น

พิมพ์ 3 มิติ ลงบน ผ้าตาข่าย tulle ทำของเล่นที่งอได้ ด้วยการหยุดพิมพ์กลางงาน

หยุดพิมพ์หลังชั้นแรก ๆ วางผ้า tulle ให้ตึง แล้วพิมพ์ต่อทับ พลาสติกจะไหลผ่านรูตาข่ายยึดผ้าไว้ในเนื้อ ได้ของเล่นแบ่งเป็นปล้องที่งอได้ พร้อมค่าตั้งต้นและการคำนวณชั้น

อ่าน 6 นาที