來去西雅圖 AT&T IoT 黑客松插旗!

Ivan Chang
Maker Cup

--

見證冠軍隊伍的誕生

話說我們團隊之前一個來自交大實習生 Adwin 去了美國深造,不久前在美國參加了一場黑客松,沒想到第一次參加就默默地給他拿了冠軍阿~!! 於是這位扮豬吃老虎又非常有新手運的台灣同學就很有心的寫了一篇美國黑客松開箱文跟各位分享! — 愛文西門(Sivann Inc.)

2016 Jul AT&T IoT Hackathon Seattle Winner!

今年(2016)七月底參加 ATT developer group、Nuance Mix 及 Scaphold.io 合辦的黑客松,當初抱著觀摩的心態參加。這次規模約 60 人,12 組。流程是兩天,第一天的晚上六點開始至隔天晚上六點給 pitch。中間穿插 Nuance Mix 和 Scaphold.io 的 workshop。規則上是題目要跟物聯網有關,獎項有大會獎以及 Nuance 和 Scaphold.io 各再頒一個獎。

由於大部分人應該都是現場來找組員,一開始主辦單位就請大家上台自願給pitch,大部分上去講的人都會描述自己有的技術或 idea,並講自己再找哪些隊友, 我認為是滿有效率的找組隊方式。我上去稍微膨脹自己一下,敘述我帶了透過藍芽連過各個 BLE sensors 模組(Sivann inc. ),然後我的想法是結合Nuance Mix 的語音介面,做 IoT 的應用。

sivann BLE module set

因為我現在研究所是在做機器學習(ML)和自然語言處理(Natural Language Processing),所以我只對 Nuance 的 workshop 有興趣,workshop 主要是講如何用 Raspberry Pi 連他們的 server,以及 server 上的客製化設定(Raspberry Pi 上是寫Python)。

我們的團隊成員

底下是我們這組的合照,右至左分別是一個微軟資深PM — Jack, 17歲社區大學大一主修 CS 學生 — Marshall、UW EEMS — Melody、我、UW PHD — Chintan。除了大會提供的 Nuance Mix 語音辨識服務和 Raspberry pi 3,微軟PM 這個叔叔帶了 Particle sensors、360 degree camera、Segway MiniPRO 等等硬體零件來參加比賽。

我們的題目

經過一晚討論,我們決定把這些技術整合並且訂下題目:

Robosample is to replace manpower, reduces costs and increases accuracy for activities like HVAC installation surveys, retail and warehouse inventory auditing and visual quality assurance.

大致上是把 sensor 和攝影機放在 Segway 上,並以語音當作操控介面。應用情景像是:

  1. 機器人可以自動移動去搜集室內的溫度,並回報給室內的溫控中心當參考資料做調控。
  2. 經理可以用語音遠端操控機器人,利用 360 degree 攝影機巡視工廠或店鋪過程:Segway MiniPRO 是用 Ninebot 這個 Android App 去控制,沒有提供軟體 API,所以我們決定去 root 一台 Android 手機,再用程式去模擬觸控。由於我們想做「前、後、左、右、旋轉」的語音指令可以對應到 Segway MiniPRO 選轉的動作,我們先把這幾個動作所需要的觸控軌跡錄下來,並搭配語音指令做對應。

Nuance Mix 的語音辨識是可以在 server 上客製化和設定 intent。以下是Nuance.nlp 對 intent 的解釋:

An intent represents an action or domain available within your device. Samples are sentences or phrases a user might say. At first, you have to teach Mix.nlu how to classify and map sample sentences to intents. With enough samples, Mix.nlu will start to recognize language patterns so it can automatically understand new samples it’s never seen before. This is the power of natural language understanding.

所以當我們有「left、right、forward 和 turn around」四個 intent,這些intent 都是預期 client 會說的句子,而每一個句子我們將在解構並賦予不同的 concept,每一個 concept 是一個變數。

譬如說,假設我麼有一句話:「go forward 3 meters」,那麼可以加一個concept 叫作「direction」,developer還可以在 concept 裡設定哪些句子適合推類的這一個 concept,於是 forward、straight 都會被那個 concept 理解成 direction。

在上述句子中,可以另加兩個 concept 分別叫做 distance 和 distance unit,句子裡的「3」就可以add concept到「distance」,設定成 distance 這個變數數值為 3,而 meters 則可以加到 distance unit 這個 concept 裡面,被理解成一個單位。

Nuance 會依據我麼附加在 intent 上的 concept 把一個句子拆解,並分類把對應的變數設值。在同一個 intent 裡面,developer 也可以在加入不同的句子適合推類的同一個 intent,像 left 這個 intent,我們就放了 please turn left、go left 5 seconds、turn left、go left、left 等等的句子。

以下有附上 demo 影片,現場 demo forward 和 turn around 的兩個指令:

Presentation:

獲勝原因?

我覺得獲勝的原因有幾個:

  1. 語音控制接上機器人旋轉很吸睛,給評審很深印象
  2. 由於時間只有24小時,一開始決定好題目後,就盡力完成它。中間其實歷經滿多次有隊友換做其他題目,但我們還是堅持原本的計畫。
  3. 幸好 demo 有成功。
  4. 我們的 team 和別人不一樣的點在於我們隊伍裡有個 PM,他有很好的領導力和溝通能力,以至於決策和討論的時間我們都進行得很有效率,分工也讓大家都滿意。Present 時在短短的時間,把功能、潛力和未來都很充分描述。

最有價值學到的東西是敢吧,從一開始的 pitch、找隊友、想題目的腦力激盪及開發上的討論,都是需要一直表達意見!有些 team 感覺做得很酷,但很可惜是幾乎都用工程師思維,八個工程師上台報告第一句話是說他們的程式還沒打完,直接冷場,這分明是可以不用在報告時提的東西(即使真的沒做完,我覺得盡量先講自己已經完成哪些功能並且 demo 比較妥當)。另外,認識不同的人,建立之後找工作的人脈,練習溝通和說服的能力是這次活動很有價值的收穫。

聯絡方式及相關連結

News:
goo.gl/0bmeZI

我的Linkedin:
https://www.linkedin.com/in/adwin-jahn-a93b66aa

e-mail:adwin555@uw.edu
隊友 Melody 的 e-mail:yhsu83@uw.edu

--

--

Ivan Chang
Maker Cup

A passionate normal guy with 10+ years experience in IoT, RF, and Wired/Wireless Testing. Now a dedicated advocate for timing sync and network emulator.