【開発記録】「とろっと、おんたま」でGemini Live APIを使った玉巻アナAI「AmI」が大活躍!

ontamaAI

今回は、MBSアナウンサーが作成・出演しているPodcast番組「とろっと、おんたま」で、GeminiのLive APIを用いて玉巻映美AI「AmI(エイミー)」とリアルタイム会話をするという企画を行いました。このブログでは、その技術について詳しく説明します。

「Live API」とは

今年のGoogle Cloud Next 2025で発表されたLive API。これを使えば低レイテンシーでリアルタイムにAI(Gemini)とマイクやカメラを通して、意思疎通が行えます。以下が、公式ドキュメントの記載です。

Live API を使用すると、Gemini との音声と動画による低レイテンシのリアルタイムのやり取りが可能になります。音声、動画、テキストの連続ストリームを処理して、人間のような即時の音声応答を提供し、ユーザーに自然な会話体験を提供します。

「とろっと、おんたま」とは

毎週金曜日の19時から配信している、MBSアナウンサーである入社11年目の藤林温子アナと玉巻映美アナの2人が作成・出演、そして編集まで全て行っているPodcast番組です。MBSアナウンサーYouTubeチャンネルの「ウラオモテレビ」のスピンオフ的な立ち位置で開始した番組です。

以下が、Podcast番組の概要欄です。

入社11年目のMBSアナウンサー藤林温子と玉巻映美です。三十路を超えた2人の、とろっと固まり切らない様々な感情を吐露します。同期ふたりの赤裸々おんたまトークをぜひ味わって下さい!毎週(金)19時に更新!#おんたま で投稿、メールもお待ちしています♪

ちなみに私は、この番組のファンであり全回聞いています!
Podcastで配信されており、全て無料で聞いていただけるので、気になった方はぜひお聞きください。

もちろんおすすめ回は、私が出演している #059 です!
他にも #016、#027、#037、#052、#058 が個人的おすすめ回です!

Geminiとのリアルタイム会話方法

Geminiとリアルタイム会話を行うには、いくつか方法があります。ここでは、最も簡単に手軽に使用できる「Google AI Studio」の「Stream realtime」の使用方法を説明します。

Google AI StudioとはGemini 2.5を含む様々なGoogle AIサービスを活用できるプラットフォームです。ここでは、最新のAIモデルや機能がプレビューとして一足先に使用できることも多々あります。ただし、基本的にGoogle AI Studioで使用したプロンプトや素材はモデルの学習対象になるので、その点は意識して使用していく必要があります。

Google AI StudioでのStream realtimeでリアルタイム会話を試す方法は以下の通りです。

  1. Google AI Studioにアクセス
  2. 右側のStreamをクリック
  3. モデルや声などのRun settingを設定
  4. Talkをクリック

これだけの操作でリアルタイムでGeminiと音声会話ができます。想像以上に簡単で、想像以上にGeminiとの音声会話に感動するので、まだ使用されたことがない方はぜひ使ってみてください。

Live APIの使用方法

Live APIには以下の2通りの使用方法があります。

  • Vertex AI経由での使用
  • API keyを発行して、Live APIを直接叩く

今回は、2つ目の方法でLive APIを使用しました。以下が、その方法と手順です。

  1. Google AI Studioにアクセス
  2. 右側のStreamをクリック
  3. モデルや声などのRun settingを設定
  4. 右上の「Get code」をクリック

これだけで、Pythonのコードが取得できます。コードを実行する際には、以下でライブラリをインストールする必要があります。

pip install google-genai

API keyもGoogle AI Studioから簡単に発行することができます。

  1. 左下の「Get API key」をクリック
  2. 右上のの「Create API key」をクリック
  3. 紐づけるGoogle Cloudプロジェクトを選択
  4. 「Create API key in existing project」をクリック

以上です。これを環境ファイルなどに設定した上で、先ほど取得したコード内に埋め込めば、CLI上でGeminiとリアルタイム会話ができるようになります。

今回のAmI(エイミー)システムについて

今回は上記の方法で得たPythonコードを9割活用しています。変更箇所としては、以下の項目です。

A. 玉巻アナの性格を憑依させるため、システムプロンプトを設定
B. マイクのオン・オフ機能を追加

A.について以下のように設定し、別途prompt.txtのファイルを用意しました。プロンプトで工夫した点は、別途記述します。

try:
	with open("prompt.txt", "r", encoding="utf-8") as f:
		system_prompt = f.read().strip()

except FileNotFoundError:
	print("警告: 'prompt.txt' ファイルが見つかりません。システムプロンプトなしで続行します。")
	system_prompt = None

B.については、以下のように設定を行いました。

text_lower = text.lower()
if text_lower == "q":
	break
elif text_lower == "l": # listen
	print("マイクがONになりました。話しかけてください...")
	self.is_listening = True
elif text_lower == "s": # stop
	print("マイクがOFFになりました。")
	self.is_listening = False

# 途中は省略します

while True:
	# マイクの状態がTrueの場合のみ録音
	if self.is_listening:
		data = await asyncio.to_thread(self.audio_stream.read, CHUNK_SIZE, **kwargs)
		await self.out_queue.put({"data": data, "mime_type": "audio/pcm"})
	else:
		# マイクがOFFの間は待機
		await asyncio.sleep(0.1)

