はじめに
生成AIの技術革新が進む中、音声インターフェースの活用が注目されています。特に、ハンズフリーでの情報取得は業務効率化に貢献すると考えられます。本記事では、社内AIツール開発の一環として取り組んだ「音声で質問し、ChatGPTとGeminiがリアルタイムで音声回答するシステム」の開発経緯や技術的課題、今後の展望について詳しく紹介します。
開発の背景
近年、生成AIの進化が著しく、ChatGPTやGeminiなどの技術が急速に普及しています。その中で、ハンズフリーでAIを活用し、効率的に情報を取得できる仕組みの必要性を感じました。
そこで開発したのが、「音声で質問すると、ChatGPTとGeminiがリアルタイムで音声で回答してくれるシステム」 です。本システムにより、文字入力が苦手な方や作業中のユーザーが、より直感的にAIと対話できるようになります。
アプリの概要
本システムでは、ユーザーが音声で質問を行うと、以下の流れで処理が進みます。
- リアルタイムで音声をストリーミング送信
- ChatGPTとGeminiがそれぞれ回答を生成
- 生成された回答を音声化して返答
主な機能
- 音声入力 :ユーザーが音声で質問可能
- リアルタイム処理 :ストリーム形式でデータを送信し、即座にAIが回答
- 音声合成 :生成された回答を音声で提供
- ChatGPT & Geminiの比較 :異なるAIの回答を比較
これにより、手が塞がっている状況でもスムーズに情報を取得することができます。
技術スタック
バックエンド
本システムのバックエンドは、リアルタイム通信と音声処理を円滑に行うために以下の技術を採用しています。
- Tornado :非同期処理を活用した軽量なWebサーバーフレームワーク。
- Azure Cognitive Services Speech :音声認識および音声合成のためのMicrosoft Azureのサービス。
- OpenAI API :ChatGPTを利用した自然言語処理。
- Google Generative AI :Gemini APIを活用したテキスト生成機能。
- Streamlit :簡単な管理画面を提供するためのフレームワーク。
- JsonSchema、Psutil :データのバリデーションやシステムリソース管理を補助。
- WebSocket :リアルタイム通信の実現に使用。
フロントエンド
- React :軽量で動的なインターフェースを構築し、ユーザーが直感的に利用できる環境を提供。
- WebSocket :リアルタイムデータの送受信を実現。
この技術構成により、音声入力から回答生成、音声合成までをスムーズに統合し、高速なレスポンスを実現しました。
開発で難しかったこと
今回の開発では、以下の点に課題がありました。
- Callbackの適切な活用
- WebSocket経由で送信した音声がAzure Speech to Textで認識されない問題
- ディレクトリ構成の整理(可読性・スケーラビリティの向上)
特に、リアルタイム音声処理の実装においては多くの試行錯誤が必要でした。しかし、先輩の清水さんのサポートを受けながら、WebSocketの適切な実装方法や非同期処理の設計について学び、最適な構成を実現しました。
開発を通じて得た知見
-
ChatGPTとGeminiの回答の違いが興味深い
- それぞれのAIが異なる視点で回答を生成し、比較することで有用な情報を得ることができました。
-
音声合成技術の精度向上
- 期待以上に自然な音声が生成され、実用性の高いシステムとして活用可能なレベルに到達しました。
今後の展望
現在の課題として、レスポンス速度の遅延 が挙げられます。
今後の改善点として、
- 音声認識・生成の処理速度向上
- リアルタイム性のさらなる強化
を検討しており、より快適なユーザー体験を目指します。
また、将来的には 多言語対応 や 業務向けカスタマイズ などの機能拡張も視野に入れています。
まとめ
本プロジェクトを通じて、
- リアルタイム音声処理の実装
- AI音声合成の活用
- 非同期処理の最適化
といった技術的な課題に取り組み、多くの学びを得ることができました。
今後も改善を重ね、より使いやすく高度なシステムを構築していきます。
引き続き、より快適なAI体験を提供できるよう努めてまいります!