OpenClaw を Discord の音声通話に呼んで、ChatGPT の音声モードと同じ GPT-Live でしゃべらせる方法

ブログ

自分のサーバーで動かしている AI エージェント OpenClaw(オープンクロー)を Discord の音声通話に呼んで、ChatGPT の音声モードと同じ「GPT-Live」でしゃべらせてみました。話しかけると2秒ほどで声が返ってきて、普通に会話になります。

  • OpenClaw の 9 系(2026.9.6)+ChatGPT へのログインなら、API キー無しで Discord の通話に GPT-Live を入れられた。設定は JSON に数行足すだけ
  • 普段の返事は約2秒。調べものが必要な質問は Claude に回るので、16〜35秒かかる
  • その前に試した 8.1 系+API キーの方式はうまくいかなかった(遅い・日本語の短い発話を別の言語として聞き取る)
実際の通話(約2分)。話しているのは自分(yousan)と、OpenClaw のボット「おぷー」。字幕付き。調べものをしている間の無音はカットしてある

何ができるか:聞く・話すは GPT-Live、考えるのは Claude

GPT-Live は OpenAI の音声モデルで、ChatGPT アプリの音声モードもこれで動いています[6][7]。聞きながら同時に話せるので、こちらが話している途中で割り込んだり、相手の話に相づちを打ったりできます。API 版のモデルページには、「聞きながら話し、考えることや道具を使うことは裏側のエージェントに任せられる」と書かれています[8]。

OpenClaw の Discord の音声通話は、まさにこの形で動きます。

図。あなたが Discord のボイスチャンネルで話すと、GPT-Live が聞いて声で返事をする。難しい質問だけ GPT-Live から OpenClaw のエージェント(Claude)に回り、答えが GPT-Live に戻って声になる
耳と口は GPT-Live、頭は OpenClaw のエージェント(自分の場合は Claude Opus 5.5)
  • 聞く・話す(GPT-Live):声を聞き取り、声で返事をする。あいさつや軽い受け答えは、GPT-Live がその場で返す
  • 考える(OpenClaw のエージェント):調べものや難しい質問が来たときだけ、GPT-Live が openclaw_agent_consult という道具でエージェントに問い合わせる。エージェントの答えを GPT-Live が声で読み上げる

OpenClaw の説明書では、この「声の担当が受け答えをして、中身のある仕事はエージェントに回す」方式を agent-proxy と呼んでいて、これが既定です[1]。考える担当のモデルは、普段そのボットが使っているもの(自分の場合は Claude Opus 5.5)がそのまま使われます。

遠回りした話:8.1 系で試した2通り

最初は、別のボット「ミナ」(OpenClaw 8.1 系)で音声通話を試しました。2通り試して、どちらもいまいちでした。

方式聞き取り(声→文字)考える話す(文字→声)返事までの時間だめだったところ
① 手元で聞き取る(stt-tts)sherpa-onnx + NVIDIA Parakeet(日本語モデル)を手元の CPU で[22][23]Claude Opus 5.5Microsoft Edge の読み上げ(Nanami)[17]8〜15秒聞き取りに約5秒、考えるのに3〜9秒。Discord は話す人ごとに「あっ」「ピ」のような短い切れ端を大量に渡してくるので、会話がちぐはぐになった
② OpenAI のリアルタイム方式(agent-proxy)gpt-4o-mini-transcribeClaude Opus 5.5(のちに Sonnet 5.5)gpt-realtime-2.1(声 marin)5〜6秒短い発話がタイ語や韓国語として文字にされた(「ครับผม」「발로」)。8.1 系では聞き取りの言語を日本語に固定できず、声の大きさも変えられなかった。API キーの従量課金(上限 $5 を設定)
2026年10月8日に試した結果

そもそも 8.1 系では、Discord の通話に ChatGPT のログインは使えず、API キーが必要でした。理想は「ChatGPT の音声モードをそのまま Discord で使いたい」だったので、ChatGPT のログインで GPT-Live が使える 9 系に切り替えることにしました。ちょうどメインのボット「おぷー」は 9 系(2026.9.6)で動いていて、ChatGPT のログインも済んでいたので、おぷーで試しました。

登場した OpenAI の音声モデルの比較

名前が似ていて混乱しやすいので、この記事に出てくる OpenAI の音声まわりのモデルを並べます。とくに GPT-Live は、ChatGPT アプリの中身、API で使う公開版、ChatGPT のログインで使う版の3つがあります。

