ก่อนอื่น — ลองดูสิ่งที่เกิดขึ้น
ทุกคนเคยเจอแบบนี้...
ตั้งใจจะพิมพ์ "สวัสดีครับ" แต่ลืมเปลี่ยนภาษา
l;ylfu8iy[
⬇
สวัสดีครับ
กด Ctrl + Shift + T แปลงทันที
หรือจะพิมพ์ "ทดสอบ"
kgx'iyd
⬇
ทดสอบ
ใช้ได้ทุก app — Browser Slack LINE VS Code
Design Thinking Process
จากปัญหาเล็กๆ ที่เจอทุกวัน — สู่ไอเดียเครื่องมือที่ช่วยคนไทยทุกคน
ทุกคนเคยเจอ — พิมพ์ไปครึ่งประโยคแล้วรู้ตัวว่าลืมเปลี่ยนภาษา
คนไทยใช้ 2 ภาษาบนคีย์บอร์ดเดียวกัน สลับไปมาวันละหลายสิบครั้ง บางทีพิมพ์ไปแล้ว 10-20 ตัวอักษร ถึงรู้ตัวว่าอยู่โหมดอังกฤษ — ต้องลบทั้งหมดแล้วพิมพ์ใหม่ ซึ่งเสียเวลาและหงุดหงิดมาก
Pain Point: ทุกครั้งที่ลืมเปลี่ยนภาษา ต้อง ลบ → เปลี่ยนภาษา → พิมพ์ใหม่ทั้งหมด = เสียเวลา + เสียอารมณ์
"ทำไมต้องลบแล้วพิมพ์ใหม่ ทั้งที่นิ้วกดตำแหน่งถูกแล้ว?"
จริงๆ แล้วตัวอักษรที่พิมพ์ออกมา ตรงกับตำแหน่งบนคีย์บอร์ด Kedmanee ทุกตัว เช่น กดปุ่ม l = ตำแหน่งเดียวกับ ส ดังนั้นแค่ "แปลง" กลับก็ได้ข้อความภาษาไทยที่ต้องการ ไม่ต้องพิมพ์ใหม่
HMW: How might we แปลงข้อความที่พิมพ์ผิดภาษา กลับเป็นภาษาที่ตั้งใจจะพิมพ์ ด้วยการกดปุ่มเดียว?
Mapping Table + Self-Learning Dictionary
ไอเดียหลักมี 2 ส่วน:
• Keyboard Mapping — lookup table 1:1 จาก EN key → TH character (Kedmanee layout)
• Learning Engine — จำคู่ที่เคยแปลง ยิ่งใช้บ่อยยิ่งเก่ง ถ้าแปลงซ้ำ ≥3 ครั้ง ระบบจะ auto-replace ไม่ต้องกดปุ่มลัด
Key Idea: ระบบที่ "ยิ่งใช้ยิ่งฉลาด" — เรียนรู้จากพฤติกรรมจริงของผู้ใช้ ไม่ต้องตั้งค่าอะไร
Lean Prototype — Python ก่อน, Swift ทีหลัง
เริ่มจาก prototype ด้วย Python เพราะทำได้เร็ว:
• pynput — จับ hotkey (Ctrl+Shift+T) แบบ system-wide
• pyperclip — capture text ผ่าน clipboard (select → copy → convert → paste)
• JSON file — เก็บ dictionary ง่ายๆ ที่ ~/Library/Application Support/ThaiTypoFix/
Strategy: ทำ Python prototype ให้ใช้ได้จริงก่อน แล้วค่อย port เป็น Swift menu bar app สำหรับ production
ใช้เองทุกวัน — dogfooding ที่ดีที่สุด
ทดสอบด้วยการใช้เองในการทำงานจริง — พิมพ์ chat, เขียนโค้ด, ตอบอีเมล ดูว่าจับ text ได้ถูกต้องทุก app ไหม dictionary เรียนรู้เร็วพอไหม และ shortcut ไม่ชนกับ app อื่น
Validation: ถ้าตัวเองใช้ทุกวันแล้วรู้สึกว่า "ขาดไม่ได้" = ผ่าน
Keyboard Mapping — หัวใจของระบบ
EN key → TH character ตาม Kedmanee layout (1:1 mapping)
⌨ ตัวอย่าง: l;ylfu8iy[ → สวัสดีครับ
System Architecture
Data flow ตั้งแต่ผู้ใช้กด shortcut จนได้ข้อความภาษาไทย
⌨
Shortcut Listener
จับ Ctrl+Shift+T แบบ system-wide
↓
📋
Text Capture
คัดลอก text ที่เลือกอยู่ผ่าน clipboard
↓
🔄
Mapping Engine
เช็ค Dictionary ก่อน → ถ้าไม่มี ใช้ Kedmanee mapping
↓
📝
Text Replace
วางข้อความภาษาไทยแทนที่
↓
🧠
Learning Engine
บันทึกคู่ EN→TH ลง dictionary.json
Self-Learning Dictionary
ระบบที่ยิ่งใช้ยิ่งเก่ง — เรียนรู้จากพฤติกรรมผู้ใช้จริง
🧠 วิธีการเรียนรู้
1
ผู้ใช้พิมพ์ kgx'iyd แล้วกด shortcut แปลง
2
ระบบแปลงได้ ทดสอบ → บันทึกคู่ลง dictionary (count = 1)
3
ใช้ซ้ำอีกครั้ง → count += 1 เพิ่มความมั่นใจ
4
เมื่อ count ≥ 3 → Auto-replace ไม่ต้องกดปุ่มลัด!
{
"kgx'iyd": {
"value": "ทดสอบ",
"count": 5
},
"l;ylfu8iy[": {
"value": "สวัสดีครับ",
"count": 12
}
}
ใช้ได้ทุกที่บน macOS
ทำงานแบบ system-wide — ไม่ว่าจะอยู่ app ไหนก็กดปุ่มลัดแปลงได้
🌐 Safari / Chrome
💬 Slack
🟢 LINE
📝 Notion
💻 VS Code
⌨ Terminal
📄 Word / Pages
Roadmap
แผนพัฒนา 3 เฟส — จากแปลงง่ายๆ สู่ AI ที่เข้าใจบริบท
⌨
Phase 1 — Core
Keyboard mapping + Shortcut trigger + Dictionary learning
🧠
Phase 2 — Smart
Auto-detection + Pattern learning + Thai spell check
✨
Phase 3 — AI
AI typo prediction + Context-aware correction
Phase 1 — MVP
Keyboard Layout Conversion
Kedmanee mapping table + hotkey trigger + clipboard-based text capture + JSON dictionary ที่เรียนรู้จากการใช้งาน
Phase 2 — Smart Detection
รู้เองว่าพิมพ์ผิดภาษา
วิเคราะห์ pattern ของ text ที่พิมพ์ — ถ้าเจอ EN characters ที่ไม่ใช่คำอังกฤษ แนะนำให้แปลงอัตโนมัติ + Thai spell checking
Phase 3 — AI-Powered
เข้าใจบริบท ทำนายล่วงหน้า
ใช้ AI ทำนายว่าผู้ใช้กำลังจะพิมพ์ผิดภาษา ก่อนที่จะพิมพ์เสร็จ + แก้ไขตามบริบทของประโยค
Target Metrics
เป้าหมายประสิทธิภาพของระบบ
≥3
Auto-replace Threshold
Key Takeaways
สิ่งที่ได้เรียนรู้จากการคิดโปรเจกต์นี้
ปัญหาเล็กที่ทุกคนชินชา = โอกาสที่ดี — การลืมเปลี่ยนภาษาเป็นเรื่องที่คนไทยเจอทุกวัน แต่ไม่มีใครคิดว่า "แก้ได้" เพราะชินกับการลบแล้วพิมพ์ใหม่ ถ้ามองปัญหาเล็กๆ ที่คนยอมรับว่าเป็นเรื่องปกติ จะเจอโอกาสสร้างเครื่องมือที่มีคุณค่า
1:1 Mapping ทำให้ปัญหาที่ดูยากกลายเป็นง่าย — ตอนแรกคิดว่าต้องใช้ NLP หรือ ML ซับซ้อน แต่พอวิเคราะห์จริงๆ Kedmanee layout เป็น 1:1 mapping ตรงๆ แค่ lookup table ก็แปลงได้ 100% — บทเรียนคือ "เข้าใจปัญหาให้ลึกก่อนคิดวิธีแก้"
Self-Learning ไม่ต้องซับซ้อน — Learning algorithm ที่ใช้คือ "นับจำนวนครั้ง" ง่ายมาก แต่ effective เพราะ pattern การพิมพ์ซ้ำของคนเป็น signal ที่ชัดเจน ไม่ต้อง neural network ก็สร้างระบบที่ "ยิ่งใช้ยิ่งเก่ง" ได้
Prototype ก่อน Production เสมอ — Python prototype ทำให้ validate idea ได้เร็วโดยไม่ต้องเรียนรู้ Swift + Accessibility API ทั้งหมดก่อน ถ้า prototype ใช้ได้ดี ค่อย invest เวลาทำ native app