์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์™€ Bluemix์˜ IBM Watson API๋ฅผ ์ด์šฉํ•œ TJBot์„ ๋งŒ๋“ค์–ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

TJBot์€ Watson ์„œ๋น„์Šค๋ฅผ ๋ณด๋‹ค ์žฌ๋ฐŒ๊ฒŒ ์ ‘๊ทผํ•˜๊ณ  ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณต๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์ธ IBM Maker Kits์˜ ์ฒซ ๋ฒˆ์งธ DIY ํ‚ท ์ž…๋‹ˆ๋‹ค. 3D ํ”„๋ฆฐํ„ฐ์™€ ๋ ˆ์ด์ € ์ปท์œผ๋กœ ํ”„๋ ˆ์ž„์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„๋ฉด์„ ์ œ๊ณตํ•˜๊ณ , ๋‚ด๋ถ€์—๋Š” ๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด์™€ ์ฃผ๋ณ€ ๊ธฐ๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚ด ๋ง์„ ์•Œ์•„๋“ฃ๊ณ  ๋˜ ์Šคํ”ผ์ปค๋กœ ๋ฌธ์ž๋ฅผ ์ฝ์–ด ์ฃผ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ด€๋ จ ์ฝ”๋“œ๋Š” open source๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ž ๊ทธ๋Ÿผ TJBot์„ ๋งŒ๋‚˜ ๋ณผ๊นŒ์š”?

tjbot

TJBot์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ค€๋น„ํ•  ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

TJBot ์žฌ๋ฃŒ

  • ๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด 3
    ๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด ๊ตฌ๋™์„ ์œ„ํ•œ ์ „์› ์•„๋‹ตํ„ฐ ๋ฐ Raspbian Jessie Lite์ด ์„ค์น˜๋œ MicroSD๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • USB ๋งˆ์ดํฌ ๋ฐ ์Šคํ”ผ์ปค
    ๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด์—๋Š” ๋‚ด์žฅ ๋งˆ์ดํฌ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์Œ์„ฑ ์ธ์‹์„ ์œ„ํ•œ ๋งˆ์ดํฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  3.5 AUX ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•œ ์Šคํ”ผ์ปค๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ดํฌ์™€ ์Šคํ”ผ์ปค์˜ ๊ฒฝ์šฐ๋Š” ๋˜๋„๋ก ์†Œํ˜•์œผ๋กœ TJBot์— ๋งˆ๋ จ๋œ 50mm x 50mm x 50mm ๊ณต๊ฐ„์— ๋“ค์–ด๊ฐˆ ์ •๋„ ํฌ๊ธฐ๋ฉด ๋” ๊น”๋”ํ•˜๊ฒŒ ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ ์ €๋Š” ๋งˆ์ดํฌ์™€ ์Šคํ”ผ์ปค๊ฐ€ ํ†ตํ•ฉ๋œ USB ๋ฐฉ์‹์˜ ์ปจํผ๋Ÿฐ์Šค ์žฅ๋น„๋ฅผ ์ด์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ˜น์‹œ๋‚˜ Bluetooth ํ•ธ์ฆˆ ํ”„๋ฆฌ์žฅ๋น„๊ฐ€ ๊ฐ€์ง„ ๋งˆ์ดํฌ๋ฅผ ํ™œ์šฉ ํ•  ์ˆ˜ ์žˆ์ง€ ์•Š์„๊นŒ ํ•ด์„œ ์‹œ๋„๋ฅผ ํ•ด ๋ณด์•˜์œผ๋‚˜ ๊ฒฐ๊ตญ ์Œ์„ฑ Source ์žฅ๋น„๋กœ ์ธ์‹๋˜์ง€ ์•Š์•„์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
  • 3์ƒ‰ RGB LED – 1EA
    ํ•˜๋‚˜์˜ LED ์†Œ์ž์—์„œ 3๊ฐ€์ง€ ์ƒ‰์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” LED์ž…๋‹ˆ๋‹ค. ๋„ค์˜คํ”ฝ์…€(NeoPixel)์ด๋ผ๋Š” ์ œํ’ˆ์œผ๋กœ ๋ณดํ†ต์€ ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ๋ฌถ์–ด์„œ ๋ชจ๋“ˆ๋กœ ๋œ ์ œํ’ˆ์„ ํŒ๋งคํ•ฉ๋‹ˆ๋‹ค. TJBot์ด ์‚ฌ์šฉํ•˜๋Š” LED๋Š” WS2812์œผ๋กœ ํ•˜๋‚˜์˜ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ํ•€์— High/Low ์œ ์ง€ ์‹œ๊ฐ„์„ ์กฐ์ ˆํ•˜์—ฌ ์ƒ‰ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์ œ์–ด ๋ชจ๋“ˆ์ด ๋‚ด์žฅ๋œ LED์ž…๋‹ˆ๋‹ค.
  • ์†Œํ˜• ์„œ๋ณด ๋ชจํ„ฐ
    ๋ฏธ๋‹ˆ ์„œ๋ณด ๋ชจํ„ฐ๋กœ SG90 ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. TJBot ์ผ€์ด์Šค๊ฐ€ SG90์˜ ํฌ๊ธฐ์— ๋งž์ถฐ ๋งŒ๋“ค์–ด์ ธ ์žˆ์œผ๋ฏ€๋กœ ํ•ด๋‹น ์ œํ’ˆ๊ณผ ๋™์ผํ•œ ๊ทœ๊ฒฉ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ์„œ๋ณด ๋ชจํ„ฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Female-Female ์ ํ”„ ์ผ€์ด๋ธ” – 3EA
    ๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด์˜ I/O ์ปค๋„ฅํ„ฐ์™€ LED๋ฅผ ์—ฐ๊ฒฐํ•  ์ ํ”„ ์ผ€์ด๋ธ”์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์–‘์ชฝ ๋์ด Female ํƒ€์ž… ์„ธ ์ค„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์™€์ด์–ด์— ์–‘๋์— ํ•€์†Œ์ผ“ ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.
  • Male-Female ์ ํ”„ ์ผ€์ด๋ธ” – 3EA
    ๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด์˜ I/O ์ปค๋„ฅํ„ฐ์™€ ์„œ๋ณด ๋ชจํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•  ์ ํ”„ ์ผ€์ด๋ธ”์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•œ์ชฝ์€ Female ํƒ€์ž… ๋ฐ˜๋Œ€์ชฝ์€ Male ํƒ€์ž…์œผ๋กœ ์ด๊ฒƒ ์—ญ์‹œ ์„ธ ์ค„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • IBM TJBot Case
    3D ํ”„๋ฆฐํŠธ๋‚˜ ์นด๋“œ ๋ณด๋“œ ๋ ˆ์ด์ ธ ์ปท๋กœ ๋งŒ๋“  TJBot ์ผ€์ด์Šค์ž…๋‹ˆ๋‹ค. ์ด๊ณณ์—์„œ ๋„๋ฉด์„ ๋ฐ›์•„์„œ ์ž‘์—… ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ํŒ๊ต ์Šคํƒ€ํŠธ์—… ์บ ํผ์Šค์— ์œ„์น˜ํ•œ K-ICT Device Lab์„ ์ด์šฉํ•˜๋ฉด ๋ฌด๋ฃŒ๋กœ ๋ ˆ์ด์ ธ ์ปทํŒ… ์žฅ๋น„๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ€๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ๋””๋ฐ”์ด์Šค๋žฉ์ด ๋ณด์œ ํ•œ ์žฅ๋น„์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ TJBot ๋„๋ฉด์€ TJBot ์นด๋“œ ์กฐ๋ฆฝ์— ๋Œ€ํ•œ ๊ธ€์—์„œ ๊ณต๊ฐœ ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ์„ค์ •ํ•˜๊ธฐ

๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด๋Š” OS์ธ Raspbian์˜ ๊ฒฝ์šฐ๋„ Debian Linux ๊ณ„์—ด์—์„œ ํŒŒ์ƒ๋œ Embedded Linux๊ฐ€ ์‹คํ–‰๋˜๋Š” ์ผ์ข…์˜ Embedded PC๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ด์œ ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ ๋ฐ ํ‚ค๋ณด๋“œ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด์•ผ ๋ผ์ฆˆ๋ฒ ๋ฆฌ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  terminal์— ์ ‘์†ํ•ด TJBot์„ ์œ„ํ•œ ํ™˜๊ฒฝ ์„ค์ •์„ ์ง„ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ ์„ค์ •์„ ์œ„ํ•œ ์ค€๋น„๋ฌผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • HDMI ๋ชจ๋‹ˆํ„ฐ & ์ผ€์ด๋ธ”
    ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด๋Š” HDMI ์ถœ๋ ฅ๋‹จ์ž๊ฐ€ ์žˆ๊ณ  ์ด๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ PC๋ชจ๋‹ˆํ„ฐ๊ฐ€ ์•„๋‹Œ HDMI ์ž…๋ ฅ์„ ์ง€์›ํ•˜๋Š” TV์—๋„ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • USB ํ‚ค๋ณด๋“œ
  • ์ธํ„ฐ๋„ท ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ
    ์œ ์„  ์ผ€์ด๋ธ”์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์˜ ์ด๋”๋„ท ํฌํŠธ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด3์ธ ๊ฒฝ์šฐ ๋ฌด์„  ๋ชจ๋“ˆ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋ฌด์„  ํ™˜๊ฒฝ์ด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ด๋ฅผ ์ด์šฉํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋‹ˆํ„ฐ, ํ‚ค๋ณด๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์˜ ์ „์›์„ ๋„ฃ์œผ๋ฉฐ ๋ฆฌ๋ˆ…์Šค๊ฐ€ ์„ค์น˜๋œ PC์™€ ๊ฐ™์ด ๋ถ€ํŒ…์ด ๋ฉ๋‹ˆ๋‹ค. ๋ถ€ํŒ…์ด ์™„๋ฃŒ๋˜๊ณ  ๋‚˜๋ฉด ID, Password๋ฅผ ์ž…๋ ฅ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