モデル使える場所認証料金言語の指定うちで試した結果
GPT-Live-1/GPT-Live-1 mini(ChatGPT アプリ)ChatGPT アプリの音声モード(Live)ChatGPT のアカウントChatGPT のプランの枠(下の表)[7][19]未確認この記事では試していない
gpt-live-1OpenAI の API(2026年9月10日に一般公開)。OpenClaw 9 系API キー(Free ティアでは使えない)$0.05/分(秒単位で課金)+考える側のモデル代[8][13][21]指定する項目は無く、指示文(プロンプト)で話す言語を決める[16]試していない
gpt-live-1-codexOpenClaw 9 系の ChatGPT ログイン経路(おぷーで採用)。OpenAI の Codex の公開ソースにも名前があるChatGPT ログイン(API キーは予備)ChatGPT のサブスクリプションの枠[2][18]未確認返事まで約2秒。日本語で普通に会話できた
gpt-realtime-2.1OpenAI の API。OpenClaw 8.1 系・9 系の両方で使えるAPI キー従量。100万トークンあたり音声入力 $32、音声出力 $64[10]モデル自体に言語を指定する項目は見当たらない(未確認)ミナ(8.1)で使用。返事まで5〜6秒
gpt-4o-mini-transcribeOpenAI の API。ミナの ② では gpt-realtime-2.1 の聞き取りに使われていたAPI キー従量。目安 $0.003/分[12]。2027年2月26日に提供終了予定[13]API では language で1言語を指定できる[14]。ただし OpenClaw 8.1 では固定で、設定できなかった短い発話がタイ語・韓国語や「有有有。」になった
確認日:2026年10月9日。OpenAI の料金・提供状況は developers.openai.com と learn.chatgpt.com の公式ページで確認。ChatGPT ヘルプ(help.openai.com)は自動取得が遮断されたため、検索結果に出た本文の抜粋で確認。「未確認」は公式の記述を見つけられなかったもの

選べる声は次のとおりです。

  • GPT-Live-1/mini(ChatGPT アプリ):Cove、Juniper、Maple など9種(全部の名前は未確認)
  • gpt-live-1:既定は marin。ほかに地域の訛り付きの声などがある(基本の声の一覧は未確認)[15]
  • gpt-live-1-codex:cove で使用。Codex のソースでは Juniper、Maple、Spruce、Ember、Vale、Breeze、Arbor、Sol、Cove の9種[18]
  • gpt-realtime-2.1:alloy、ash、ballad、coral、echo、sage、shimmer、verse、marin、cedar の10種。ミナでは marin を使った[11]
  • gpt-4o-mini-transcribe:聞き取り専用なので声は無い

ChatGPT のプランごとの音声モード(Live)

プラン月額使えるモデル24時間あたりの上限
Free$0GPT-Live-1 mini限られた回数
Go$8GPT-Live-1 mini3時間
Plus$20GPT-Live-13時間
Pro($100)$100GPT-Live-115時間
Pro($200)$200GPT-Live-1無制限
上限は ChatGPT ヘルプ「ChatGPT Voice」の英語版(検索結果に出た本文の抜粋で確認)、月額は learn.chatgpt.com の料金ページ(米ドル)[7][19][20]。上限は直近24時間で数える。ポーランド語版など一部の言語の版のヘルプには古い数字が残っていた

ChatGPT アプリの音声モードには、Live のほかに、ビデオや画面共有に対応した Advanced と、交互に話す Standard もあります[7]。OpenClaw の gpt-live-1-codex がアプリの GPT-Live-1 とまったく同じ版かどうかは、公式の説明では確かめられませんでした。

手順

ここからは、すでに OpenClaw を Discord のボットとして動かしている前提で書きます。設定項目とコマンドは、OpenClaw 2026.9.6 に入っている説明書(Discord voice channels、OpenAI voice and speech)と照らし合わせています[1][2]。

1. 前提をそろえる

必要なもの内容
OpenClaw の版9 系。自分は 2026.9.6。ChatGPT のログインで Discord の通話に GPT-Live をつなげるのは 9 系から
ChatGPT のアカウントGPT-Live の声は ChatGPT のサブスクリプションの枠で動く。API キーは不要
Discord Developer Portal の設定Message Content Intent を有効にする。ロールやユーザーで許可を絞る場合は Server Members Intent も有効にする
ボットの招待bot と applications.commands のスコープで招待する
ボイスチャンネルの権限ボットに Connect(接続)、Speak(発言)、Send Messages(メッセージを送信)、Read Message History(メッセージ履歴を読む)を与える
スラッシュコマンドOpenClaw の native commands(commands.native)。既定の "auto" で Discord では有効なので、false にしていなければそのままでよい[3]
説明書のセットアップ手順[1] より

2. ChatGPT にログインする

OpenClaw を動かしているマシンで、次のコマンドを実行します。ChatGPT のアカウントでログインして、OpenClaw にログイン情報を登録します[2]。

openclaw models auth login --provider openai

自分のおぷーは、以前にこのログインを済ませていたので、この手順は飛ばせました。

