ESP32 ทำอุปกรณ์พูดได้ ด้วย AI Text-to-Speech
เรียนรู้การสร้างอุปกรณ์ที่มีความสามารถพูดได้ด้วย AI โดยใช้ ESP32 และ Wit.ai Text-to-Speech API ตั้งแต่พื้นฐานจนถึงการใช้งานจริง
ภาพรวมโปรเจกต์
โปรเจกต์นี้จะสอนให้คุณสร้างอุปกรณ์ที่สามารถพูดได้โดยใช้ ESP32 WiFi Microcontroller ร่วมกับ Wit.ai ซึ่งเป็นบริการ AI ที่ประมวลผลข้อความและแปลงเป็นเสียงพูดได้อย่างเป็นธรรมชาติ ระบบนี้อ่านข้อความจากอินเทอร์เน็ต ส่งไปยัง Wit.ai API เพื่อแปลงเป็นเสียง แล้วเล่นเสียงผ่านลำโพงหรืออื่นๆ
อุปกรณ์ที่ต้องใช้
ฮาร์ดแวร์ (Hardware)
- ESP32 Development Board × 1
- ลำโพง 3.5mm หรือ Speaker Module × 1
- USB Type-C Cable (สำหรับโปรแกรม) × 1
- สายจัมเปอร์ (Jumper Wires)
- Breadboard × 1
- คอมพิวเตอร์หรือแล็ปท็อป
ซอฟต์แวร์ (Software) และบริการ
- Arduino IDE
- Wi-Fi Connection (ที่บ้านหรือสำนักงาน)
- Wit.ai Account (ฟรี) - สำหรับ API Key
เรื่องราวและที่มา
ในยุคปัจจุบัน AI มีบทบาทสำคัญในการสื่อสารระหว่างมนุษย์กับเครื่องจักร เทคโนโลยี Text-to-Speech ไม่ใช่เรื่องใหม่ แต่การนำมาใช้กับ IoT Devices เหมือน ESP32 นั้นเปิดโอกาสให้สร้างอุปกรณ์ที่หลากหลายมากขึ้น
โปรเจกต์นี้เป็นการผสมผสานระหว่าง Embedded Systems (ระบบฝัง) กับ Cloud AI ทำให้สามารถสร้างอุปกรณ์อัจฉริยะที่มีความสามารถพูดได้เช่น แจ้งเวลา ส่งข้อความเตือน หรือแม้แต่ตัวอักษรนำเสนอสินค้า
บทนำ
ESP32 เป็นไมโครคอนโทรลเลอร์ที่มี WiFi และ Bluetooth ในตัว ทำให้เชื่อมต่อกับอินเทอร์เน็ตได้ง่าย นอกจากนี้ยังมีพอร์ต GPIO มากมายสำหรับต่อเซ็นเซอร์และอุปกรณ์ต่างๆ
Wit.ai เป็นแพลตฟอร์ม AI ที่ขึ้นของ Facebook (ตอนนี้เป็นของ Meta) ให้บริการแปลงข้อความเป็นเสียงพูดที่ฟังดูเป็นธรรมชาติ รองรับภาษาหลายภาษา รวมถึงไทย ฟรีและสามารถใช้ได้โดยไม่ต้องบัตรเครดิต
ทำไมต้อง AI Text-to-Speech กับ ESP32
ความนุ่มนวล (Natural Sound)
เสียงพูดจาก AI ฟังดูเป็นธรรมชาติมากขึ้น ไม่เหมือนเสียง Robotic แบบเก่า
ความยืดหยุ่น (Flexibility)
สามารถส่งข้อความใดก็ได้ให้พูดออกมา ไม่ต้องบันทึกเสียงล่วงหน้า
ประหยัดพื้นที่ (Space Efficient)
ไม่ต้องเก็บไฟล์เสียงหลายๆ ไฟล์ แค่โค้ดกับข้อความก็พอ
รองรับหลายภาษา (Multi-language)
เปลี่ยนโค้ดนิดหน่อยก็พูดภาษาอื่นได้ไม่มีปัญหา
หลักการทำงาน
ระบบทำงานตามลำดับต่อไปนี้:
- 1. ส่งข้อความไปยัง Wit.ai API - ESP32 เชื่อมต่อกับอินเทอร์เน็ตและส่งข้อความไปยังเซิร์ฟเวอร์ Wit.ai พร้อมกับ API Key
- 2. ประมวลผลที่ Wit.ai - เซิร์ฟเวอร์อ่าน API Key ตรวจสอบความถูกต้องและประมวลผลข้อความ
- 3. ส่งไฟล์เสียงกลับมา - Wit.ai แปลงข้อความเป็นไฟล์เสียง (MP3) และส่งกลับให้ ESP32
- 4. เล่นเสียง - ESP32 ใช้ DAC (Digital-to-Analog Converter) ในตัวเพื่อเล่นเสียงผ่านลำโพง
การต่อวงจร
การต่อวงจรนั้นค่อนข้างง่าย มีเพียง 3 ขาหลัก:
- GND (Ground) ของลำโพง ต่อกับ GND ของ ESP32
- DAC Output (GPIO 25) ของ ESP32 ต่อกับลำโพงหรือแอมป์
- Power 3.3V หรือ 5V ต่อกับลำโพง (ขึ้นอยู่กับสเปคลำโพง)
หากลำโพงต่ำวัตต์ คุณอาจต้องใช้ Amplifier Module ขนาดเล็กเพื่อขยายเสียงให้ดังขึ้น
แผนผังวงจร (Schematics)
ตั้งค่า Wit.ai สำหรับ Text-to-Speech
ขั้นแรกต้องสมัครสมาชิก Wit.ai และสร้าง API Key ตามขั้นตอนต่อไปนี้:
ขั้นตอนที่ 1: สมัครสมาชิก
- ไปที่เว็บไซต์ wit.ai
- คลิก "Log in" หรือ "Sign up" ด้วยบัญชี Facebook, GitHub, หรือ Google
- ตามคำแนะนำให้จนเสร็จการสมัครสมาชิก
ขั้นตอนที่ 2: สร้าง API Key
- ไปที่เมนู "Settings" ด้านบนขวา
- เลือก "API Tokens"
- คลิก "Create Token"
- ตั้งชื่อให้ Token (เช่น "ESP32-TTS")
- สำเร็จ! ก็ได้ API Key แล้ว - คัดลอกไว้เพื่อใช้ในโค้ด
การเชื่อมต่อ Software
ต่อไปนี้เป็นขั้นตอนการตั้งค่า Arduino IDE สำหรับ ESP32:
1. ติดตั้ง ESP32 Board ใน Arduino IDE
- ไปที่ File → Preferences
- ใส่ URL นี้ในช่อง "Additional Board Manager URLs": https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- ไปที่ Tools → Board → Board Manager
- ค้นหา "ESP32" และติดตั้ง
2. ติดตั้ง WiFiClient Library
- ไปที่ Sketch → Include Library → Manage Libraries
- ค้นหา "WiFiClientSecure" และติดตั้ง
3. เลือก ESP32 Board
- Tools → Board → ESP32 Arduino → "ESP32 Dev Module"
หลังจากตั้งค่าเสร็จ คุณสามารถอัปโหลดโค้ดไป ESP32 ได้โดยเลือก Serial Port ที่ถูกต้องแล้วคลิก Upload
เคล็ดลับสำหรับคุณภาพเสียงที่ดี
-
✓
ใช้ลำโพงคุณภาพสูง
ลำโพงแบบปรกติหรือ Speaker Module 5-10W ให้เสียงดี
-
✓
ใช้ Amplifier ที่เหมาะสม
ถ้าลำโพงเล็ก ใช้ Mini Amplifier Module เพื่อขยายเสียง
-
✓
ตรวจสอบการเชื่อมต่อ WiFi
WiFi ต้องมั่นคง ไม่เช่นนั้น API จะช้าหรือเชื่อมต่อไม่ได้
-
✓
ตั้ง Volume ที่เหมาะสม
ใช้ Potentiometer หรือ Software Volume Control ปรับระดับเสียง
แก้ไขปัญหาทั่วไป
ปัญหา: ESP32 ไม่เชื่อมต่อ WiFi
วิธีแก้: ตรวจสอบว่า SSID และ Password ถูกต้องหรือไม่ ลองรีสตาร์ท Router และ ESP32 ดู
ปัญหา: ไม่ได้เสียง
วิธีแก้: ตรวจสอบการเชื่อมต่อลำโพง ลองใช้ Multimeter วัดแรงดันไฟฟ้าที่ GPIO 25 ของ ESP32