Gemini 3.5 Transcribe は、複数の言語で音声をテキストに変換する Google のモデルで、Agent Platform を通じて利用できます。Gemini の音声理解機能に基づいて、発話ベースの言語検出、話者ダイアライゼーション、単語レベルのタイムスタンプ、スマート音声文字変換、カスタム語彙の音声バイアスを使用して、低レイテンシで正確な音声文字変換を実現します。
Gemini 3.5 Transcribe は、音声文字起こしの主要なワークホースとして機能し、深い推論を行うマルチモーダル モデルと高度に最適化された音声入力ワークフローの間のギャップを埋めます。
開始するには、Gemini 3.5 Transcribe の入門ノートブックをご覧ください。
主に次の 2 つのオペレーション方法をサポートしています。
- ストリーミング(ライブ)音声文字変換:
gemini-3.5-transcribe-liveモデルを使用して、音声をストリーミングし、音声文字変換の結果をリアルタイムで段階的に受信します。 - 同期音声文字変換:
gemini-3.5-transcribeモデルを使用して、録音済みの音声ファイル全体を 1 つのリクエストで文字変換します。
機能のサポートと制限事項
Gemini 3.5 Transcribe は、2 つのエンドポイントで次の機能をサポートしています。
| 機能 | ライブ配信(gemini-3.5-transcribe-live) |
音声ファイルの処理(gemini-3.5-transcribe) |
リリース ステージ | 備考 / 制限事項 |
|---|---|---|---|---|
| 言語の自動検出 | サポート対象(85 以上の言語) | サポート対象(85 以上の言語) | サポート対象 | セッション中のコードミキシングを含む。 |
| 発話レベルのタイムスタンプ | サポート対象 | サポート対象外の項目 | サポート対象 | |
| 単語レベルのタイムスタンプ | サポート対象外 | サポート対象 | 試験運用版 | 音声文字変換の精度が低下します。 |
| カスタム語彙のバイアス | サポート対象(最大 1,000 個のキーワード) | サポート対象(最大 1,000 個のキーワード) | サポート対象 | 通常、100 語以下で最適な結果が得られます。 |
| スマートな音声入力と書式設定 | サポート対象(手動エンドポイントを使用) | サポート対象 | 試験運用版 | つなぎ言葉の削除や、インテントを考慮した英数字の書式設定など。ライブ ストリーミングの場合は、手動エンドポイントで使用します。 |
| 話者ダイアライゼーション | サポート対象外 | サポート対象(最大 8 台のスピーカー) | 試験運用版 | 3 人以上の話者のアトリビューションは試験運用版です。 |
| 最大音声時間 | 最大 10 分 | 最長 15 分 | サポート対象 | ダイアライゼーションやタイムスタンプなどの機能が有効になっている場合、ファイル処理は 15 分に制限されます。 |
ライブ配信の音声文字変換
BidiGenerateContent (Live) API は、音声の小さなチャンクをモデルにストリーミングし、音声文字変換の結果が利用可能になると、その結果を段階的に受信する間、開いたままになります。これは、マイク入力の準リアルタイムの字幕生成または音声文字変換に使用されます。
コードを記述せずに音声文字変換のストリーミングを試すには、Agent Studio の Gemini Live API ページで gemini-3.5-transcribe-live を開き、音声を録音またはアップロードして、音声文字変換のストリーミングを確認します。
Agent Studio で Gemini 3.5 Transcribe を試す
ストリーミング音声を文字変換するには、LiveConnectConfig を作成し、input_audio_transcription 構成とともに response_modalities を ["TEXT"] に設定します。
import asyncio
from google import genai
from google.genai import types
client = genai.Client(enterprise=True, project=PROJECT_ID, location=LOCATION)
config = types.LiveConnectConfig(
response_modalities=["TEXT"],
input_audio_transcription=types.AudioTranscriptionConfig(
language_codes=["it-IT", "en-US"],
),
)
async def streaming_main(audio_file, config):
# Connect to the Live API session
async with client.aio.live.connect(model="gemini-3.5-transcribe-live", config=config) as session:
# In a complete implementation, you would chunk the audio and send via:
# await session.send_realtime_input(audio=types.Blob(data=data, mime_type="audio/pcm;rate=16000"))
# await session.send_realtime_input(audio_stream_end=True)
async for message in session.receive():
if message.server_content:
server_content = message.server_content
# Track the active interim segment
interim = server_content.interim_input_transcription
if interim and interim.text:
print(f"Interim: {interim.text}")
# Save final transcript and clear the interim
final = server_content.input_transcription
if final and final.text:
print(f"Final: {final.text}")
同期音声文字変換
標準の generate_content メソッドを使用すると、すでに録音されている完全な音声ファイルを文字変換できます。GenerateContentConfig 内に AudioTranscriptionConfig を作成して、パラメータを構成します。
単語レベルのタイムスタンプ
word_timestamp=True を設定すると、単語レベルのタイミングが返されます。レスポンスの audio_transcription.words リストには、認識された各単語とその start_offset と end_offset が含まれます。
from google import genai
from google.genai import types
# Initialize the client for Vertex AI / Agent Platform
client = genai.Client(enterprise=True, project=PROJECT_ID, location=LOCATION)
with open("input.wav", "rb") as f:
audio_bytes = f.read()
response = client.models.generate_content(
model="gemini-3.5-transcribe",
contents=[
types.Part.from_bytes(
data=audio_bytes,
mime_type="audio/wav",
),
],
config=types.GenerateContentConfig(
audio_transcription_config=types.AudioTranscriptionConfig(
word_timestamp=True,
),
),
)
parts = getattr(response, "parts", []) or []
if parts and (audio_tx := getattr(parts[0], "audio_transcription", None)):
for w in getattr(audio_tx, "words", []) or []:
print(f"[{w.start_offset} - {w.end_offset}] {w.word}")
if text := "".join(p.text for p in parts if getattr(p, "text", None)):
print(f"**{text}**")
話者ダイアライゼーションとカスタム語彙
diarization=True に設定すると、モデルは個々の話者を識別してラベル付けします。custom_vocabulary フィールドにフレーズのリストを指定して、Gemini 3.5 Transcribe が特定の用語を認識するようにバイアスをかけることもできます。一般的に、language_codes を使用して言語も指定すると、モデルはカスタム語彙の指示に確実に従います。
response = client.models.generate_content(
model="gemini-3.5-transcribe",
contents=[
types.Part.from_uri(
file_uri="gs://cloud-samples-data/generative-ai/audio/coffee_order.wav",
mime_type="audio/wav",
),
],
config=types.GenerateContentConfig(
audio_transcription_config=types.AudioTranscriptionConfig(
diarization=True,
language_codes=["en-US"],
custom_vocabulary=["oatmilk", "oz"],
),
),
)
parts = getattr(response, "parts", []) or []
for p in parts:
audio_tx = getattr(p, "audio_transcription", None)
speaker = getattr(audio_tx, "speaker_label", "UNKNOWN") if audio_tx else "UNKNOWN"
text = getattr(p, "text", "") or (getattr(audio_tx, "text", "") if audio_tx else "")
if text:
print(f"**{speaker}**: {text}")
音声文字変換モード
Gemini 3.5 Transcribe は、AudioTranscriptionConfig の mode パラメータを介して 2 つの音声文字変換モードをサポートしています。
VERBATIM(デフォルト): 話された内容をそのまま一語一句正確に文字に変換します。つなぎ言葉(「えー」、「あの」、「えっと」、「まあ」など)、繰り返し、間、言い直しもそのまま残ります。SMART(スマート音声文字変換): インテリジェントな後処理を適用して、読みやすいように音声文字変換を最適化します。- 言いよどみの除去: 会話のつなぎ言葉、言いよどみ、言い直しを削除します。
- インラインの自己修正: 音声による修正を直接解決します(例: 「火曜日に会いましょう。いや、水曜日の 2 時に」が「水曜日の午後 2 時に会いましょう」になります)。
- 自動構造化フォーマット: 話した内容を段落、番号付きリスト、箇条書き、フォーマットされた日付、通貨、数字に自動的に構造化します。
- 文法の調整: 自然な句読点、文の大文字と小文字の使い分け、流れを適用します。
| 音声 | VERBATIM の出力 |
SMART(スマート音声文字変換)の出力 |
|---|---|---|
| 「ええと、会議には、アリスを招待すべきだと思います。いや、ボブとキャロルを招待すべきです。」 | 「ええと、会議にはアリスを招待すべきだと思います。いや、ボブとキャロルを招待すべきです。」 | 「会議には、ボブとキャロルを招待すべきだと思います。」 |
| 「1 つ目の項目: 予算を確認する、2 つ目の項目: タイムラインを確定する、3 つ目の項目: 要約を送信する」 | 「1 つ目の項目: 予算の確認、2 つ目の項目: タイムラインの確定、3 つ目の項目: 要約の送信」 | 「1. 予算を確認する 2. タイムラインを確定する 3. ハイライトを送信」 |
SMART モードでの同期音声文字変換
response = client.models.generate_content(
model="gemini-3.5-transcribe",
contents=[
types.Part.from_bytes(
data=audio_bytes,
mime_type="audio/wav",
),
],
config=types.GenerateContentConfig(
audio_transcription_config=types.AudioTranscriptionConfig(
mode="SMART",
),
),
)
SMART モードと手動エンドポイント設定を使用したライブ音声文字変換
ライブ ストリーミング音声文字変換(gemini-3.5-transcribe-live)で SMART モードを使用する場合は、自動 VAD ではなく手動エンドポイント(手動音声アクティビティ検出)を使用する必要があります。SMART モードでは、インラインの自己修正の解決やリストや段落の構造化など、発話レベルの後処理が適用されるため、自動 VAD によって、自然な一時停止中にユーザーの思考が途中で分割される可能性があります。
手動エンドポイントを構成するには、RealtimeInputConfig で automatic_activity_detection を無効にし、activity_start と activity_end を使用してユーザーの発話ターンの開始と終了を明示的にマークします。
config = types.LiveConnectConfig(
response_modalities=["TEXT"],
realtime_input_config=types.RealtimeInputConfig(
automatic_activity_detection=types.AutomaticActivityDetection(
disabled=True,
),
),
input_audio_transcription=types.AudioTranscriptionConfig(
mode="SMART",
),
)
async with client.aio.live.connect(
model="gemini-3.5-transcribe-live", config=config
) as session:
# Signal start of speech turn
await session.send_realtime_input(activity_start=types.ActivityStart())
# Stream audio chunks...
await session.send_realtime_input(
audio=types.Blob(data=audio_bytes, mime_type="audio/pcm;rate=16000")
)
# Signal end of speech turn so SMART mode can process the complete utterance
await session.send_realtime_input(activity_end=types.ActivityEnd())
言語サポート
Gemini 3.5 Transcribe では、次の言語と BCP-47 言語コードがサポートされています。
| 言語 | BCP-47 コード | Readiness | 言語 | BCP-47 コード | Readiness |
|---|---|---|---|---|---|
| アフリカーンス語 | af-ZA |
試験運用版 | 日本語 | ja-JP |
サポート対象 |
| アムハラ語 | am-ET |
試験運用版 | ジャワ語 | jv-ID |
試験運用版 |
| アラビア語(エジプト) | ar-EG |
試験運用版 | カーボベルデ クレオール語 | kea-CV |
試験運用版 |
| アルメニア語 | hy-AM |
試験運用版 | カンナダ語 | kn-IN |
試験運用版 |
| アッサム語 | as-IN |
試験運用版 | カザフ語 | kk-KZ |
試験運用版 |
| アゼルバイジャン語 | az-AZ |
試験運用版 | 韓国語 | ko-KR |
サポート対象 |
| ベラルーシ語 | be-BY |
試験運用版 | キルギス語 | ky-KG |
試験運用版 |
| ベンガル語(バングラデシュ) | bn-BD |
試験運用版 | ラトビア語 | lv-LV |
試験運用版 |
| ベンガル語(インド) | bn-IN |
試験運用版 | リンガラ語 | ln-CD |
試験運用版 |
| ボスニア語 | bs-BA |
試験運用版 | リトアニア語 | lt-LT |
試験運用版 |
| ブルガリア語 | bg-BG |
試験運用版 | マケドニア語 | mk-MK |
試験運用版 |
| ブルガリア語(アルーマニア語) | rup-BG |
試験運用版 | マレー語 | ms-MY |
試験運用版 |
| ビルマ語 | my-MM |
試験運用版 | マラヤーラム語 | ml-IN |
試験運用版 |
| 広東語(繁体) | yue-Hant-HK |
試験運用版 | マルタ語 | mt-MT |
試験運用版 |
| カタルーニャ語 | ca-ES |
サポート対象 | 標準中国語(簡体) | cmn-Hans-CN |
サポート対象 |
| セブアノ語 | ceb |
試験運用版 | マラーティー語 | mr-IN |
試験運用版 |
| 中央クメール語 | km-KH |
試験運用版 | モンゴル語 | mn-MN |
試験運用版 |
| クロアチア語 | hr-HR |
サポート対象 | ネパール語 | ne-NP |
試験運用版 |
| チェコ語 | cs-CZ |
試験運用版 | ノルウェー語 | nb-NO |
試験運用版 |
| デンマーク語 | da-DK |
サポート対象 | オリヤ語 | or-IN |
試験運用版 |
| オランダ語 | nl-NL |
サポート対象 | ポーランド語 | pl-PL |
サポート対象 |
| 英語(オーストラリア) | en-AU |
サポート対象 | ポルトガル語(ブラジル) | pt-BR |
サポート対象 |
| 英語(英国) | en-GB |
サポート対象 | ポルトガル語(ポルトガル) | pt-PT |
サポート対象 |
| 英語(インド) | en-IN |
サポート対象 | パンジャブ語 | pa-IN |
試験運用版 |
| 日本語 | en-US |
サポート対象 | パンジャブ語(グルムキー文字) | pa-Guru-IN |
試験運用版 |
| エストニア語 | et-EE |
試験運用版 | ルーマニア語 | ro-RO |
サポート対象 |
| ペルシア語 | fa-IR |
試験運用版 | ロシア語 | ru-RU |
サポート対象 |
| フィリピン語 | fil-PH |
試験運用版 | セルビア語 | sr-RS |
試験運用版 |
| フィンランド語 | fi-FI |
サポート対象 | シンド語(アラビア文字) | sd-Arab-IN |
試験運用版 |
| フランス語 | fr-FR |
サポート対象 | スロバキア語 | sk-SK |
試験運用版 |
| フランス語(カナダ) | fr-CA |
サポート対象 | スロベニア語 | sl-SI |
試験運用版 |
| ガリシア語 | gl-ES |
試験運用版 | スペイン語(ラテンアメリカ) | es-419 |
試験運用版 |
| ジョージア語 | ka-GE |
試験運用版 | スペイン語(スペイン) | es-ES |
サポート対象 |
| ドイツ語 | de-DE |
サポート対象 | スペイン語(米国) | es-US |
サポート対象 |
| ギリシャ語 | el-GR |
サポート対象 | スワヒリ語(ケニア) | sw-KE |
試験運用版 |
| グジャラート語 | gu-IN |
試験運用版 | スウェーデン語 | sv-SE |
サポート対象 |
| ハウサ語 | ha-NG |
試験運用版 | タジク語 | tg-TJ |
試験運用版 |
| ヘブライ語 | he-IL |
試験運用版 | テルグ語 | te-IN |
試験運用版 |
| ヒンディー語 | hi-IN |
サポート対象 | タイ語 | th-TH |
試験運用版 |
| ハンガリー語 | hu-HU |
試験運用版 | トルコ語 | tr-TR |
サポート対象 |
| アイスランド語 | is-IS |
試験運用版 | ウクライナ語 | uk-UA |
サポート対象 |
| インドネシア語 | id-ID |
試験運用版 | ウズベク語 | uz-UZ |
試験運用版 |
| イタリア語 | it-IT |
サポート対象 | ベトナム語 | vi-VN |
サポート対象 |
ご利用いただけるリージョン
Gemini 3.5 Transcribe は、次の Cloud de Confiance by S3NS ロケーションで利用できます。
| エンドポイント | Cloud de Confiance by S3NS 位置情報 | 提供状況 |
|---|---|---|
gemini-3.5-transcribe |
global |
サポート対象 |
gemini-3.5-transcribe |
us |
サポート対象 |
gemini-3.5-transcribe |
eu |
サポート対象 |
gemini-3.5-transcribe-live |
global |
サポート対象 |
gemini-3.5-transcribe-live |
us |
サポート対象 |
gemini-3.5-transcribe-live |
eu |
サポート対象 |
ベスト プラクティス
- クリア音声を提供する: 音声録音で音声が明確に分離されていることを確認し、深刻なクリッピングを避けます。
- 言語ヒントを提供する(既知の場合): 音声の言語が事前にわかっている場合は、
language_codesを指定して精度を最大化します。 - カスタム語彙をターゲットにする:
custom_vocabularyには、一般的な日常語ではなく、分野固有の用語、ブランド名、固有名詞のみを含めます。 - ライブ音声文字変換で
SMARTモードの手動エンドポイントを使用する: 自動 VAD(automatic_activity_detection)を無効にし、activity_start信号とactivity_end信号を明示的に送信して、モデルが発話全体に言いよどみの除去、自己修正、フォーマットを適用できるようにします。
| モデル ID | ['gemini-3.5-transcribe', 'gemini-3.5-transcribe-live'] |
|
|---|---|---|
| モダリティ |
|
|
| 機能 |
|
|
| ツール |
|
|
| API |
|
|
| 使用オプション |
|
|
| サポートされるリージョン |
|
|
|
||
| バージョン |
|
|