3. 設定(openclaw.json)に音声の設定を足す

OpenClaw の設定ファイル openclaw.json の channels.discord に、voice を足します。実際におぷーに入れた設定です(ID は伏せています)。

{
  channels: {
    discord: {
      voice: {
        enabled: true,
        realtime: {
          provider: "openai",
          model: "gpt-live-1-codex",
          speakerVoice: "cove",
        },
        autoJoin: [
          {
            guildId: "<サーバーのID>",
            channelId: "<ボイスチャンネルのID>",
            whenOccupied: true,
          },
        ],
      },
    },
  },
}
項目意味
enabled: trueDiscord の音声機能を有効にする。/vc コマンドもこれで使えるようになる
realtime.provider声の担当のサービス。"openai"
realtime.model"gpt-live-1-codex" が ChatGPT のログインで使う GPT-Live。何も書かないと GPT-Live にならないので、明示する
realtime.speakerVoice声の種類。"cove" は ChatGPT ログインの GPT-Live 用の声
autoJoin自動で入るボイスチャンネル。なくても、あとで /vc join で呼べる
whenOccupied: true人がいるときだけ入り、最後の人が抜けたら出ていく
説明書の「GPT-Live in Discord」の節[1] より

注意したいのは、モデルと声の組み合わせです。API キーで使う公開版の GPT-Live は gpt-live-1 で、声は marin などになります。cove は ChatGPT ログイン版(gpt-live-1-codex)の声なので、gpt-live-1 と組み合わせると marin に置き換わります[1][2]。

設定ファイルを保存すると、OpenClaw は変更を見つけて自動で反映します(既定の hybrid モードの場合)[4]。書き方が正しいかは次のコマンドで確かめられます。

openclaw config validate

4. ボットの権限を確かめる

ボイスチャンネルに入れる前に、ボットの権限が足りているかを確かめておくと安心です[1]。

openclaw channels capabilities --channel discord --target channel:<ボイスチャンネルのID>

5. 通話に呼ぶ(/vc join)

自分がボイスチャンネルに入ったら、Discord のテキストの入力欄でスラッシュコマンドを打ちます。シェルではなく Discord で打つコマンドです[1]。

/vc join channel:<ボイスチャンネル>
/vc status
/vc leave

/vc join で呼び、/vc status で状態を見て、/vc leave で帰ってもらいます。autoJoin と whenOccupied: true を設定していれば、ボイスチャンネルに入るだけでボットも入ってきます。

6. 話しかけて確かめる

あとは「こんにちは」と話しかけるだけです。自分のときは、「こんにちは」の2秒後に「やっほー、こんにちは!」と声で返ってきました。

ただし、入った直後に3回話しかけたぶんは文字にならず、返事もありませんでした。原因はログからは分かりませんでした。返事が無いときは、少し待ってからもう一度話しかけてみてください。

ChatGPT の音声モードと同じように動いているかは、相手が話している途中に割り込んでみると分かります。GPT-Live は、割り込まれたときの扱いを自分で決める作りになっています[1]。

使ってみた結果と、遅さの原因

やり取り返事が始まるまで
あいさつや軽い受け答え(GPT-Live がその場で返す)約2秒
調べものを挟む質問(最初の1回)約16秒
調べものを挟む質問(別の計測)29〜35秒
2026年10月9日、おぷーとの通話で測った値

軽い会話は ChatGPT の音声モードと同じ感覚で進みます。気になったのは調べものの遅さです。待たせている間は「少々お待ちを。確認するね」と言ってくれますが、答えが来るまで10秒以上の無音が続きます。

通話の中でおぷー自身に聞いてみたところ、遅い一番の原因は考える時間ではなく調べものの時間でした。Web ページを見に行ったり、設定ファイルやログを読んだりしている時間です。おぷーは「調べれば分かることは確かめてから答える」というルールで動いているので、調べものの回数が多くなります。考える担当のモデルを Claude Opus から Sonnet に替えても、劇的には速くならないだろう、という見立てでした。

音声のときだけ考える担当のモデルを替えたい場合は、channels.discord.voice.model で指定できます。声の担当の voice.realtime.model とは別の設定です[1]。

注意点

名前で呼ばれたときだけ答える、ができない

GPT-Live では、「名前で呼ばれたときだけ答える」(requireWakeName: true)や「毎回必ずエージェントに問い合わせる」(consultPolicy: "always")は使えません。設定すると、起動時に設定エラーになります[1]。人が何人もいる部屋だと、誰の発言にも返事をしてしまいます。大人数の部屋で名前を呼んだときだけ答えてほしいなら、説明書では gpt-realtime-2.1 を選ぶよう案内されています。

声からの問い合わせは、オーナーと同じ道具が使える

