2026 · River Park Innodigital · client project
Thai Sign Language translator ระบบแปลภาษามือไทย
Two-way AI translation: signs to Thai text, Thai text to a signing avatar แปลสองทิศทางด้วย AI: ท่ามือเป็นข้อความไทย และข้อความไทยเป็นอวตารทำท่ามือ
- Company project for a Thai public university — internal reposงานบริษัทสำหรับมหาวิทยาลัยรัฐ — repo ภายใน
-
แปลภาษามือไทย Public app that runs on this AI stack (app UI by the mobile team)แอปที่เปิดใช้จริงบน AI stack นี้ (ตัวแอปทำโดยทีม mobile)
- App Store ↗
- Google Play ↗
- Problemโจทย์
- Thai Sign Language has its own grammar and almost no public data. The recognizer has to work for signers it has never seen, and production runs on CPU-only servers. ภาษามือไทยมีไวยากรณ์ของตัวเองและแทบไม่มีข้อมูลสาธารณะ ตัวจำท่าต้องใช้ได้กับคนที่ไม่เคยอยู่ในชุดเทรน และเซิร์ฟเวอร์ production มีแค่ CPU
- Approachวิธีทำ
- Recognition — a 1.21M-parameter Transformer over MediaPipe landmarks (the server never sees video), a 1,000-word vocabulary, and an ensemble exported to ONNX; feature changes were tested on held-out signers with paired significance tests, and dead ends were logged as NO-GO. Language — Gemma-3-12B fine-tuned with QLoRA to translate Thai ⇄ sign gloss in one model, on 2,038 pairs built with sign-language teachers (818 teacher-reviewed), served on vLLM. Serving — a gRPC orchestrator on a multi-process cluster, plus a Sign RAG that maps each sentence to a 1,012-word avatar motion library in about 0.6 ms; an LLM rescorer stayed off after held-out tests showed it broke more than it fixed (28 vs. 26). Data — teacher review, guided recording, and Editor → Verify → teacher tools, including a consent-and-QC portal for collecting test clips from new signers. จำท่ามือ — Transformer ขนาด 1.21M พารามิเตอร์บน MediaPipe landmarks (เซิร์ฟเวอร์ไม่เคยเห็นวิดีโอ) คลังคำ 1,000 คำ และ ensemble ที่ export เป็น ONNX ทุกการเปลี่ยนฟีเจอร์ทดสอบกับผู้แสดงที่กันไว้ด้วยสถิติแบบจับคู่ และบันทึกทางตันเป็น NO-GO ภาษา — fine-tune Gemma-3-12B ด้วย QLoRA ให้แปลไทย ⇄ gloss ภาษามือในโมเดลเดียว จากข้อมูล 2,038 คู่ที่สร้างร่วมกับครูภาษามือ (ครูตรวจแล้ว 818 แถว) และ serve บน vLLM ระบบให้บริการ — gRPC orchestrator แบบ multi-process cluster พร้อม Sign RAG ที่จับคู่ประโยคกับคลังท่าอวตาร 1,012 คำในเวลาประมาณ 0.6 ms ส่วน LLM rescorer ปิดไว้เพราะทดสอบกับชุดกันไว้แล้วทำพังมากกว่าแก้ได้ (28 ต่อ 26) ข้อมูล — เครื่องมือให้ครูตรวจท่า อัดคลิปแบบมีไกด์ และวงจร Editor → Verify → ครู รวมถึง portal ที่มีขั้นตอนยินยอมและ QC สำหรับเก็บคลิปทดสอบจากผู้แสดงใหม่
- Resultผลลัพธ์
- On 31 signers the model never saw (2,336 quality-checked clips, 588 words): 73.5% top-1 and 91.3% top-5. On two professional interpreters outside the training set (1,200 clips, 300 words): 86.8% top-1 and 95.4% top-5. One 16-core CPU server held 100 concurrent camera streams at 1,084 frames/s, p50 102 ms, with zero errors over five minutes. The translation LLM serves 68.4 requests/s at 96 concurrent and scores 62.4% strict exact match against teacher references on 468 held-out rows. กับผู้แสดง 31 คนที่โมเดลไม่เคยเห็น (2,336 คลิปที่ผ่าน QC, 588 คำ): ถูกอันดับ 1 ที่ 73.5% และอยู่ใน 5 อันดับแรก 91.3% กับล่ามอาชีพ 2 คนที่ไม่อยู่ในชุดเทรน (1,200 คลิป, 300 คำ): 86.8% และ 95.4% เซิร์ฟเวอร์ CPU 16 core เครื่องเดียวรับกล้อง 100 สตรีมพร้อมกันที่ 1,084 เฟรม/วินาที p50 102 ms ไม่มี error ตลอด 5 นาที ส่วน LLM แปลภาษารับได้ 68.4 คำขอ/วินาทีที่ 96 คำขอพร้อมกัน และตรงกับคำตอบของครูทุกตัวอักษร 62.4% บนชุดกันไว้ 468 แถว
- PyTorch
- MediaPipe
- ONNX Runtime
- Gemma 3
- QLoRA
- vLLM
- gRPC
- FastAPI
- Docker
- three.js