Geminiで音声からプロンプト作成!AIコーディングを効率化するコツ
「音声で話した内容をテキストにして、そのままAIへの指示に使えたら便利なのに」
AIコーディングをしていると、そんなふうに感じることがありますよね。
修正してほしい内容は頭に浮かんでいるのに、キーボードで細かく説明しようとすると意外に時間がかかります。
そんなときに役立つのが、Gemini APIの音声入力です。
この記事では、短い日本語の録音を「目的・対象・制約・検証方法」の4つの項目に分け、AIコーディング用のプロンプトへ変換する方法をご紹介します。
Geminiで音声を構造化プロンプトへ変換する手順
Geminiでは、録音ファイルと変換ルールを一緒に渡し、話した内容をAIコーディング向けの指示へ整理できます。
まずは、録音してから開発ツールへ渡すまでの流れを見てみましょう。
- MP3やWAV形式で音声を録音する
- 録音ファイルと変換ルールをGeminiへ渡す
- 目的・対象・制約・検証方法の4項目で受け取る
- 内容を確認してClaude CodeやCursorへ貼り付ける
指示の組み立て方は、日本語の音声コーディングで伝わる指示を作る手順も参考にしてみてくださいね。
Interactions APIで音声と変換ルールを渡そう
新しく仕組みを作る場合は、Interactions APIを使うと、音声のアップロードから回答の取得までをひと続きで書けます。
今回は、録音した内容を次の4つの項目に分けます。
- 目的:最終的に何をしたいのか
- 対象:どの画面や処理を扱うのか
- 制約:変更してはいけない範囲はどこか
- 検証方法:作業の完了をどのように確かめるのか
コードはこちらです。
from google import genai
client = genai.Client()
audio = client.files.upload(file="request.mp3")
interaction = client.interactions.create(
model="gemini-3.5-flash",
input=[
{
"type": "text",
"text": "音声内容を目的・対象・制約・検証方法の4項目に整理してください。情報が足りない項目は『確認が必要』と書いてください。",
},
{
"type": "audio",
"uri": audio.uri,
"mime_type": audio.mime_type,
},
],
)
print(interaction.output_text)
このコードでは、録音したrequest.mp3をアップロードし、音声と変換ルールを一緒にGeminiへ渡しています。
返ってきた文章では、言い直した部分が正しく反映されているかを確認しましょう。
音声に含まれていない情報が、推測で付け足されていないかも見ておきたいところです。
不足している項目が「確認が必要」と表示されていれば、何を追加で伝えればよいのかもすぐにわかります。
音声1秒は32トークンとして計算される
公式によると、Geminiは音声1秒を32トークンとして扱います。
1分の音声だと1,920トークンになるので、長い録音を何度も送り続けるような使い方だと、コストや処理の待ち時間が膨らんでしまうことも。
AIコーディング用として使うなら、録音時間は30秒から90秒くらいに収めるのが使いやすくておすすめです。
長時間の会議をまるごとテキスト化する使い方と、短い開発の依頼を作る使い方で、しっかり分けて考えると上手くいきますよ。
文字起こしと構造化プロンプトの違い
思いついたままに話すと、途中で内容が矛盾したり、大事な情報が抜けたりすることも。
構造化プロンプトでは、話した内容を目的に合わせて並べ直し、AIが判断しやすい指示へ変えます。
同じ音声が、文字起こしと構造化でどう変わるかを見てみましょう。
実際に話した内容
一覧ページの読み込みを直してほしい。
あ、一覧じゃなくて詳細ページです。
テストは後でいいので修正して、いや、まず原因だけ調べて、ほかの画面は変えないでください。
そのまま文字起こしした場合
一覧ページの読み込みを直してほしい。
あ、一覧じゃなくて詳細ページです。
テストは後でいいので修正して、いや、まず原因だけ調べて、ほかの画面は変えないでください。
話した内容は文章になっています。
でも、これだけでは「一覧ページと詳細ページのどちらを調べるのか」がすぐにはわかりません。
原因だけ調べるのか、そのまま修正まで進めるのかも曖昧です。
人が読めば会話の流れから推測できても、AIには意図と違う形で伝わる可能性があります。
構造化プロンプトへ変換した場合
- 目的:詳細ページで起きている読み込み不具合の原因を特定する
- 対象:詳細ページのデータ取得処理
- 制約:この段階では修正せず、一覧ページやほかの画面も変更しない
- 検証方法:再現手順、原因、修正が必要なファイルを報告する
これなら、何を調べるのかがひと目で伝わります。
最後に言い直した「詳細ページ」が対象になり、作業内容も「原因の調査」に絞られました。
変更してはいけない範囲も明確です。
音声をただ文字にするのではなく、AIが迷わない形へ整えることが大切です。
安心して使うために決めておきたい2つのルール
Gemini APIを使った音声プロンプト変換では、AIを呼び出す前に最低限の安全ルールを決めることが大切です。
音声入力は手軽で便利ですが、秘密情報や危険な操作指示も声で簡単に入ってしまうからです。
1. 秘密情報が入っていないか確認する
開発について話していると、次のような情報を無意識に口にする可能性があります。
- APIキー
.envに保存した値- 顧客名や担当者名
- メールアドレス
- 本番環境のURL
- 公開前の機能名
クラウドAPIへ音声を送る場合は、録音する内容をあらかじめ絞っておくと安心です。
変換後の文章から、メールアドレスやAPIキーのような文字列を見つけ、警告を表示する仕組みも考えられます。
最初から複雑な機能を作る必要はありません。
まずは「秘密情報を音声に含めない」「変換結果を読んでから送る」という2つを意識しましょう。
2. 危険な操作は自動で送信しない
「削除して」「本番へ反映して」「全部置き換えて」といった指示が必要になる場面もあります。
でも、音声認識が一部間違っていたり、Geminiが違う意味に整えたりすると、大きなトラブルにつながりかねません。
特に注意したいのは、次のような操作です。
- ファイルやデータを削除する
- 本番環境へ反映する
- コードをすべて置き換える
- データベースを更新する
- マイグレーションを実行する
- 設定を初期化する
Geminiが作った指示を、Claude CodeやCursorへ自動送信する仕組みは避けたほうが安心です。
送信ボタンを押す前に変換結果をいったん画面に表示し、自分で確認する流れにしましょう。
Gemini API・Superwhisper・VS Code Speechはどう選ぶ?
音声入力を使いたいと思っても、Gemini APIを選ぶべきか、すでにあるツールを使うべきか迷いますよね。
どれが一番優れているというより、使いたい場所や目的によって向いている方法が変わります。
| 方法 | 向いている使い方 | 主な特徴 |
|---|---|---|
| Gemini API | 自分専用の音声入力機能を作りたい | 出力形式や確認の流れを細かく決められる |
| Superwhisper | 複数のアプリで音声入力を使いたい | 録音や履歴管理などの機能が用意されている |
| VS Code Speech | VS Codeの中で音声入力を使いたい | エディターやチャットへ直接入力できる |
Superwhisper:インストールするだけですぐ使える
Superwhisperは、録音や履歴の管理、ボタン一つで動く設定など、必要な機能が最初からすべて揃っています。
「細かいことは抜きにして今すぐ使いたい!」「メールやメモにも広く音声入力を使いたい!」という方には、一番手軽な選択肢です。
Gemini APIを使って自分で仕組みを作る場合は、ボタンや画面、エラーが起きたときの処理などを自分で用意しなくてはいけません。
その代わり、「話した内容をどう並び替えるか」といったルールを自分好みに細かく決められるのが、自作ならではの強みです。
VS Code Speech:エディタの中だけで使うなら一番スムーズ
VS Code Speechは、VS Codeの中で音声入力を使いたいときにぴったりです。
パソコンの中でそのまま処理してくれますし、いつも使っている編集画面やチャット機能にしっかり馴染んでくれます。
Gemini APIなら、VS Codeだけでなく、Cursorやブラウザ、ターミナルなど、いろいろな場所に貼り付けられるプロンプト(指示文)を作れます。
エディタの中だけで完結させるか、複数のツールを移動しながら使うかで、自分に合う方法が見えてきますよ。
まずは短い音声から試してみよう
Gemini APIを使うと、短い録音を「目的・対象・制約・検証方法」に分け、AIコーディングで使いやすい指示へ変換できます。
最初は、30秒ほどの簡単な依頼から試してみましょう。
言い直した内容が正しく反映されているか、不足している情報が勝手に補われていないかを確認するのがポイントです。
毎日のAIコーディングをもっと効率化するために、まずは短い音声の変換から試してみましょう!
この記事について
ご関心ありがとうございます。