” เมื่อโลกเปลี่ยน เราก็ต้องเปลี่ยน เทคโนโลยีเกิดขึ้นใหม่ทุกวัน “
~คิดเอง คิดสด 55
จะพิมพ์อะไรเนี่ย 55555 เกือบเท่แล้วเชียว แต่ ชั่งมันเถอะ มาเข้าเรื่องเราดีกว่า
สิ่งที่ผมจะมาทำในวันนี้คือ บอกเลยจะเร็วเกินไปงั้นขอเล่าหน่อย 555 ตอนผมเป็นเด็กๆผมได้ดูหนังเรื่อง Iron man แล้วก็เลยมีความฝันว่าในอนาคตผมจะต้องสร้างระบบที่สามารถพูดคุยตอบโต้กับเราได้ ดังนั้นวันนี้ผมจะมาสอนเพื่อนๆทำบอทแบบฉลาดน้อย ที่อยู่ในบ้านเหมือนเป็น J.A.R.V.I.S ในหนังเรื่อง Iron man แต่ JARVIS ในเรื่องก็ไม่ได้ฉลาดน้อยนะ 5555
สิ่งที่ผมมีคือ Labtop [Ubuntu 16.04] 1 เครื่อง เท่านั้น ภาษาที่จะใช้เขียนคือ ภาษา Python 3.5.2 และต้องขอเสนอเครื่องมือที่จะช่วยเราครั้งนี้นั่นก็คือ
Snowboy, a Customizable Hotword Detection Engine
Snowboy คือ โมดูลที่ช่วยในการจับคำพูดของเราแบบเรียลไทม์ และรอฟังเราอยู่ตลอดเวลา มีคำที่ควรรู้จักก็คือ Hotword แล้ว Hotword คืออะไรหล่ะ จริงๆแล้วมันก็เหมือนกับเสียงปลุก เสียงเรียก ซึ่งจะเป็นคำสั้นๆซึ่งเมื่อระบบได้ยินแล้วจะนำไปทำอะไรบางอย่างต่อไป ยกตัวอย่างระบบที่ใช้ hotword ก็เช่น “Alexa” ของอเมซอน, “OK Google” ของกูเกิ้ล และ “Hey Siri” ของไอโฟน hotword เมื่อเราเรียกไปแล้วก็จะทำให้ไปทริ๊กให้บอทตื่นขึ้นมาคุยกับเรา แต่จริงๆแล้วมันก็ขึ้นอยู่ว่าเราเขียนโปรแกรมไว้ยังไง
แล้วทำไมเราไม่ใช้ ASR (Automatic Speech Recognition) ในการหา hotword หล่ะ นั่นก็เพราะว่าการใช้ ASR นั้นจะใช้ bandwidth เปลืองมาก และบางทีอาจจะไม่ปลอดภัยถ้ามันอยู่บน Cloud-based แต่ Snowboy ตัวนี้ จะตอบโจทย์นี่มาก เพราะเป็นแบบ Offline
ข้อดีของ Snowboy มันดียังไง?
- ปรับแต่งเองได้ : snowboy นั้นให้เราไปเพิ่ม hotword ของเราเองได้ เช่น “เปิดประตูบ้าน”, “เจ้ากระจกวิเศษ”, “เปิดไฟ” โดยทีมพัฒนาเค้าบอกว่า “If you can think it, you can hotword it!” หมายความว่า ถ้าคุณคิดได้ ก็ทำเป็น hotword ได้
- คอยฟังตลอดเวลาแต่ปลอดภัย : ที่เป็นแบบนี้ เพราะว่า snowboy นั้นไม่ต้องต่อ internet หรือ stream voice ของเราไปให้ใคร
- มีขนาดเล็ก : สามารถนำไปใส่อยู่บน raspberry pi ได้ กิน cpu ไม่เกิน 10%
- Apache licensed!
Name | CPU | CPU Usage | RAM Usage |
---|---|---|---|
RPi 1 | single-core 700MHz ARMv6 | <10% | Python: < 15MB C: < 2MB |
RPi 2 | quad-core 900MHz ARMv7 | <5% | |
RPi 3 | quad-core 1.2GHz ARMv8 | <5% | |
RPi Zero | single-core 1GHz ARMv6 | <5% | |
Macbooks | Intel Core i3/5/7 | <1% |
ตอนนี้ที่ Snowboy Supports มี
- Raspberry Pi ทุกเวอร์ชั่น (Raspbian based)
- 64bit Mac OS X
- 64bit Ubuntu (12.04 และ 14.04) [แต่ผมใช้ 16.04]
- iOs
- Android with ARMv7 CPUs
- Pine 64 with Debian Jessie 8.5
- Intel Edison with Ubilinux
แต่น่าเสียดายที่ ไม่ support windows os
ในบทความหน้าผมจะมาแนะนำวิธีการติดตั้งและใช้งานเจ้าตัว Snowboy กันนะครับ