ความท้าทายของ Thai NLP สำหรับ Smart Home
ภาษาไทยมีความซับซ้อนเฉพาะ: ไม่มีช่องว่างระหว่างคำ (Word Segmentation ยาก), วรรณยุกต์ 5 เสียง (Tone: สาม-ส้าม-ส่าม-ส้ม-สัม มีความหมายต่างกัน), สรรพนามหลายแบบ (ผม/ฉัน/หนู/เรา), คำไม่เป็นทางการและศัพท์แสลง ระบบ Voice AI กระแสหลักอย่าง Google Assistant และ Siri รองรับไทยได้ระดับหนึ่งแต่ยังขาดความแม่นยำสำหรับคำสั่ง Smart Home เฉพาะทาง
Thai ASR (Automatic Speech Recognition)
OpenAI Whisper Thai: Whisper v3 Large ได้รับการ Fine-tune บน Dataset ภาษาไทย ความแม่นยำ WER (Word Error Rate) ~8–12% สำหรับประโยคธรรมดา รัน Local บน Raspberry Pi 5 ด้วย whisper.cpp (Quantized Q4 Model) ใช้เวลา 1–3 วินาทีต่อประโยค 10 คำ AISS (AI Singapore) Thai ASR: Model เฉพาะทางไทย ฝึกบน Thai Common Voice Corpus 500+ ชั่วโมง ให้ WER ~5–8% สำหรับภาษาพูดมาตรฐาน แต่ License Commercial ต้องตรวจสอบ NECTEC Thai ASR: พัฒนาโดยศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ (NECTEC) มี Model หลายขนาด เหมาะกับระบบ Embedded
Thai Word Segmentation
ก่อน NLP ต้องแบ่งคำภาษาไทยก่อน Libraries ที่นิยม: - PyThaiNLP: Library Python ยอดนิยม รองรับ Word Tokenization, POS Tagging, Named Entity Recognition สำหรับภาษาไทย ใช้ Newmm Algorithm - DeepCut: Neural Network-based Thai Word Segmentation ความแม่นยำสูงกว่า Newmm ในประโยคซับซ้อน
Intent Classification ด้วย WangchanBERTa
WangchanBERTa: BERT Model ภาษาไทยพัฒนาโดย PyThaiNLP Team ผ่านการ Pre-train บน Thai Common Crawl 78.5GB Fine-tune เพิ่มสำหรับ Home Automation Intents: ตัวอย่าง Intents: - : เปิดไฟ, เปิดไฟห้องนอน, ให้แสงสว่างหน่อย - : ปิดพัดลม, ปิดทีวี, ดับหมด - : ตั้งแอร์ที่ 25 องศา, ลดความเย็น - : อากาศวันนี้เป็นยังไง, ฝุ่นเยอะไหม, ประตูปิดยัง - : โทรหาลูก, โทรหาหมอ Training Data: สร้าง Dataset 500–1,000 ตัวอย่างต่อ Intent ด้วยการ Augmentation (Thai Synonym Replacement, Random Deletion) Fine-tune WangchanBERTa Accuracy >95% บน Test Set
Entity Extraction (NER)
ดึง Entity จากคำสั่ง: ชื่อห้อง (ห้องนอน/ห้องนั่งเล่น/ห้องครัว), ค่าตัวเลข (25 องศา, 10%, 30 นาที), เวลา (กี่โมง, พรุ่งนี้เช้า) ใช้ PyThaiNLP NER + Custom Rule-based Extraction
Rasa NLU Pipeline สำหรับ Thai
Rasa Open Source รองรับ Custom Component ใส่ Thai Tokenizer (PyThaiNLP) เข้าไปใน Pipeline แทน Whitespace Tokenizer ตามปกติ Pipeline:
- Thai WhitespaceTokenizer (PyThaiNLP Newmm) 2. RegexFeaturizer 3. LexicalSyntacticFeaturizer 4. CountVectorsFeaturizer 5. DIETClassifier (Intent + Entity)
LINE LIFF Voice Interface สำหรับผู้สูงอายุ
LINE LIFF (LINE Front-end Framework) เปิด Web App ภายใน LINE Chat ไม่ต้องติดตั้ง App เพิ่ม ใช้ Web API MediaRecorder บันทึกเสียง → ส่ง WAV ไปยัง Backend Whisper ASR → ประมวลผล Intent → ส่งคำสั่งไปยัง Home Assistant UI สำหรับผู้สูงอายุ: ปุ่มขนาดใหญ่ กดค้างเพื่อพูด ตัวอักษร 24px ขึ้นไป Feedback เสียงจาก Piper TTS ยืนยันคำสั่ง ผู้สูงอายุที่ใช้ LINE อยู่แล้วไม่ต้องเรียนรู้ App ใหม่