生成AI×音声対話への挑戦

前回まで、ジムへ向かう車中での雑談録音を通して、テック系ガジェットやPodcast実験、 さらには仮想の松山市政構想(!?)まで多彩な話題をお届けしてきました。
今回の移動中トーク(第4回目)では、竹内さん(@rikson_en)が参加する会社の開発合宿に焦点が移ります。

開発合宿のテーマ:2日で「生成AI」活用の成果物を作る

竹内さんの会社では、開発合宿が開催され、そのテーマは「生成AI」。 なんと、ビデオ通話基盤に生成AIを組み込み、2日間で新しい音声対話システムのプロトタイプを作る計画があるそうです。

具体的な構想は以下のとおり:

音声対話の実現:
人間の発話をSpeech-to-Textで文字起こしし、そのテキストをChatGPTへ送信。 返ってきたレスポンスを再度Text-to-Speechで音声化し、リアルタイムに対話を行う仕組みです。

WebRTCとの組み合わせ: 必ずしもWebRTC(リアルタイム通信技術)を使わなくてもよいものの、もし余力があれば、WebRTCによる映像・音声ストリーミングを組み込み、よりインタラクティブな音声対話環境を実現する方針だとか。

医療分野への応用: オンライン診療の研修シミュレーションに利用することを見据え、AIが「患者役」を演じる想定がされています。たとえば花粉症患者や勃起不全の相談例などをシナリオ化し、医療従事者が仮想患者との音声対話を練習できる環境を作る——そんな応用も検討中です。

2日で成果物を形にするため、まずは「音声」部分に集中し、映像との統合は将来の拡張フェーズとする計画とのこと。スモールスタートでミニマムな目標をクリアしようという戦略です。

RustとGStreamer、そしてNode.js — 技術的「面白み」を求めて 竹内さんは技術選定でも冒険を試みています。

GStreamerの活用: GStreamerはオーディオやビデオ処理で有名なフレームワーク。これを使ってWebRTC向けのデモサーバーを構築し、さらにRustで書き直してみようという挑戦が進行中です。

なぜRust? 合宿は「イベント」でもあるため、単にNode.js+TypeScriptでさくっと実装するのではなく、Rustで書いて「技術的に面白い」ものを目指したいとのこと。 実務効率ならJavaScript系が有利かもしれませんが、合宿の醍醐味は新しい技術に挑戦し、成果物として披露する体験。RustとGStreamer、WebRTCを組み合わせたユニークな実装は、きっと「おおっ」と思わせる何かになるはずです。

課題: RustとGStreamerとの情報は豊富でなく、実装ハードルは高そう。でも、こうした未知への挑戦こそ、技術者冥利に尽きるもの。もし困難があれば、最終的にNode.jsに切り替える柔軟性も残しつつ、まずはRustで頑張ってみるとのこと。

まとめ:イベント前のワクワク感 今回の雑談では、合宿前の「構想段階」の生々しい思考プロセスを垣間見ることができました。限られた時間でどこまで実現できるか分からないけれど、新しい技術、生成AIとの組み合わせ、そして医療分野での応用可能性——そんなアイデアが移動中の車内で飛び交うのは、やはり面白いものです。

この「移動中Podcast」スタイルの良さは、頭に浮かんだアイデアをすぐに記録し、外部に発信できることにあります。編集なしでも思考の流れがリアルに伝わり、プロジェクトの方向性や課題がそのまま表出するのが魅力。次回、合宿が実行された後には、果たしてどんな成果物や教訓が生まれるのでしょうか?

この一連の記録が、将来「こんな風に試行錯誤してたんだな」と振り返る良いドキュメンテーションになれば幸いです。