会議の録音やインタビュー音声をテキスト化したい時、AIの力を借りれば簡単に文字起こしが可能です。GoogleのGemini APIを利用すれば、音声ファイルをアップロードするだけで、正確な文字起こしはもちろん、詳細な分析まで自動で行えます。本記事では、その具体的な実装手順から実践的な活用法までを詳しく解説します。
ポイント
- Gemini APIを用いた音声ファイルの文字起こしの基本的な実装手順。
- タイムスタンプ付き出力やJSON形式での構造化データ取得など、高度な文字起こしの設定方法。
- 音声の感情分析、多言語対応・同時翻訳、会議議事録の自動生成などの応用例。
- API利用時の対応フォーマット、トークン計算に基づくコスト管理、制限事項などの技術的詳細。
もくじ
Geminiで実践する文字起こしのやり方

Gemini APIを使用して音声ファイルを文字起こしする基本的な手順は、APIクライアントの初期化、ファイルのアップロード、そして生成リクエストの送信という3つのステップで完結します。最新の Gemini 3 Pro や Gemini 3.1 Flash-Lite などのモデルを選択し、files.upload メソッドで取得したファイルオブジェクトを models.generate_content に渡すことで、高精度なテキスト変換が実行されます。開発者は複雑な音声処理ロジックを組むことなく、シンプルなコードで文字起こし機能を実装できます。
実装にあたっては、音声データの提供方法を最適化することが重要です。リクエスト全体が20MB以下の場合はインラインデータとして直接送信できますが、それを超える場合や同じファイルを繰り返し分析する場合は、Files APIによる事前アップロードが必須となります。特定の部分のみを処理したい場合は、プロンプト内で「02:30から05:00まで」のようにタイムスタンプを指定することで、必要な区間だけを効率的に抽出することも可能です。
| 項目 | 内容 |
|---|---|
| 推奨モデル | Gemini 3 Pro, Gemini 3.1 Flash-Lite, Gemini 2.5 Pro/Flash |
| アップロード制限 | Files API(20MB超に必須)、インラインデータ(20MB以下) |
| 対応形式 | MP3, WAV, AIFF, AAC, OGG Vorbis, FLAC |
| コスト(目安) | 音声1秒あたり32トークン換算の従量課金 |
| 最大処理時間 | 合計9.5時間〜最大22時間(モデルの窓幅に依存) |
| リアルタイム変換 | 非対応(録音済みファイルのバッチ処理に特化) |
基本的な文字起こしの手順
Gemini APIを利用した基本的な文字起こしの手順は、主に音声ファイルの準備、APIへの送信、プロンプトによる指示の3ステップで構成されます。まず、文字起こし対象の音声ファイルを用意します。対応形式はMP3、WAV、FLAC、AAC、OGG Vorbis、AIFFなど主要なフォーマットを網羅しており、単一のプロンプト内で合計9.5時間までの音声を処理できます。さらに、Gemini 2.5 ProやFlashなどの最新モデルでは、最大11〜22時間分に相当する膨大なトークンを一度に扱うことが可能です。
次に、このファイルをAPIに送信します。方法は二通りあります。一つは、Files APIを使用して事前にファイルをアップロードし、そのURIを参照する方法です。リクエスト全体のサイズが20MBを超える場合や、同じファイルを繰り返し利用して分析を行う場合には、このFiles APIの利用が必須かつ効率的です。もう一つは、リクエストに音声データをインラインで埋め込む方法で、リクエスト全体のサイズが20MB以下に収まる小規模なファイルに適しています。
最後に、generate_contentメソッドを呼び出し、使用するモデル(例:Gemini 3 Pro、Gemini 3.1 Flash-Lite、Gemini 2.5 Pro)、アップロードしたファイル、そして具体的な要件を記したプロンプトを渡します。単なる全文の文字起こしだけでなく、正確なタイムスタンプの付与(MM:SSまたはH:MM:SS形式)、話者の識別と分離(ダイアライゼーション)、発話者の感情分析、さらには多言語翻訳や要約の作成まで、プロンプトの設計次第で一括して実行できます。
プロンプト作成の基本とコツ
効果的な文字起こし結果を得るためには、プロンプトの設計が重要です。シンプルに「文字起こしをしてください」と指示するだけでなく、具体的な要件を明確に記述することで、より実用的な出力が得られます。例えば、タイムスタンプの形式(例:MM:SS)、話者識別、特定の言語への翻訳などを指示できます。特に、JSONなどの構造化された出力形式を指定すると、生成されたデータをその後のワークフローで自動処理しやすくなります。音声ファイルが大きい場合や、同じファイルを繰り返し使用する場合は、Files APIを利用して事前にアップロードする方法が推奨されます。これにより、効率的に処理できます。
文字起こし結果の取得と確認
Gemini APIを利用して文字起こし結果を取得するには、generateContentメソッドのレスポンスを処理します。レスポンスは、指定した出力形式に従って返されます。例えば、プレーンテキストで文字起こし結果を要求した場合、response.textで直接テキストを取得できます。
より実用的なのは、構造化された出力を指定する方法です。プロンプトでJSON形式での出力を要求し、response_mime_typeを"application/json"に設定することで、プログラムで容易に解析・処理可能なデータを得られます。公式ドキュメントの例では、タイムスタンプ、話者毎のセグメント、言語検出などを含む詳細な文字起こしをJSONスキーマで定義しています。これにより、返されたJSONデータをそのままデータベースに保存したり、他のアプリケーションに連携したりするワークフローが構築しやすくなります。
レスポンスの確認時には、エラー処理を実装することが推奨されます。ネットワークエラーやAPI制限、無効なファイル形式など、処理が失敗するケースに対応するためです。また、大量の音声ファイルを処理する際は、Files APIを利用して事前にファイルをアップロードしておくことで、効率的に繰り返し利用できます。
Geminiの高度な文字起こし機能と活用事例

