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
クラウドを活用した WebRTC コールセンターの最前線
Search
Kiminari Homma
September 17, 2016
Technology
3.3k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
クラウドを活用した WebRTC コールセンターの最前線
http://softlayer.connpass.com/event/34524/
での登壇スライド
Kiminari Homma
September 17, 2016
More Decks by Kiminari Homma
See All by Kiminari Homma
Twilio Meetup 東京 2022/11/11
honkimi
0
80
Twilio iOS 徹底攻略
honkimi
1
1.3k
2021年 Twilio Voice 報告
honkimi
0
370
WebRTC ビジネスの失敗と成功
honkimi
2
1.9k
最近の Twilio トレンド報告
honkimi
0
440
Twilio Meet Up
honkimi
0
98
利用ユーザーからみた Twilio の紹介
honkimi
0
110
Zendesk App を Heroku で作ってみた話
honkimi
0
190
国内における Twilio x Alexa
honkimi
0
820
Other Decks in Technology
See All in Technology
もう一度考える SRE チームの作り方・育て方 / Rethinking SRE #1: Building and Growing SRE Teams
rrreeeyyy
5
990
LangfuseによるLLMOps基盤の構築と活用事例
zozotech
PRO
1
290
第3回しろおびセキュリティスポンサーセッション
log0417
0
150
Atlassian Cloudサポート業務でのAIエージェント活用事例
smt7174
0
450
GitHub CopilotのFinOps- AI CreditのObservabilityと価値を生むためのエージェント設計
yuriemori
0
120
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
130
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
120
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
1
470
モバイルアプリ開発概論2026
recruitengineers
PRO
1
360
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
760
新しい SLO が良い感じにハマっている話
z63d
4
2.1k
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
130
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
58k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
980
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
190
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
350
So, you think you're a good person
axbom
PRO
2
2.1k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
480
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
66
57k
Visualization
eitanlees
152
17k
The browser strikes back
jonoalderson
0
1.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Transcript
ΫϥυΛ׆༻ͨ͠ WebRTC ίʔϧηϯλʔ ͷ࠷લઢ @kimihom
ຊؒ ߖ @kimihom CTO at selfree,llc TwilioJP-UG ϝϯόʔ CallConnect (ిαϙʔτΛ؆୯ʹ)
ϒϩά “ϘΫίί” ӡӦ https://www.callconnect.jp http://www.bokukoko.info/ Who am Iʁ
Goal “ίʔϧηϯλʔ” ʹ͍ͭͯࣝΛਂΊɺ WebRTC ͕ͲͷΑ͏ʹ׆༻͞Ε࣮ݱ͍ͯ͠Δͷ͔ Λཧղ͠ɺ࣍ͳΔ Cloud Innovation ͷώϯτΛ௫ΜͰ͍ͩͨͩ͘
Topic
Topic • ίʔϧηϯλʔͷྺ࢙ͱΈ • ίʔϧηϯλʔ ͱ WebRTC • WebRTC ίʔϧηϯλʔͷ࣮ྫ
• ऴΘΓʹ
Q. ͦͦి ͳͥͭͳ͕Δͷʁ
Ωʔϫʔυ “ަػ”
A B C ࢢہ൪ ަػ Ұൠి
A B C ࢢ֎ہ൪ ަػ Ұൠి
اۀͷઢిίʔϧηϯλʔΛ ߏங͍ͨ͠߹ʹɺ ిͷ ”γεςϜԽ” ͕ඞཁʹͳΔ
A: ݻఆి B: SIP ϑΥϯ C ࢢ֎ہ൪ IP-PBX ަػ PBX
(اۀަػ) ࣾ ࣾ֎
ࣾͰަػ(PBX)Λ࣋ͭ ϝϦοτ • ઢ௨(௨ྉͷઅ) • දి൪߸ • ઢసૹ • ͦͷଞίʔϧηϯλʔػೳ
(IP-PBX) σϝϦοτ • ઐ༻ PBX / αʔόʔ ͷ ߏங/ӡ༻͕ඞཁ
σϝϦοτΛղܾ͢ΔͨΊʹ ిަػΛ”Ϋϥυ”Խ
A B C Ϋϥυ PBX ަػ
Ϋϥυ PBX ͷϝϦοτ • ࣗࣾͰަػΛ࣋ͭඞཁ͕ͳ͘ͳΔ • ॳظίετɾݻఆࢿ࢈ͷෛ୲Λݮ • ಋೖεϐʔυ͕͍ •
ఆظతͳΞοϓσʔτ
ɹɹɹͷొ
A B C Ϋϥυ PBX ަػ
• Ϋϥυ PBX αʔϏεͱಉͷΈΛ API Ͱɹɹɹ ఏڙ͠ɺ։ൃऀ͕ࣗ༝ʹిγεςϜΛߏஙͰ͖Δ • ిγεςϜͷΈΛ Web
ٕज़ͷΈ Ͱ࣮ݱ ࠶ੜɺసૹɺԻɺอཹɺϓογϡૢ࡞ɺΩϡʔɾɾ • ిճઢ͕ෆཁ • νϟωϧͷ֓೦͕ͳ͍ Voice
ి ͱ Web ͷ͕֞ࠜແ͘ͳΓͭͭ͋Δ
Topic • ίʔϧηϯλʔͷྺ࢙ͱΈ • ίʔϧηϯλʔ ͱ WebRTC • WebRTC ίʔϧηϯλʔͷ࣮ྫ
• ίʔϧηϯλʔͷྺ࢙ͱΈ • ίʔϧηϯλʔ ͱ WebRTC • WebRTC ίʔϧηϯλʔͷ࣮ྫ • ऴΘΓʹ
WebRTC (Web Real-Time Communication)
WebRTC ͰͰ͖Δ͜ͱ • ి • Ի • ϏσΦ௨ • σʔλڞ༗
• ө૾৴ Ϣʔβʔઐ༻ϓϥάΠϯແ͠Ͱར༻Մೳ
σόΠεαʔόͱ (P2P) ܨ͕Δ εϚϗ ΞϓϦ PC ϒϥβ IP-PBX Web
αʔό SIP ϑΥϯ
A B C ަػ
WebRTC ίʔϧηϯλʔͷར • ి ͱ Web ͷ༥߹ • Chrome ͚ͩͰίʔϧηϯλʔΛ࣮ݱͰ͖Δ
> Ձ֨, ಋೖ༰қ, ߴػೳ • ి/ϏσΦ/νϟοτ “ΦϜχνϟωϧԽ”
WebRTC ͷ՝ • ༷͕ݻ·Γ͖Ε͍ͯͳ͍ • γάφϦϯάͷͨΊͷΈ • ωοτϫʔΫͷઐࣝ • Ϣʔβʔڥʹେ͖͘ґଘ
WebRTC ͷ՝ • ༷͕ݻ·Γ͖Ε͍ͯͳ͍ • γάφϦϯάͷͨΊͷΈ • ωοτϫʔΫͷઐࣝ • Ϣʔβʔڥʹେ͖͘ґଘ
3લͷ
WebRTC Ϋϥυ API * WebRTC ࠷৽ͷै * WebRTC ͷίΞ࣮Λ ҙࣝͤͣʹϦΞϧλΠϜ
αʔϏεΛߏஙͰ͖Δ SDK
• Ϋϥυ ”ίϛϡχέʔγϣϯ” API αʔϏε Ի௨ / SMS / ϏσΦ
/ νϟοτ / ௨ / ಉظ / IoT • Add-on Ͱ Watson ͱͷ࿈ܞ༰қ • ࢝Ί͔Βैྔ՝ۚ • શࠃͰษڧձͬͯ·͢ (Twilio-UG)
ैདྷਂ͍ઐੑΛཁͨ͠ “ίϛϡχέʔγϣϯͷٕज़” ͕୭Ͱ API Ͱ࣮ݱՄೳʹ Open Cloud Innovation
Topic • ίʔϧηϯλʔͷྺ࢙ͱΈ • ίʔϧηϯλʔ ͱ WebRTC • WebRTC ίʔϧηϯλʔͷ࣮ྫ
• ίʔϧηϯλʔͷྺ࢙ͱΈ • ίʔϧηϯλʔ ͱ WebRTC • WebRTC ίʔϧηϯλʔͷ࣮ྫ • ऴΘΓʹ
None
“ސ٬ରԠϝʔϧνϟοτͰे”ʁ ސ٬ຬΛٻ͢ΔͳΒ ిϚετɻ ϏδωεΛޭʹಋ͘ ”ث”ͱͳΔπʔϧΛࢦ͢ αʔϏεͷࢥ͍
• ࠃ།Ұͷશ SaaS ܕ WebRTC ίʔϧηϯλʔ • 5Ͱಋೖ/ӡ༻Մೳ • 14ແྉτϥΠΞϧ
• PC ిͱڞʹɺސ٬ใ௨ཤྺΛ Web ্Ͱཧ • ଞΫϥυαʔϏεͱͷ࿈ܞ
DEMO
WebRTC αʔϏεͷӡ༻ • iOS ະରԠ (ݱঢ় iOS Chrome Ͱར༻ෆՄ) •
ϢʔβʔڥΛνΣοΫ͢Δϖʔδ ඞਢ • ϔουηοτͷ࣭ • ωοτϫʔΫ (ଓঢ়ଶ, ಉ࣌ଓ, ཧ) • Ի࣭͕ѱ͍ͱ͍͏͍߹ΘͤΑ͘དྷΔ 98% ωοτϫʔΫϚΠΫͷଓෆྑʹΑΔͷ
Topic • ίʔϧηϯλʔͷྺ࢙ͱΈ • ίʔϧηϯλʔ ͱ WebRTC • WebRTC ίʔϧηϯλʔͷ࣮ྫ
• ίʔϧηϯλʔͷྺ࢙ͱΈ • ίʔϧηϯλʔ ͱ WebRTC • WebRTC ίʔϧηϯλʔͷ࣮ྫ • ऴΘΓʹ
WebRTC ͰԿ͔Λ࡞ΔͳΒɺ Chrome ݶఆʹ͢Δ͔ ΞϓϦݶఆʹ͠Α͏
WebRTC / WebSocket Λ͏ͳΒ ଓΛΒ͞ͳ͍Α͏ʹ Ajax Խ͠Α͏
WebRTC / WebSocket Λ͏ͳΒ ࠷৽ͷ HTML5 ٕज़ΛੵۃతʹऔΓೖΕΑ͏ ServiceWorker, Canvas, HistoryAPI,
File API, WebSpeech API, Device API…
εϚϗΞϓϦ ͕ͯ Web Խ͞Ε͍ͯ͘ Web ΞϓϦ͕ͯ εϚϗΞϓϦͷΑ͏ʹͳΔ
Cloud Innovation جຊٕज़ͷֵ৽͔Βੜ·ΕΔ ਐԽٕͨ͠ज़ͷΈ߹Θͤ ٕज़ͷ”Ҿ͖ग़͠”Λ૿͢͜ͱ͕ॏཁ
JavaScript! JavaScript! JavaScript! + Ϋϥυ API
ϔουηοτ ϓϨθϯτ Ωϟϯϖʔϯ ࣮ࢪதʂ ࠂ ϒʔεग़లதʂ ͜͜Λग़͙ͯ͢લ
Thanks.
ൃද͜͜·ͰͰ͢ɻ ҎԼɺ༧උεϥΠυ
Goal CallConnect ͷ࣮Λ௨ͯ͠ HTML 5 ͷ”ࠓ”ͱ”ํੑ”Λ͍͖ͬͯͨͩɺ ࣍ͳΔ Open Cloud Innovation
ΛੜΈग़͢ ͖͔͚ͬώϯτͱͳΔʹ͢Δ
Topic • ࠷৽ Web ςΫϊϩδʔͱͷ͖߹͍ํ • HTML 5 ςΫϊϩδʔͷ͝հ •
HTML 5 ͷࢦ͢ͱ͜Ζͷߟ
Topic • ࠷৽ Web ςΫϊϩδʔͱͷ͖߹͍ํ • HTML 5 ςΫϊϩδʔͷ͝հ •
HTML 5 ͷࢦ͢ͱ͜Ζͷߟ
None
ΫϩεϒϥβରԠ or HTML 5 ͷ࠷৽ςΫϊϩδʔ ͲͪΒʹ࣌ؒΛׂ͖͔͘ αʔϏε࣍ୈ
ϒϥβαϙʔτΛݶఆ͢Δ Chrome ݶఆΛ໌ه (Φεεϝ)
ϥϯσΟϯάϖʔδ ͷ UA
Topic • ࠷৽ Web ςΫϊϩδʔͱͷ͖߹͍ํ • HTML 5 ςΫϊϩδʔͷ͝հ •
HTML 5 ͷࢦ͢ͱ͜Ζͷߟ
͝հ͢Δ HTML 5 • WebRTC • WebSocket • History API
• Canvas • File API • Web Speech API • Web Notifications • Service Worker • Device API
WebRTC (Web Real-Time Communication)
P2P ͰσόΠεαʔόͱ ””ܨ͕Δ εϚϗ ΞϓϦ PC ϒϥβ PSTN Web αʔό
SIP ϑΥϯ
WebRTC ͰͰ͖Δ͜ͱ • ϏσΦ௨ • ి • Ի • σʔλڞ༗
• ө૾৴ Ϣʔβʔઐ༻ϓϥάΠϯແ͠Ͱར༻Մೳ
WebRTC • σόΠεͷϚΠΫ/ΧϝϥΛར༻ (UserMedia) • ϒϥβͰϦΞϧλΠϜ௨ (RTCPeerConnection) • ςΩετόΠφϦσʔλͷૹड৴ (DataChannel)
“୭ͱ"ଓ͢Δ͔Λࢦఆ͢Δ࣮ࣗͰ༻ҙ͠ͳ͚ΕͳΒͳ͍ “γάφϦϯά”
՝ ωΠςΟϒ࣮ͷෳࡶ͞ ωοτϫʔΫͷઐࣝ ଓͷͨΊͷઐ༻αʔόʔ ϒϥβґଘ ϢʔβʔͷϚΠΫ ڥ
͜͜·Ͱ 3લͷ
WebRTC ΫϥυαʔϏε • Twilio • SkyWay • Tropo WebRTC ࠷৽ͷै
WebRTC ͷίΞ࣮Λ ҙࣝͤͣʹϦΞϧλΠϜ αʔϏεΛߏஙͰ͖Δ SDK
// ॳظԽ Twilio.Device.setup(“Twilio Token”); // ॳظԽྃ࣌ Twilio.Device.ready(function (device) { console.log("ண৴Մೳ");
} // ண৴࣌ Twilio.Device.incoming(function (conn) { conn.accept(); // ௨։࢝ } // ௨։࢝࣌ Twilio.Device.connect(function (conn) { console.log("௨த"); }); ߦͷίʔυͰϦΞϧλΠϜ௨৴ػೳΛ࣮ݱʂ
DEMO UserMedia ͱ RTCPeerConnection
WebRTC αʔϏεͷӡ༻ • iOS ະରԠ (ݱঢ় iOS Chrome Ͱར༻ෆՄ) •
ϢʔβʔڥΛνΣοΫ͢Δϖʔδඞਢ • ϔουηοτͷ࣭ • ωοτϫʔΫ (ଓঢ়ଶ, ಉ࣌ଓ, ཧ) • Ի࣭͕ѱ͍ͱ͍͏͍߹ΘͤΑ͘དྷΔ 98% ωοτϫʔΫϚΠΫͷଓෆྑʹΑΔͷ
WebRTC ͷࠓޙ (͔ͳΓ׆ൃ) • ҆ఆɺηΩϡΞ • εΫϦʔϯڞ༗ • canvas
video ཁૉͱͷ༥߹ • ը
WebSocket
A: Hello A: Hello A B αʔόʔ͔ΒಛఆͷΫϥΠΞϯτ(B)ʹϝοηʔδΛૹ৴͍ͨ͠…
A: Hello WebSocket ϓϩτίϧ A B WebSocket ͰଓΛཱ֬
WebSocket • αʔόʔ/ϒϥβͷํσʔλ௨৴ • ςΩετ/όΠφϦͷૹड৴ • https ͱผͷ WebSocket ϓϩτίϧ
(wss) ͰଓΛཱ֬
WebSocket ͰͰ͖Δ͜ͱ(ྫ) • νϟοτ • ϦΞϧλΠϜ௨ • ڞ༗Ϙʔυ • Ϣʔβʔಉ࢜ͷ͋ΒΏΔίϥϘϨʔγϣϯ
՝ ωοτϫʔΫڥґଘ ϒϥβґଘ ଓͷͨΊͷ WS ༻αʔόʔ
WebSocket ΫϥυαʔϏε • Twilio • Node-RED • Milkcocoa • Firebase
• … ઐ༻αʔόෆཁ εέʔϧରԠ SDKͰ։ൃޮԽ
// ॳظԽ accessManager = new Twilio.AccessManager(data.token); messagingClient = new Twilio.IPMessaging.Client(accessManager);
// channel ͷऔಘ messagingClient.getChannel().then(initChannel); // channel ͷΠϕϯτ function initChannel(channel) { channel.on('messageAdded', function(message) { console.log(message); }); }
DEMO
WebSocket αʔϏεͷӡ༻ • PC ΛεϦʔϓͨ͠Γ͢Δͱଓ͕ΕΔ “ଓ͕Εͨɻߋ৽ͯ͠” ͱ͍͏දࣔΛඞͣೖΕΔ • اۀͷωοτϫʔΫڥʹҙ ϙʔϦϯάͷସͱΈ߹ΘͤΔඞཁ͋Γ
ແཧʹ WebSocket ΛΘͳͯ͘ɺ“ϖʔδߋ৽” Ͱ ղܾͰ͖ΔͳΒͦͷ΄͏͕͍͍ (χϡʔεܝࣔ൘ͳͲ)
WebRTC WebSocket Λ͏ͱ γϯάϧϖʔδΞϓϦέʔγϣϯ (SPA) લఏͱͳΔ SPA ͦͷଞͷཧ༝ Ϣʔβʔମݧ্
ωοτϫʔΫෛՙܰݮ εϚϗΞϓϦԽ
SPA ͷಛ • େྔͷΠϕϯτΛ JavaScript Ͱఆٛ • ϖʔδ͝ͱͷ js/css ͕ఆٛͰ͖ͳ͍
(Ұׅ) • Δ/ਐΉͷಈ࡞Λߟྀ
͜ΕΒΛఆͯ͠ߏங͞Εͨ SPA ϑϨʔϜϫʔΫ • React.js • AngularJS • Vue.js •
JS ϑϨʔϜϫʔΫͷ૪ઈ͑ͳ͍ɾɾɻ
History API
History API • ϢʔβʔͷϖʔδભҠΛ Stack ͰੵΈ্͛Δ • Δ/ਐΉ ΠϕϯτͷఆٛͰࢦఆ URL
/ ύϥ ϝʔλΛऔಘ • URL ʹԠͨ͡ϖʔδΓସ͑ࣗͰ࣮
// Stack ੵΈ্͛ History.pushState(option, title, url); // Stack มԽ࣌ͷΠϕϯτఆٛ History.Adapter.bind(
window, ‘statechange’, function() { let state = History.getState(); let url = state.cleanUrl; console.log(url) //=> /posts/1 // URL ʹجͮ͘ϧʔςΟϯά }); History.js Ͱͷ࣮ྫ
DEMO
History API ͷ࣮ • ࣗલͰ࣮Ͱಛʹ͘͠ͳ͍ • ΩϟογϡͷΈΛߏஙՄ • ࣗલ SPA
ͷ߹࠷ॳʹඞͣߟྀ͠Α͏
Web Notifications Service Worker
Web Notifications • ͍ΘΏΔ σεΫτοϓ௨ • ࠷ۙ௨ʹϘλϯΞΠίϯͳͲΛࡌՄ • ௨ΫϦοΫ࣌ͷಈ࡞Λఆٛ •
ServiceWorker ͱΈ߹ΘͤΔ͜ͱͰ εϚϗ௨Մ
Service Worker • όοΫάϥϯυͰಈ͘ JavaScript • ࠓॳΊ͘Β͍͔Β͞Ε࢝ΊΔ • ΦϑϥΠϯରԠ/Ωϟογϡ/ϓογϡ௨ ϓογϡ௨ͷཚ༻Ί·͠ΐ͏ʂ
// ServiceWorker ͷొ navigator.serviceWorker.register(‘/sw.js'); // ௨ൃߦ navigator.serviceWorker.ready.then(function(registration) { registration.showNotification('௨', {
icon: '/icon.png', body: name + 'ΑΓண৴͕͋Γ·͢ɻ', vibrate: [200, 100, 200, 100, 200, 100, 200] }); });
self.onnotificationclick = function(event) { event.notification.close(); event.waitUntil( clients.matchAll({ includeUncontrolled: true }).then(function(clientList)
{ for (var i = 0; i < clientList.length; i++) { var client = clientList[i]; if (client.url.match('myapp') && 'focus' in client) { return client.focus(); } } }); ); }; sw.js
DEMO εϚϗϓογϡ௨
File API
File API • ϑΝΠϧબυϥοά&υϩοϓ • JavaScript ͰϑΝΠϧऔಘɺૢ࡞
ϑΝΠϧૢ࡞ΛϑϩϯτΤϯ υͰղܾ αʔόʔෛՙͷԼ Ϣʔβʔମݧͷ্
ྫ) ը૾ΞοϓϩʔυͷྲྀΕ • ը૾Λυϥοά & υϩοϓ (File API) • ϑΝΠϧλΠϓͷνΣοΫ
(File API) • ը૾ͷϦαΠζ (Canvas) • Cropper.js Ͱॎԣൺͷௐ • ը૾αʔόΞοϓϩʔυ (CORS) શͯ JavaScript Ͱ࣮Մೳ
// imagefield dragover $(document).on("dragover", ".droparea", function(e) { e.preventDefault(); $(".droparea").addClass("hover"); });
// imagefield dragleave $(document).on("dragleave", “.droparea", function(e) { e.preventDefault(); $(".droparea").removeClass("hover"); }); // imagefield drop $(document).on("drop", ".droparea", function(e) { e.preventDefault(); var file = e.originalEvent.dataTransfer.files[0]; });
DEMO ࣮ํ๏”ݸਓϒϩά”ʹͯ
Canvas
Canvas • JavaScript Ͱඳ͚Δ 2D ඳըϥΠϒϥϦ • ௨ৗͷ HTML Ͱදݱ͠ʹ͍͘ͷΛॊೈʹ
දࣔͰ͖Δ
Canvas ≠ άϥϑΟοΫ/ήʔϜઐ จࣈɺਤܗɺΫϦοΫΠϕϯτ ͋ΒΏΔΞϓϦέʔγϣϯͰ ΑΓΘ͔Γ͍͢ UI Λ࣮ݱͰ͖Δ
Canvas ༻ϥΠϒϥϦ • Fabric.js • jCanvas • άϥϑΟοΫ/ήʔϜ༻Ͱͦͷଞଟ
DEMO
Canvas ͷ࣮ • ࠶ඳըͷͨΊʹ σʔλΛJSON ܗࣜͰอଘ͠ ࠶ݱ͢Δͷ͕࣮ͷࢁ (Fablic.js ඪ४ࡌ) •
px ୯ҐͳͨΊ ϨεϙϯγϒԽ͕͍͠ • ςΩετϘοΫεͳͲͷ HTML ϑΥʔϜຒΊ ࠐΈෆՄ
Web Speech API
Web Speech API • Chrome, Firefox ͷ࣮ݧஈ֊ͷػೳ • ϒϥβࡌ •
Text to Speech, Speech to Text • අ༻ 0 & ੍ͳ͠
• ਫ਼ׂͱߴ͍ • ݱঢ়్தͰউखʹจࣈى͕͜͠ࢭ·ͬͨΓ͢ ΔͨΊɺͣͬͱԻ͢ΔʹԿ͔͠ΒͷϋοΫ ͕ඞཁ • વ ͠૬खͷͳͲऔಘෆՄɻ ->
ͦͷ࣌ ͪΖΜ Watson Ͱɻ
// ॳظԽ let recognition = new webkitSpeechRecognition(); recognition.lang = 'ja-JP';
recognition.continuous = true; // ։࢝ recognition.start(); // ݁Ռ recognition.onresult = function(event){ let results = event.results; var message = ""; for (var i = event.resultIndex; i < results.length; i++){ message += results[i][0].transcript; } console.log(message); };
DEMO https://www.google.com/intl/ja/chrome/demos/speech.html
Web Speech API ͷར༻ • ձͷॻ͖ى͜͠Ͱᘳͳਫ਼ෆՄೳ • จΛܗ͢ΔΑ͏ͳٕज़ΛΈ߹ΘͤΔͱྑ͍
Device API
• ͋ΒΏΔใΛ ϒϥβͰऔಘ • Ґஔใɺ֤ηϯαใɺόοςϦɺόΠϒ • ϚΠΫग़ྗσόΠε …etc https://developer.chrome.com/apps/api_index
• Web ΞϓϦͷ ”εϚϗΞϓϦ” Խ • Web ΞϓϦΛ࡞Εɺ֤ϓϥοτϑΥʔϜʹ ґଘ͠ͳ͍αʔϏεΛల։Մ •
֤σόΠε, OS, ϒϥβͷରԠʹظ
Topic • ࠷৽ Web ςΫϊϩδʔͱͷ͖߹͍ํ • HTML 5 ςΫϊϩδʔͷ͝հ •
HTML 5 ͷࢦ͢ͱ͜Ζͷߟ
Cloud Innovation جຊٕज़ͷֵ৽͔Βੜ·ΕΔ ਐԽٕͨ͠ज़ͷΈ߹Θͤ
ٕज़ͷҾ͖ग़͠Λ૿͢
εϚϗΞϓϦ ͕ͯ Web Խ͞Ε͍ͯ͘ Web ΞϓϦ͕ͯ εϚϗΞϓϦͷΑ͏ʹͳΔ
JavaScript, JavaScript, JavaScript. + API
Thanks.