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
460
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
920
APIドキュメント標準化現状確認 / standard api document
romiogaku
0
13k
Other Decks in Programming
See All in Programming
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
130
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
430
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
170
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
200
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.2k
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
270
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
230
Oxlint JS plugins
kazupon
1
950
Grafana:建立系統全知視角的捷徑
blueswen
0
330
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
Featured
See All Featured
sira's awesome portfolio website redesign presentation
elsirapls
0
150
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
The untapped power of vector embeddings
frankvandijk
1
1.6k
Prompt Engineering for Job Search
mfonobong
0
160
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
140
Exploring anti-patterns in Rails
aemeredith
2
250
Designing Powerful Visuals for Engaging Learning
tmiket
0
230
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
Tell your own story through comics
letsgokoyo
1
810
Designing for Performance
lara
610
70k
WCS-LA-2024
lcolladotor
0
450
Marketing to machines
jonoalderson
1
4.6k
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 ৄ͘͠ϒϩάʹ