PHPで作って学ぶリアルタイム音声対話AIとWebSocket入門 by ムナカタ
by
ムナカタ
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
PHPで作って学ぶ リアルタイム音声対話AIと WebSocket入門 2026/07/20 PHPカンファレンス2026 ムナカタ
Slide 2
Slide 2 text
自己紹介 名前:ムナカタ 所属:KIYOラーニング株式会社 役割:Webエンジニア / 技術広報 ・教育系のプロダクトの開発をしています ・カンファレンス初登壇 @kata_kata_1478
Slide 3
Slide 3 text
音声でLLMとやりとりしたい! ● テキスト形式でLLMとやりとりする仕組みは、APIの普及で簡 単に作れるようになった ● 音声でのやりとりをアプリケーションに組み込むにはどうす るか? 👉 もちろんAPIがあった
Slide 4
Slide 4 text
OpenAI Realtime APIとは ● OpenAIが提供する、リアルタイムに音声を入出力できるAPI ● 最新モデル「gpt-realtime-2.1」により、自然で低遅延な Speech-to-Speechの会話を実現できる
Slide 5
Slide 5 text
リアルタイム音声対話で必要なこと 双方向通信 → 低遅延で自然にリアルな会話を実現したい 発話区間と割り込みの検知 → ユーザーが話し終えたタイミングを判断し、適切なタイミング で応答を開始したい 対話状態の管理 → 「待機中」「聞き取り中」、「発話中」などの状態を管理した い
Slide 6
Slide 6 text
OpenAI Realtime APIの主要なレスポンスとパラメー タ 発話区間や割り込みを検知すること 返答タイミングの調整や声色の設定などは可能
Slide 7
Slide 7 text
PHPで音声AIをWebアプリに組み込んでみる ● リアルタイムな音声通信にWebSocketを使用。 ○ 音声や会話データはPHPサーバーで処理 ● マイク入力と音声出力は、JavaScriptのブラウザ標準機能を使用
Slide 8
Slide 8 text
できたもの
Slide 9
Slide 9 text
通信の流れ
Slide 10
Slide 10 text
WebSocketとは ● ブラウザとサーバーを接続したまま、双方向にデータを送受信できる 通信プロトコル ● 接続先には ws://(暗号化なら wss://) ● 音声チャットのようにデータを継続的にやり取りする用途に向いている
Slide 11
Slide 11 text
PHPでWebSocketをどう扱うか ● PHP-FPM構成でWebSocketのような長時間接続を多数、効率よく処理す るには、工夫が必要 ● 別で常駐プロセスを動かし、1つのプロセスで複数の接続を効率よく処 理できる仕組みを使う。 ● PHPでは、ReactPHPやAMPHPなどの非同期ライブラリ、Workermanなどの アプリケーションサーバー/フレームワーク、OpenSwooleなどの拡張 機能が使える
Slide 12
Slide 12 text
コード LLM側の設定
Slide 13
Slide 13 text
コード WebSocketへの接続(amphpを使用)
Slide 14
Slide 14 text
まとめ ・音声対話処理はAPIを使ってシンプルに実装できる ・返答のタイミングや通信制御に工夫が必要 ⚠ 注意 ・音声トークンのコストはチャットに比べて8倍 高い ・ご利用は計画的に!
Slide 15
Slide 15 text
ご清聴ありがとうございました