Gemini APIの真価は、単なる音声のテキスト化に留まらず、マルチモーダルな推論能力を活かした「意味の理解」にあります。特筆すべきは最新モデルに搭載された高度な話者ダイアライゼーション(話者識別)機能です。複数人が参加する会議でも、それぞれの発言者を正確に区別してラベル付けできるため、そのまま実用的な議事録として活用できます。また、response_mime_type に JSON を指定することで、タイムスタンプ、発話内容、感情分析結果などを構造化データとして取得し、外部システムと容易に連携させることも可能です。
具体的な活用シーンとして、多言語が飛び交う国際会議の分析や、カスタマーサポートの音声解析が挙げられます。プロンプトで「主要言語を検出し、日本語への翻訳と、発言者の感情(Happy, Neutralなど)をセグメントごとに抽出してください」と指示するだけで、従来は複数のツールを組み合わせていた工程を1つのAPIリクエストで完結できます。これにより、分析精度の向上と開発コストの劇的な削減を同時に実現できます。
| 高度な機能 | ビジネスへの活用例 |
|---|---|
| 話者識別(ダイアライゼーション) | 複数話者が参加する会議の自動議事録作成、発言者ごとの統計分析 |
| 構造化JSON出力 | データベースへの自動登録、ダッシュボードでの可視化、CRM連携 |
| マルチモーダル感情分析 | コールセンターの応対品質評価、インタビューの深層心理分析 |
| 多言語同時翻訳 | 海外インタビューの翻訳付き文字起こし、グローバル会議の記録 |
| 特定情報の抽出 | 長大な音声からのアクションアイテム、決定事項、特定キーワードの抽出 |
タイムスタンプ付き詳細文字起こし
Gemini APIを用いてタイムスタンプ付きの詳細な文字起こしを行うには、構造化された出力を指定したプロンプト設計が鍵となります。具体的には、response_mime_typeを"application/json"に設定し、response_schemaで必要なフィールドを定義します。これにより、AIの応答が指定したJSON形式で一貫して返されるようになります。
推奨されるプロンプトでは、全体の要約と、タイムスタンプ(MM:SS形式)、発話内容、話者識別を含むセグメントのリストを要求します。音声ファイルはFiles APIを介してアップロードするか、リクエストサイズが許容範囲内の場合にインラインで渡すことが可能です。特定の区間(例:02:30から03:29まで)の文字起こしのみを求めることも、プロンプトにタイムスタートを指定することで実現できます。
この機能は、会議やインタビューの分析といった用途に適しています。ただし、現行のAPIはリアルタイム処理をサポートしておらず、音声の長さに応じたトークン使用量による従量課金となる点に注意が必要です。商用利用を検討する際は、処理頻度と音声の長さに基づいたコスト見積もりが不可欠です。
多言語対応と同時翻訳機能
Geminiの音声理解機能は、多言語の音声ファイルを単に文字起こしするだけでなく、言語の自動検出と同時翻訳を実現できます。具体的には、プロンプトで指示を出すことで、音声の各セグメントの主要言語を検出し、英語以外の言語が含まれる場合はその英語訳を同時に生成する詳細な文字起こしを作成することが可能です。公式ドキュメントで紹介されているサンプルプロンプトでは、タイムスタンプ付きの文字起こしに加え、各セグメントの「言語(language)」、「言語コード(language_code)」、「翻訳(translation)」をJSON形式で出力するよう指定しています。これにより、多言語が混在する会議やインタビューの記録を、統一された言語で整理されたテキストとして一括取得できる利点があります。ただし、この処理はあくまで音声ファイルのアップロード後のバッチ処理であり、リアルタイムでの通訳機能ではない点に注意が必要です。また、商用利用に際しては、音声の長さに比例してトークンが消費される従量課金モデルとなるため、多言語・長時間の音声処理を想定する場合はコスト計画が重要となります。
感情分析と話者識別の実装
Gemini APIを用いた音声分析では、感情分析と話者識別を実装することが可能です 。感情分析については、APIのプロンプトで「Happy, Sad, Angry, Neutral」のいずれかを選択するよう指定し、JSON形式の構造化出力を要求することで、音声セグメントごとに感情を検出できます 。この機能は、会議やインタビューの分析において、発言のニュアンスを定量的に把握する補助として有用です 。
話者識別(ダイアライゼーション)についても、Geminiは強力な機能を備えています 。音声ファイル内の異なる話者を正確に識別して区別することができ、「話者1」「話者2」といったラベルを自動的に付与することが可能です 。5~10人程度の会議でも正確に話者を区別し、長時間の音声でも同一の話者を追跡する一貫性を保持しています 。さらに、マルチモーダル機能を活用して映像内のテキストや音声情報を組み合わせることで、話者の氏名や会社名、役割を特定して抽出することも可能です 。
商用利用においては、これらの処理も音声の長さに比例してトークンを消費します 。音声データは1秒あたり32トークンとして計算され、入力および出力トークンの合計量に基づいた従量課金が適用されます 。高度な分析を実装する場合でも、基本のコストは音声の長さに依存するため、事前にトークン数を確認してコストを計画することが重要です 。
会議議事録の自動生成と要約
Gemini APIを利用した会議議事録の自動生成と要約では、音声ファイルをアップロードし、適切なプロンプトを指示することで、高精度な文字起こしと構造化された議事録を効率的に作成できます。最新のGemini 3 ProやGemini 3.1 Flash-Lite、およびGemini 2.5シリーズなどのモデルは、膨大なトークンを扱える長文コンテキストに対応しており、数時間に及ぶ会議でも一度のリクエストで全文の書き起こし、重要事項の要約、アクションアイテムの抽出を完結させることが可能です。JSON形式の構造化出力を指定すれば、プログラムで即座に活用できる形式でこれらの要素を一括取得できます。
また、最新のモデルでは高度な「話者ダイアライゼーション(話者分離)」機能が提供されており、複数人が参加する複雑な議論でも個々の発言者を正確に識別・区別することが可能です。これにより、以前は制約となっていた「誰が何を発言したか」の特定も自動化され、実用性の高い議事録作成が実現しています。コストは音声の長さに比例する従量課金制で、音声1秒あたり32トークンとして計算されます。countTokensメソッドによる事前のコスト見積もりや、特定の時間範囲を指定した処理などを組み合わせることで、大規模な運用においても柔軟なコスト管理と効率化が図れます。
技術的詳細と実践的ガイドライン