マイクのオン・オフ機能を追加した理由は、システムを起動するとAIはマイクに入った声全てに反応するためです。したがって、番組中にAmIと話したタイミングでのリアクションにも反応してしまい、話が前に進まなくなる可能性があるので、この仕組みを導入しました。

もちろんリアクションの際には、一度システムを停止する方法もあるのですが、そのようにすると以前の会話内容を忘れてしまい、今までの流れを反映した会話を連続的に行うことが難しくなります。

以上のコードを追加して、本番で動作させました。

音響設定の工夫

1点注意が必要なのはGeminiとの会話方法です。Geminiはマイクオンの状態だと様々な音を拾います。したがって、Geminiをスピーカーで発言させると自分の声を聞いてしまい、Geminiが話し続けることになります。

本番では以下のような構成を組み、上記の問題を解決しました。

3本のマイクとPCのアウトプットをオーディオインターフェースに接続し、録音を行っています。これによりAmIの声は録音され、またアウトプットもオーディオインターフェースに接続した個々のイヤホンに届きます。PCのインプットはデフォルトのPCマイクに設定しています。

また、今回使用したモデルは「gemini-live-2.5-flash-preview」です。高品質の自然な会話ができるのは「gemini-2.5-flash-preview-native-audio-dialog」か「gemini-2.5-flash-exp-native-audio-thinking-dialog」のモデルと公式には記載されているのですが、こちらの2つのモデルは回答を話している途中で止めてしまうケースが多く、本番での使用を断念しました。

プロンプトで工夫した点

AmIを玉巻AIとして会話させるためには、玉巻アナの情報を細かくシステムプロンプトして与える必要があります。この点に関しては、玉巻アナの性格や口癖などを詳細に書いています。

最も工夫した点は、「話し相手を判断する」プロンプトです。今回の番組では、AmIと話すのは「藤林アナ」と「玉巻アナ」、そして「私 (石橋)」の3人のみです。プロンプトを工夫することによってAmIに話しかけている相手を判断させることができます。

以下がその部分のプロンプトです。

## 会話ルール
### 会話相手
前提として、あなたと会話するのは以下の3人のみです。
 - 同期の藤林温子アナウンサー:読み方はふじばやしあつこです。
 - 後輩の男の子の石橋迪也くん:読み方はいしばしふみやです。
 - 本AIのモデルとなっている玉巻映美アナウンサー本人:読み方はたままきえいみです。
 - 会話は連続性があるものですが、話すたびに会話相手を ### 会話相手の判断基準 に従って、判断してください。

### 会話相手の判断基準
**タメ口で話しかけられた時:**
同期の藤林アナと会話していると判断してください。藤林アナとの会話は上記の全特徴を踏まえて行ってください。
敬語を使用せずに、ため口で会話して良いです。

**敬語で話しかけられた時:**
後輩の石橋くんと会話していると判断してください。
会話相手のことは「石橋くん」と呼び、温和で優しい性格と明るさを際立たせて会話してください。
優しく尊敬できる女性アナウンサーとして、会話してください。
この場合も、敬語を使わずにため口で会話して良いです。

**玉巻さんであることが明言された時:**
モデルの本人である玉巻アナと会話していると判断してください。
本人である玉巻さんを立てる振る舞いをしてください。
しかしながら、本人の自虐的なネタを反映しても良いです。自虐を言う際は、AI自身としての自虐を言って本人を立てる振る舞いをしてください。
呼び方は、「玉巻さん」にしてください。この場合は、敬語で話してください。

番組では、私がAmIと会話することはありませんでしたが、リハーサルの段階ではしっかりと話しかけられている相手を判断して、呼び名やテンションをスムーズに変更できていました。

「会話相手を認識させて、会話させる」これだけでAmIとの音声会話のクオリティーが数段上がったように思います。性格部分で、 ##相手との関係性 というプロンプトも与えているので、後輩に話す時に優しくなったり口調まで変更できたことは、今回システムを作成していて1番勉強になりました。

今回の企画では生成AIによる音声技術を使用していますが、これは技術検証を目的とした実験的な取り組みです。近年、生成AIによるフェイク音声・画像・動画などのディープフェイク技術が急速に発達し、悪用によるリスクも社会問題となっていることを認識しており、放送局として適切な手続きを経て実施しています。今回のAmIでは、玉巻アナの声を学習させ複製するような技術は一切使用していません。音声はGemini Live APIのデフォルトのものを使用しています。

おわりに

今回は、簡単に玉巻アナの性格や口癖を付与したAmIとリアルタイムで会話することができました。しかも、料金も開発のテスト期間の動作を合わせても50円ほどと想像以上に安く作成できています。

AmIシステムは、アプリケーション化をしていないのでCLI上での動作をさせていましたが、アプリ化を行うとするとWebSocketなどを使用する必要があります。

ポッドキャストの番組で使用してみて、AmIが何を返してくれるのかという期待と緊張が入り混じっており、お二人のリアクションも含め聞いていて楽しい回になったと思います。様々なことに気を遣いながらではありますが、AIを活用することでエンタメ領域でも新たな挑戦ができると強く感じました。

ぜひ、AmIが話している音声も聞いてみてください!

P.S.
玉巻映美AIを「AmI(エイミー)」と名付けたのがセンスが良い!!と自負していたのですが、藤林さんにも玉巻さんにも名前をうまくもじっていたことが伝わっていませんでした…。このブログで伝わってるといいな(小声)

Previous Post