声で話しかけてエージェントに問い合わせが回ったとき、既定ではオーナーと同じ道具(ツール)が使えます(voice.realtime.toolPolicy: "owner")[1]。テキストでは道具を制限しているボットでも、声だと制限が外れることがあるので、共有の部屋に置くときは設定を確認してください。

会話のログの残り方

  • OpenClaw の管理画面(Control UI)の、そのボイスチャンネルのセッションに、エージェントに回った質問と答えが文字で残る
  • GPT-Live がその場で返した軽い雑談は、次の問い合わせにまとめて付いたときだけ残る。最後が雑談で終わると、その部分は残らない
  • 音声そのものは保存されない

これは自分の環境で確かめた残り方です。声を既存のテキストチャンネルの会話につなげたい場合は、voice.agentSession で送り先の会話を指定できます[1]。発言をすべて記録したい場合は、別の機能の「transcripts」で記録を始める必要があります。ボイスチャンネルに自動で入る設定だけでは、記録は始まりません[5]。

その後:通話の文字をテキストチャンネルに流すプラグイン

通話の内容があとから読めないのは不便なので、通話中の発言(人の発言もボットの発言も)を、話したそばからテキストチャンネルに流すプラグインを作って公開しました。モデルは呼ばないので、追加の費用はかかりません[9]。

yousan/openclaw-voice-transcript-relay(GitHub、MIT ライセンス)

また、道具を制限した別のボット「こぷー」も 9 系に上げて、同じ音声モードを入れました。

まとめ

  • OpenClaw 9 系なら、ChatGPT にログインして channels.discord.voice.realtime に gpt-live-1-codex と cove を書くだけで、Discord の通話に GPT-Live が入る。API キーは要らない
  • 聞く・話すは GPT-Live、考えるのは OpenClaw のエージェント。軽い返事は約2秒で、調べものは 16〜35秒かかる
  • 名前で呼ばれたときだけ答える設定は使えない。声からの問い合わせは既定でオーナーと同じ道具が使えるので、共有の部屋では注意

参考情報

  • [1] OpenClaw docs「Discord voice channels」— セットアップ手順、GPT-Live in Discord、各設定項目 リンク
  • [2] OpenClaw docs「OpenAI voice and speech」— GPT-Live の2つの経路(ChatGPT ログインと API キー)、cove と marin リンク
  • [3] OpenClaw docs「Discord access control」— commands.native の既定値 リンク
  • [4] OpenClaw docs「Config hot reload」— 設定ファイルの自動反映 リンク
  • [5] OpenClaw docs「Discord voice transcripts」— 発言の記録は transcripts で明示的に始める リンク
  • [6] OpenAI「Introducing GPT-Live」(2026年7月8日) リンク
  • [7] OpenAI ヘルプ「ChatGPT Voice」— 音声モードは GPT-Live で動く リンク
  • [8] OpenAI API「GPT-Live 1」モデルページ — 聞きながら話し、考えることと道具を裏側のエージェントに任せる。音声セッションは1分 $0.05 リンク
  • [9] GitHub「yousan/openclaw-voice-transcript-relay」 リンク
  • [10] OpenAI API「GPT-Realtime-2.1」モデルページ — 料金 リンク
  • [11] OpenAI API「Realtime conversations」— 使える声の一覧 リンク
  • [12] OpenAI API「Pricing」— gpt-4o-mini-transcribe ほか リンク
  • [13] OpenAI API「Changelog」— GPT-Live 1 の一般公開(2026年9月10日)、文字起こしモデルの提供終了予定 リンク
  • [14] OpenAI API「Speech to text」— 既存モデルは language で言語を指定 リンク
  • [15] OpenAI API「Live conversations」— gpt-live-1 の声(既定は marin) リンク
  • [16] OpenAI API「Live prompting」— 話す言語は指示文で決める リンク
  • [17] OpenClaw docs「Text-to-speech」— Microsoft(API キー不要)の読み上げ リンク
  • [18] openai/codex(GitHub)protocol.rs — Realtime の声の一覧(v1 の既定は Cove) リンク
  • [19] ChatGPT「Voice」(learn.chatgpt.com)— GPT-Live で動く リンク
  • [20] ChatGPT「Pricing」(learn.chatgpt.com)— プランの月額 リンク
  • [21] OpenAI「Introducing GPT-Live-1 in the API」(2026年9月10日) リンク
  • [22] k2-fsa「sherpa-onnx」(GitHub)— 手元で動く音声認識 リンク
  • [23] NVIDIA「parakeet-tdt_ctc-0.6b-ja」(Hugging Face)— 日本語の音声認識モデル リンク

OpenClaw の説明書は、2026.9.6 のパッケージに同梱されているものを参照しました。設定や挙動は版によって変わることがあります。

コメント

タイトルとURLをコピーしました