Journal

Thai NLP สำหรับ Home Automation: ASR, Intent Classification และ LINE Voice Interface

Thai NLP for Home Automation: ASR, Intent Classification and LINE Voice Interface

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

ความท้าทายของ 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:

  1. 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 ใหม่

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

Whisper Thai ASR แม่นยำแค่ไหนสำหรับคำสั่ง Smart Home?
Whisper v3 Large Thai ให้ WER ~8–12% สำหรับประโยคทั่วไป สำหรับคำสั่ง Smart Home ที่มี Vocabulary จำกัด ความแม่นยำสูงกว่านั้น Fine-tune เพิ่มด้วย Dataset คำสั่ง Smart Home ช่วยลด WER เหลือ ~3–5%
WangchanBERTa คืออะไรและแตกต่างจาก BERT ภาษาอังกฤษอย่างไร?
WangchanBERTa เป็น BERT Model ภาษาไทยโดยเฉพาะ Pre-train บน Thai Common Crawl 78.5GB ใช้ Thai Tokenizer (SentencePiece Thai) แทน WordPiece ภาษาอังกฤษ เหมาะกับ NLP ภาษาไทยกว่าการใช้ mBERT (Multilingual BERT)
LINE LIFF Voice Interface ทำงานบน iPhone ผู้สูงอายุได้ไหม?
ได้ LINE LIFF รองรับ iOS และ Android MediaRecorder API ทำงานบน Safari (iOS 14+) ไม่ต้องติดตั้ง App เพิ่ม ผู้สูงอายุที่ใช้ LINE อยู่แล้วกดปุ่มในแชทแล้วพูดได้เลย
ระบบ Thai NLP นี้รันบน Local ได้ทั้งหมดหรือต้องใช้ Cloud?
รัน Local ได้ทั้งหมดบน Raspberry Pi 5: Whisper.cpp ASR + PyThaiNLP Word Segmentation + WangchanBERTa (Quantized) + Rasa NLU ไม่ส่งเสียงหรือข้อความไปยัง Cloud เหมาะกับข้อกำหนด PDPA ของไทย
Thai NLP สำหรับ Home Automation: ASR, Intent Classification และ LINE Voice Interface · HappySmart