Gemini APIを用いた文字起こしの実装では、音声ファイルの最適なアップロード方法を選択し、目的に応じたプロンプトを設計することが精度の鍵となります。Files APIを利用した事前アップロードは、大規模なデータや繰り返し利用において効率的であり、URIによる参照によってリクエストのオーバーヘッドを削減できます。
文字起こしの出力品質を最大化するためのガイドラインとして、以下の要素をプロンプトに盛り込むことを推奨します。
- タイムスタンプ(例:MM:SS形式)の付与
- 話者識別(ダイアライゼーション)の有効化
- セグメントごとの感情分析(「Happy」「Neutral」など)
- 言語検出とターゲット言語への同時翻訳
- 内容に基づいた要約とアクションアイテムの抽出
特に、response_mime_typeをapplication/jsonに設定し、response_schemaで出力形式を厳密に定義することで、構造化されたデータをプログラムで直接扱えるようになります。また、特定の時間範囲(例:02:30から03:29まで)を指定して、必要な箇所だけをピンポイントで抽出・分析することも可能です。
音声処理に関する技術的制約として、標準APIは録音済みファイルのバッチ処理に最適化されており、ストリーミング形式のリアルタイム処理にはLive API等の併用が必要な点に留意してください。最新モデルでは多人数が参加する複雑な音声でも、個々の話者を正確に識別し、誰が何を発言したかを明確に区別した出力が得られます。
対応音声フォーマットと制限事項
Gemini APIは、音声ファイルの文字起こしや分析を行う際、複数の音声フォーマットに対応しています。具体的には、WAV (audio/wav)、MP3 (audio/mp3)、AIFF (audio/aiff)、AAC (audio/aac)、OGG Vorbis (audio/ogg)、FLAC (audio/flac) のMIMEタイプがサポートされています。音声データは、ファイルを事前にアップロードする方法と、リクエストにインラインで埋め込む方法のいずれかで提供できます。ただし、リクエスト全体のサイズが20MBを超える場合は、Files APIを用いたアップロードが必須となります。
技術的な制約事項として、音声は16kHzのサンプルレートにダウンサンプリングされ、マルチチャンネルの音源は単一チャンネルに結合されて処理されます。また、1回のプロンプトで処理できる音声データの合計長は最大9.5時間までという上限があります。音声ファイルの数自体に制限はありませんが、全てのファイルの合計再生時間がこの上限を超えてはなりません。
APIを活用したプログラム実装
Gemini APIを用いたプログラム実装では、音声ファイルのアップロードとインラインでのデータ送信、2つの主要な方法があります。ファイルサイズが20MBを超える場合や、同じ音声を繰り返し使用する場合は、Files APIを利用した事前アップロードが推奨されます。アップロードされたファイルはURIで参照され、generate_contentメソッドのコンテンツ部にテキストプロンプトと共に渡します。
一方、リクエスト全体が20MB以内に収まる小さいファイルの場合は、音声データをBase64エンコードしてリクエストに直接埋め込むインライン方式が利用できます。実装はPython、JavaScript、Go、REST APIなど多様な言語と方法に対応しており、公式ドキュメントに各言語でのコードサンプルが提供されています。
音声の文字起こしを取得するには、「この音声の文字起こしを生成してください」など、プロンプトで明示的に指示します。より高度な活用として、response_mime_typeとresponse_schemaを設定することで、JSON形式で構造化された出力を得ることが可能です。これにより、タイムスタンプ付きの文字起こしセグメント、言語検出、感情分析、要約などを一括して取得するアプリケーションを構築できます。
トークン計算とコスト管理
Gemini APIを利用した音声文字起こしでは、トークン計算とコスト管理が重要なポイントとなります。音声データのトークン数は、処理される内容に基づいて計算されます。この計算に基づき、処理する音声ファイルの長さや内容から、おおよそのトークン使用量とAPIコストを見積もることが可能です。
具体的なコスト管理には、countTokensメソッドの活用が有効です。このメソッドを使用すると、アップロードした音声ファイルや、プロンプトを含むリクエスト全体のトークン数を事前に確認できます。これにより、予想外の高額な請求を防ぎ、予算内で効率的に文字起こしタスクを実行できます。特に、長時間の音声ファイルを扱う際や、複数のファイルを一括で処理する際には、事前のトークン計算がコスト管理の基本となります。
商用利用においては、Google AI Studioの利用規約およびGemini APIのライセンス条項を遵守する必要があります。生成された文字起こしの内容を商用サービスに組み込む場合など、具体的な利用形態によっては、追加の確認や契約が必要となる可能性がある点に留意してください。
代替ツールとの比較と選択基準
Gemini APIを利用した文字起こしを検討する際、代替ツールとの比較は重要な選択基準となります。主な比較ポイントは、リアルタイム処理の可否、コスト構造、商用利用の条件、そして既存システムへの統合性です。Gemini APIは、最新のGemini 3 ProやGemini 2.5シリーズに代表されるように、音声の内容理解だけでなく、話者識別(ダイアライゼーション)、感情分析、多言語対応といった高度な分析を単一のリクエストで完結できる点が最大の強みです。ただし、標準的なAPIは録音済みファイルのバッチ処理向けであり、リアルタイムの文字起こしが必要な場合は、Live APIやGoogle CloudのSpeech-to-Text APIの利用が推奨されています。
商用利用に関しては、Gemini APIは入力・出力の合計トークン量に基づく従量課金制を採用しています。音声データは1秒あたり32トークンとして計算され、Gemini 3.1 Flash-Liteのような軽量・高速モデルを選択することで、高いコストパフォーマンスを実現できます。商用サービスに組み込む際は、Google AI StudioおよびGemini APIの利用規約を遵守する必要があり、特に大規模な運用では、事前にcountTokensメソッドを使用してコスト見積もりを行うことが実用的です。
一方、専門的な議事録作成サービスやSaaSツールは、ZoomやTeamsなどのWeb会議プラットフォームとの直接連携、自動化されたワークフロー、特定の法規制への準拠などを特徴としています。Gemini APIは非常に高い柔軟性と、最大22時間分(モデルのコンテキストウィンドウに依存)の音声を一度に読み込める圧倒的な情報処理能力を持っていますが、特定のプラットフォームに特化した機能を求める場合は専用ツールの併用も選択肢となります。自社の開発リソースや、データのカスタマイズ性の必要度に応じて、最適なツールを選択することが重要です。
Geminiで文字起こしのやり方:音声からテキストへの変換ガイド:まとめ
- Gemini APIで音声を文字起こしするには、Files APIでファイルをアップロードし、プロンプトと共に送信する。
- 最新モデルとして
Gemini 3 Pro、Gemini 3.1 Flash-Lite、Gemini 2.5 Pro/Flashなどが利用可能。 - 音声データはFiles API経由か、20MB以下の場合はリクエストへのインライン埋め込みが可能。
- プロンプトによる柔軟な指示により、全文の書き出しから特定トピックの抽出まで高度な制御ができる。
response_mime_typeにJSONを指定することで、タイムスタンプや感情データを含む構造化出力を得られる。- 特定の時間範囲(例:02:30から03:29)を指定したピンポイントの文字起こしも指示可能。
- 標準APIは録音済みファイルのバッチ処理に適しており、リアルタイム対話には
Live APIが推奨される。 - 対応形式は MP3, WAV, AIFF, AAC, OGG Vorbis, FLAC など主要な音声フォーマットに対応。
- 膨大なコンテキストウィンドウにより、単一プロンプトで合計9.5時間から最大22時間分(モデル依存)の音声を処理可能。
- 音声は1秒あたり32トークンとして換算され、
countTokensメソッドで事前にコスト見積もりができる。 - 多言語音声の自動検出に加え、文字起こしと同時に指定した言語への翻訳を実行できる。
- 音声セグメントごとの感情分析(Happy, Sad, Angry, Neutralなど)の実装もプロンプトで可能。
- 高度な話者識別(ダイアライゼーション)機能を備え、複数人が参加する会議でも発言者を正確に区別できる。
- 議事録の自動作成、要約、アクションアイテムの抽出を一度のリクエストで完結させることが可能。
- 商用利用は入力・出力トークン量に基づく従量課金制であり、プロジェクトに応じた適切なモデル選択が重要。
【参考リンク】
- https://ai.google.dev/gemini-api/docs/audio
- https://www.sally.io/blog/google-gemini-transcription
- https://www.alltechnerd.com/how-to-transcribe-audios-and-calls-in-gemini/
- https://cloud.google.com/blog/topics/partners/how-partners-unlock-scalable-audio-transcription-with-gemini
- https://github.com/mikeesto/gemini-transcribe
- https://vomo.ai/blog/can-gemini-transcribe-audio-with-step-by-step-guide
- https://geminibyexample.com/010-audio-transcription/
- https://airankchecker.net/blog/can-gemini-transcribe-audio/
- https://towardsdatascience.com/unlocking-multimodal-video-transcription-with-gemini/
- https://gemini-transcribe.fly.dev/
- https://www.knowleful.ai/plus/rabbit-gemini-transcription-guide/
- https://ai.google.dev/gemini-api/docs/audio?hl=ja
- https://docs.cloud.google.com/vertex-ai/generative-ai/docs/samples/generativeaionvertexai-gemini-audio-transcription?hl=ja
- https://cloud.google.com/blog/ja/topics/partners/how-partners-unlock-scalable-audio-transcription-with-gemini?hl=ja
- https://tech-camp.in/ai-navi/gemini-transcription/