Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Amazon Echoのウェイクワードをカスタマイズする / Customize Amaz...
Search
mat
January 15, 2019
Programming
0
450
Amazon Echoのウェイクワードをカスタマイズする / Customize Amazon Echo Wake Word
【とらのあな主催】オタクが最新技術を追うライトニングトークイベント2回目
https://yumenosora.connpass.com/event/115364/
mat
January 15, 2019
Tweet
Share
More Decks by mat
See All by mat
プリキュアハッカソン4 成果発表 / cure_hack4
romiogaku
0
910
APIドキュメント標準化現状確認 / standard api document
romiogaku
0
13k
Other Decks in Programming
See All in Programming
技術同人誌をMCP Serverにしてみた
74th
0
280
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
470
PHP 8.4の新機能「プロパティフック」から学ぶオブジェクト指向設計とリスコフの置換原則
kentaroutakeda
2
470
FormFlow - Build Stunning Multistep Forms
yceruto
1
190
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
330
ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化
knih
11
2k
XP, Testing and ninja testing
m_seki
3
170
deno-redisの紹介とJSRパッケージの運用について (toranoana.deno #21)
uki00a
0
140
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
170
Result型で“失敗”を型にするPHPコードの書き方
kajitack
4
270
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.3k
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
130
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Become a Pro
speakerdeck
PRO
28
5.4k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Agile that works and the tools we love
rasmusluckow
329
21k
Site-Speed That Sticks
csswizardry
10
660
Docker and Python
trallard
44
3.4k
Building an army of robots
kneath
306
45k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The World Runs on Bad Software
bkeepers
PRO
69
11k
Transcript
"NB[PO&DIPͷ ΣΠΫϫʔυΛΧελϚΠζ͢Δ NBU !SPNJPHBLV
λΠτϧΓͰ͢ ͝ΊΜͳ͍͞
ͱ͜ΖͰօ͞Μ
͖Ͱ͔͢ʁ
w ʮΞΠυϧ׆ಈʯΛςʔϚʹ ͨ͠ঁࣇ͚ίϯςϯπ w %$%ɺ57ΞχϝͰల։த w ݱࡏγϦʔζ࡞ʮΞΠΧπ ϑϨϯζʂʯ͕์өத
None
None
w ܶதϞόΠϧΞϓϦʮΞΠΧ πφϏʯͷΩϟϥΫλʔ w "*Ͱ͋Δ w ʮϋϩʔɺίίͪΌΜʯͱݺ ͼ͔͚ΔͱʮίίͩΑʂʯͱ ىಈ͢Δʢ$7ॾ͢ΈΕʣ w
͔Θ͍͍ ίίͪΌΜ
IUUQTCJUMZ'UK[ ʮίίͩΑʂʯ $7ॾ͢ΈΕ "MFYBɺΞΠΧπφϏ։͍ͯɺ ϋϩʔίίͪΌΜ ʮ͍ͬ͠ΐʹ"ŋ*ŋ,ŋ"ŋ5ŋ4ŋ6ʂʯNQ "MFYBɺΞΠΧπφϏ։͍ͯɺ Վͬͯ
Կ͔͕Γͳ͍ɾɾɾ
IUUQTCJUMZ'UK[ ʮίίͩΑʂʯ $7ॾ͢ΈΕ "MFYBɺΞΠΧπφϏ։͍ͯɺ ϋϩʔίίͪΌΜ ʮ͍ͬ͠ΐʹ"ŋ*ŋ,ŋ"ŋ5ŋ4ŋ6ʂʯNQ "MFYBɺΞΠΧπφϏ։͍ͯɺ Վͬͯ
ʮϋϩʔίίͪΌΜʯ ΛΣΠΫϫʔυʹ͍ͨ͠ʂ
None
None
"DUJPO#VUUPO
ͭ·Γ
"NB[PO&DIPͷ ΣΠΫϫʔυΛΧελϚΠζ͢Δ ʢཧʣ NBU !SPNJPHBLV
Ͳ͏ͬͯԡ͢ʁ
w 3BTQCFSSZ1J.PEFM# w ϥζύΠ༻ిݯ w 4%Χʔυ w 64#ϚΠΫ w
αʔϘϞʔλ
None
ԻೝࣝͲ͏͢Δʁ
ީิ +VMJVTʢϑϦʔͷԻೝࣝιϑτΣΞʣ Իೝࣝ"1*ʢ(PPHMFɺ.4͕ఏڙʣ 8FC4QFFDI"1*
+VMJVT w ຊମͱผʹԻڹϞσϧɾݴޠϞσϧ͕ೖͬͨجຊతͳσΟ ΫςʔγϣϯΩοτ͕͞Ε͍ͯΔ w σϑΥϧτͩͱೝࣝѱ͔ͬͨ w ೝࣝΛ্͛ΔͨΊʹಠࣗࣙॻ࡞ͬͯΈ͕ͨɺؔͳ ͍Իೝࣝ͞Εͯ͠·ͬͨ w
ͬͱྑ͍Γํ͕͋Δ͚ͣͩͲಓʹҳΕͦ͏ͩͬ ͨͷͰஅ೦
Իೝࣝ"1* w (PPHMFͷ$MPVE4QFFDIUP5FYU"1*Λࢼͨ͠ w ೝࣝਫ਼ߴ͍ w ࠷ॳແྉ͚ͩͲجຊతʹ͓͕͔͔ۚΔ w ৗ࣌ىಈͤ͞ΔͷͰ͙͢جຊ͑ͦ͏ɻஅ೦
8FC4QFFDI"1* w ϒϥβͰಈ࡞͢ΔʮԻ߹ʯͱʮԻೝࣝʯػೳ w ෦Ͱ(PPHMFͷԻೝ͕ࣝΘΕ͍ͯΔΒ͍͠ w ݱࡏ$ISPNFͷΈରԠ w (PPHMFͷσϞϖʔδ w
IUUQTXXXHPPHMFDPNDISPNFEFNPT TQFFDIIUNM
const recognition = new webkitSpeechRecognition(); recognition.continuous = true; recognition.lang =
"ja"; recognition.onresult = event => { for (let i = event.resultIndex; i < event.results.length; ++i) { if (event.results[i].isFinal) { const word = event.results[i][0].transcript; if (word === "ハローここちゃん") { // モーターを動かす為のなにかしらを行う } } } }; recognition.start();
αʔϘϞʔλΛϓϩάϥϜ͔Βಈ͔͢
w (PMBOHͰॻ͔ΕͨϩϘςΟΫεϑϨʔϜϫʔΫ w αʔόػೳ͕͋Γɺ"1*Խ͢Δ͜ͱ͕Ͱ͖Δ w ʮಛఆͷΤϯυϙΠϯτʹϦΫΤετ͕དྷͨΒαʔϘ ϞʔλΛಈ͔͢ʯͳΜͯ͜ͱ͕Ͱ͖Δ
adaptor := raspi.NewAdaptor() servo := gpio.NewServoDriver(adaptor, "12") //PWM0(18) work :=
func() { // 13 ~ 41 = 0度 ~ 180度 servo.Move(uint8(27)) //center gobot.After(1*time.Second, func() { servo.Move(uint8(35)) gobot.After(500*time.Millisecond, func() { servo.Move(uint8(27)) }) }) } robot := gobot.NewRobot("servoBot", []gobot.Connection{adaptor}, []gobot.Device{servo}, work, )
master := gobot.NewMaster() // Starts the API server on default
port 3000 server := api.NewAPI(master) server.Port = "3000" server.Start() servoEndpoint := master.AddRobot(robot) servoEndpoint.AddCommand("move", func(params map[string]interface{}) interface{} { reqParam := fmt.Sprintf("Params: %+v\n", params) robot.Start() return reqParam }) master.Start() http://localhost:3000/api/robots/servoBot/commands/move ͰϦΫΤετΛͪड͚Δ
None
αʔϘϞʔλΛ"MFYBʹݻఆ͢Δ
None
ʂ
IUUQTZPVUVCFIRS/@L;'6
ײ w *P5ॳΊ͚ͯͩͲҙ֎ͱ࡞ΕΔɺάάΕใͨ͘͞Μग़ͯ͘Δ w (PPHMFͷԻೝࣝͷޙʹ"NB[PO "MFYB ͷԻೝࣝͬͯͯ ΧΦε w ࡐΛίίͪΌΜʹ͓͔ͨ͛͠ͰϞνϕʔγϣϯ͕མͪͳ͔ͬͨ
w ʹࢥ͍͍ͭͯ࢝ʹϥζύΠങͬͯࣄ࢝Ίલʹͨ͠ w ͏Μ͏Μɺ͜Ε·ͨΞΠΧπʂͩͶ
IUUQTCJUMZ2.S"JX ৄ͘͠ϒϩάʹ