ํ™”๋ฉด์— ID๋Š” pi ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” raspberry๋กœ ์ž…๋ ฅํ•˜์—ฌ ๋กœ๊ทธ์ธ ํ•ฉ๋‹ˆ๋‹ค.

๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด๋Š” ์˜๊ตญ์—์„œ ์‹œ์ž‘๋œ ํ”„๋กœ์ ํŠธ๋ผ USB ํ‚ค๋ณด๋“œ๋ฅผ ์—ฐ๊ฒฐํ–ˆ์„ ๋•Œ ์˜๊ตญ์‹ ํ‚ค๋ฐฐ์—ด์ด ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฐ์—ด์„ ์šฐ๋ฆฌ์—๊ฒŒ ์ต์ˆ™ํ•œ ๋ฏธ๊ตญ์‹ ์žํŒ์œผ๋กœ ๋ณ€๊ฒฝ์„ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

sudo raspi-config

๋ฐฉํ–ฅํ‚ค๋ฅผ ์ด์šฉํ•˜์—ฌ ์„ ํƒ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋‰ด๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ‚ค๋ณด๋“œ ๋ ˆ์ด์•„์›ƒ์„ ๋ณ€๊ฒฝ ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ˆœ์„œ๋Œ€๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

`4 Internationalization Options` -> `I3 Change Keyboard Layout` - `Generic 103-key (Intl) PC`

๊ธฐ๋ณธ์œผ๋กœ English (UK)๊ฐ€ ์„ ํƒ๋˜์–ด ์žˆ๋‹ค๋ฉด Other๋ฅผ ์„ ํƒํ•˜์—ฌ ๋‹ค์Œ ์ˆœ์„œ๋Œ€๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

`English (US)` -> `Other` -> `English (US)` -> `The default for the keyboard layout` -> `No compose key`

๋งŒ์•ฝ ๋ฌด์„  ๋„คํŠธ์›Œํฌ(์™€์ดํŒŒ์ด)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์„ ์ด์šฉํ•˜์—ฌ /etc/wpa_supplicant/wpa_supplicant.conf ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

๋ฌด์„  ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ์„ค์ • ์ •๋ณด๋Š” ๋ฌด์„  ๊ณต์œ ๊ธฐ (AP)์˜ ์„ค์ •์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์•„๋ž˜๋Š” ๊ณต์œ ๊ธฐ SSID๊ฐ€ “iptime”์ด๋ฉฐ ๋ณด์•ˆ ๋ฐฉ์‹์€ “WPA ๊ฐœ์ธ” ๊ทธ๋ฆฌ๊ณ  ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” “passw0rd”์— ๋Œ€ํ•œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
  ssid="iptime"
  psk="password"
  proto=RSN
  key_mgmt=WPA-PSK
  pairwise=CCMP
  group=CCMP
  auth_alg=OPEN
  id_str="work"
}

์ด์ œ ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ TJ๊ฐ€ ์‚ฌ์šฉํ•  ํŒจํ‚ค์ง€๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ์ค€๋น„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

sudo apt-get update
sudo apt-get dist-upgrade

์‹คํ–‰ Runtime์ธ Node.js 6.x๋ฅผ ์ด์šฉํ•˜๋Š”๋ฐ ๋‹ค์Œ ๋ช…๋ น์„ ์ด์šฉํ•˜์—ฌ node.js๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs

ํ˜น์‹œ ๋„คํŠธ์›Œํฌ๊ฐ€ ๋„ˆ๋ฌด ๋Š๋ฆฌ๊ฑฐ๋‚˜ ํ•˜๋Š” ์ด์œ ๋กœ node.js ์„ค์น˜๊ฐ€ ๋„ˆ๋ฌด ๋Š๋ฆฐ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด package๋ฅผ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์„œ ์„ค์น˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. wget์„ ์ด์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ๊ฐ€ ๋Š๋ ค timeout์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋ผ๋„ ๋‹ค์‹œ ์žฌ์ ‘์†ํ•˜์—ฌ ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋Š” ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

wget http://deb.nodesource.com/node_6.x/pool/main/n/nodejs/nodejs_6.9.2-1nodesource1~jessie1_armhf.deb
sudo dpkg -i nodejs_6.9.2-1nodesource1~jessie1_armhf.deb

๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ์˜ค๋””์˜ค CODEC์ธ ALSA(Advanced Linux Sound Architecture)์— ๊ด€๋ จ๋œ ๋ชจ๋“ˆ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

sudo apt-get install alsa-base alsa-utils libasound2-dev

TJBot ์†Œ์Šค์ฝ”๋“œ ๋‹ค์šด๋กœ๋“œ

์†Œ์Šค์ฝ”๋“œ๋Š” https://github.com/ibmtjbot/tjbot์—์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

git clone https://github.com/ibmtjbot/tjbot.git

git์—์„œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œ ํ•œ ๊ฒฝ์šฐ speech_to_text ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ node module ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

cd ~/tjbot/recipes/speech_to_text
npm install

Bluemix Watson Speech to Text API ์„ค์ •

Speech to Text ์„œ๋น„์Šค๋Š” ์Œ์„ฑ ์ •๋ณด๋ฅผ ์ธ์‹ํ•˜์—ฌ Text๋กœ ๋ณ€ํ™˜ํ•ด ์ฃผ๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

Bluemix Catalog์˜ Watson ์„œ๋น„์Šค์—์„œ Speech to Text๋ฅผ ์„ ํƒํ›„ ๊ธฐ๋ณธ ํ”Œ๋žœ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
watson_catalog

stt_catalog

์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด Speech to Text์— ๋Œ€ํ•œ ๋Œ€์‹œ๋ณด๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

stt_dashboard

๋Œ€์‹œ ๋ณด๋“œ ์ค‘ ์„œ๋น„์Šค ์‹ ์ž„ ์ •๋ณด ํƒญ์—์„œ ์„œ๋น„์Šค ์‚ฌ์šฉ์„ ์œ„ํ•œ ID/Password ์ •๋ณด๊ฐ€ JSON ํ˜•์‹์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋ฅผ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด์— ๋ณต์‚ฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ž˜ ๊ธฐ์–ตํ•ด ๋‘ก๋‹ˆ๋‹ค.

stt_credential

์ด์ œ ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด๋กœ ๋˜๋Œ์•„ ๊ฐ€์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด recipe/speech_to_text/config.js ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ์•ž์„œ Watson API์˜ credential ์ •๋ณด๋กœ ์—…๋ฐ์ดํŠธ ํ•ฉ๋‹ˆ๋‹ค.

cd ~/tjbot/recipes/speech_to_text
nano config.js

๋ผ์ฆˆ๋ฒ ๋ฆฌ ํŒŒ์ด ๋™์ž‘ ํ…Œ์ŠคํŠธ

์ด์ œ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ์†Œ์Šค๊ฐ€ ์ •์ƒ ๋™์ž‘ ํ•˜๋Š”์ง€ ํ™•์ธ ํ•ด ๋ณผ ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

tjbot/recipes/speech_to_text ํด๋”์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์ด์šฉํ•˜์—ฌ ์Œ์„ฑ ์ธ์‹์ด ์ž˜ ๋™์ž‘ํ•˜๋Š” ์ง€ ํ™•์ธ ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

sudo node stt.js

์ •์ƒ ๋™์ž‘ํ•˜๋Š” ๊ฒฝ์šฐ ์ธ์‹๋œ ๋ฉ”์‹œ์ง€๊ฐ€ Text๋กœ ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

tjbot_stt_console

๋‹จ, ํ˜„์žฌ๋Š” ์˜์–ด๋กœ ์ธ์‹๋˜๋ฉฐ, ํ•œ๊ตญ์–ด๋Š” Watson์ด ํ•œ๊ตญ์–ด ๋ฐฐ์šฐ๊ธฐ๋ฅผ ๋งˆ์น˜๋Š” ๋‚ด๋…„ ์ดˆ์— ๊ฐ€๋Šฅํ•ด ์งˆ ์˜ˆ์ •์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋•Œ๋Š” TJBot๋„ ํ•œ๊ตญ์–ด๋ฅผ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๊ฒ ์ฃ ?

TJBot ์ผ€์ด์Šค ์กฐ๋ฆฝ

TJBot ์ผ€์ด์Šค๋Š” ์นด๋“œ๋ณด๋“œ TJBot ์กฐ๋ฆฝํ•˜๊ธฐ๊ณผ TJBot Out of Cardboard ๋งํฌ๋ฅผ ํ†ตํ•ด ํ™•์ธ ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ตฌ๋งคํ•ด ๋‘์—ˆ๋˜ TJ์— ๋‹ฌ์•„ ๋†“์€ Servo์™€ LED๋ฅผ GPIO ๋ชจ๋“ˆ์„ ์ด์šฉํ•˜์—ฌ ์›€์ง์—ฌ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