Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Amazon Chime SDK を用いて 音声通話機能をアプリに組み込む
Search
Kohei Ito
September 28, 2024
Technology
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Amazon Chime SDK を用いて 音声通話機能をアプリに組み込む
Izumo Developers' Guild #1 登壇資料
Kohei Ito
September 28, 2024
More Decks by Kohei Ito
See All by Kohei Ito
知識ゼロからAWS認定を全冠したときにもらった質問への回答集
zetton110
0
97
Other Decks in Technology
See All in Technology
Running Kotlin + Quarkus with Lambda
nealle
1
4k
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
専門領域のAIをどう評価するか
bengo4com
2
290
WasmをRustにする
sansantech
PRO
0
280
しろおびから始める!ログ活用の第一歩
shumei_ito
0
960
大型犬好きによるPugの紹介
yamanoku
1
160
Temporal 最高!でも改めて「日付」について調べたら人類の負債すぎる件
riyaamemiya
0
180
初海外で注意すべきこと12選!!!安全快適なre:invent生活にするために
yuuuuuuu168
1
180
S3 Filesで挑む! 八戸せんべい汁の食べ頃問題
usanchuu
0
120
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
5
1.3k
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
310
Featured
See All Featured
Side Projects
sachag
456
43k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
WENDY [Excerpt]
tessaabrams
14
40k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Automating Front-end Workflow
addyosmani
1369
210k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
520
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Transcript
Amazon Chime SDK を用いて 音声通話機能をアプリに組み込む 株式会社ヌーラボ 伊藤 浩平 Izumo Developers' Guild
#1 (2024.9.28)
自己紹介 • 名前 伊藤 浩平 • 所属 株式会社ヌーラボ サービス開発部 • 業務でやっていること
- プロジェクト管理ツール Backlog の Git ホスティング機能の開発 - ビジネスチャットツール Typetalk の保守/運用 • その他 - 島根県出雲市出身 - 子二人
Amazon Chime SDK について • Amazon Chime SDK について -
Amazon Chime の機能を部分的にアプリへ組み込むためのライブラリ - Amazon Chime と同じ通信基盤を利用できるため、信頼性が担保できる • できること - PSTN Audio - SIP Trunking - メッセージング - Web RTCとライブ文字起こし - PSTN Audio 付き WebRTC
Amazon Chime SDK について • ChimeSDKの公式デモアプリを使っている様子 S3、Amazon Transcribe(文字起こし)、Amazon Translate(翻訳)といった他の
サービスを組み合わせることで機能が拡張できる
Amazon Chime SDKをアプリへ組み込む ⚫技術検証でチャットツールに音声通話機能を追加したので紹介 - 本機能は社内のβ環境でのみ利用可 とりあえずデモ見せマス 画像生成プロンプト ”デモがあると嬉しいおじさん ”
システム構成(後ほど説明します)
処理の流れ (後ほど説明します)
1. 音声通話を実施する 2. 会議の状態変更をアプリへリアルタイムに伝える 1-①. 最寄りの Media Region を取得する 1-②.
Chimeへ会議データを作成(登録) 1-③. Chimeへ会議に紐づく出席者を作成(登録) 1-④. WebRTC Session を開始/切断する 1-⑤. 会議から出席者を削除する 以下に沿って各処理を説明します。
1. 音声通話を実施する 2. 会議の状態変更をアプリへリアルタイムに伝える 1-①. 最寄りの Media Region を取得する 1-②.
Chimeへ会議データを作成(登録) 1-③. Chimeへ会議に紐づく出席者を作成(登録) 1-④. WebRTC Session を開始/切断する 1-⑤. 会議から出席者を削除する 以下に沿って各処理を説明します。
1-① 最寄りの Media Region を取得する - フロントエンドから以下の公開APIを叩き、利用 者にとって最寄りのAWSリージョンを取得する <Media Regionとは>
Amazon Chime SDKがメディアデータを処理および転送するための 物理的なAWSリージョン - 利用者に地理的に近いメディアリージョンを指定することで、音 声やビデオ会議を行う際に、データの転送レイテンシを最小化 し、通信の品質を向上させる - 指定可能なリージョンは限定される https://nearest-media-region.l.chime.aws/ 1. 音声通話を実施する
1-② Chimeへ会議データを作成(登録) - CreateMeeting API を呼ぶ - リクエスト - ClientRequestToken:
- 一意のリクエスト識別子 - 各リクエストは異なる値を持つ必要あり - MediaRegion - 手順1-①で取得した値 - レスポンス - MeetingId - Chime で発行される 一意の会議ID 参考) Amazon Chime SDK API Reference - CreateMeeting 1. 音声通話を実施する
1-③ Chimeへ会議に紐づく出席者を作成(登録) - CreateAttendee API を呼ぶ - リクエスト - MeetingId
- 手順①-2で取得した値 - レスポンス - AttendeeId - Chime で発行される 参加者の一意の識別 子 - JoinToken - 参加者が会議に参加するためのトークン。ク ライアントアプリケーションで会議へのアクセ スを認証するために使用されます。 参考)Amazon Chime SDK API Reference - CreateAttendee 1. 音声通話を実施する
1-④ WebRTC Session を開始する - ChimeSDKのライブラリの作法に従えば簡単に セッションを開始できる (具体的な実装は割愛します。気になる方は参考のドキュメ ントを見てみてください。) -
ざっとした流れ - これまでに取得したデータをもとに MeetingSessionConfigurationを作成 - 入出力デバイス(マイク /スピーカー)と接続 - Meeetingセッションの開始 1. 音声通話を実施する 参考)amazon-chime-sdk-js APIOverview
1-⑤ 会議から出席者を削除する - DeleteAttendee API を呼ぶ - Request Syntax -
DELETE /meetings/MeetingId/attendees/AttendeeId HTTP/1.1 - URI Request Parameters - MeetingId : - 手順②で取得したID - AttendeeId: - 手順③で取得したID 1. 音声通話を実施する 参考)Amazon Chime SDK API Reference - DeleteAttendee
1-⑤ 会議から出席者を削除する - DeleteAttendee API を呼ぶ - Request Syntax -
DELETE /meetings/MeetingId/attendees/AttendeeId HTTP/1.1 - URI Request Parameters - MeetingId : - 手順②で取得したID - AttendeeId: - 手順③で取得したID 会議が24時間非アクティブであればChime側で自動的に削 除される (DeleteMeeting APIを呼べば会議の削除もできますが、今回は すぐに削除する必要もないため呼んでません) 1. 音声通話を実施する
Media Region Send media data ① Backend から ChimeSDKのAPIを叩き、 会議・出席者の登録を行う
② ①で帰ったデータをもとに、 Frontend からWebRTC Session を開始する 1. 音声通話を実施する
1. 音声通話を実施する 2. 会議の状態変更をアプリへリアルタイムに伝える 1-①. 最寄りの Media Region を取得する 1-②.
Chimeへ会議データを作成(登録) 1-③. Chimeへ会議に紐づく出席者を作成(登録) 1-④. WebRTC Session を開始/切断する 1-⑤. 会議から出席者を削除する 以下に沿って各処理を説明します。
2. 会議の状態変更をアプリへリアルタイムに伝える Event Bridge に Chime イベントを捕捉するルールを 追加し、それをトリガーにRedisを更新 Redis の
pub/sub+WebSocket で Frontend へ変更を伝播させシー ムレスに画面を更新する 今回はRedis使ってま すが、DynamoDB + DynamoDB Streams でやってもよさそうです
会議への参加(AttendeeJoin)/ 退出(AttendeeLeft) のイベントを契機にデータの更新処理を実行 2. 会議の状態変更をアプリへリアルタイムに伝える
まとめ ”Amason ChimeSDK はいいぞ🎵” - アプリへリアルタイムコミュニケーション機能を 簡単に実装できる - Amazon Chime
と同じ通信基盤を利用でき、信頼性が高い - AWS他サービスとの連携により機能の拡張性が高い