音声から音声への翻訳機能は、AI を使用して言語を解釈し、異なる言語を話す個人とシステム間の会話を可能にします。アプリケーションは、この機能を使用して、ある言語の音声を含む音声ストリームを処理し、別の言語にリアルタイムで翻訳できます。
ターンベースの会話をサポートする他の Live API 機能とは異なり、音声から音声への翻訳では、音声入力が継続的に処理され、次の出力が利用可能になるとストリーミングされます。
- 音声文字変換: 入力音声ストリームから認識された原文言語のテキスト。
- 翻訳: ターゲット言語に翻訳されたテキスト。
- 合成音声: 元の話し手の声と一致するターゲット言語で読み上げられた翻訳テキストの音声ストリーム。
サポートされているモデル
音声から音声への翻訳には、次のモデルを使用できます。
| モデル バージョン | 可用性レベル |
|---|---|
gemini-2.5-flash-s2st-exp-11-2025 |
非公開試験運用版 |
入力音声の要件
音声から音声への翻訳は音声入力のみをサポートしています。サポートされている音声形式、コーデック、サンプルレートなどの仕様については、サポートされている音声形式をご覧ください。
音声翻訳を使用する
音声から音声への翻訳を使用するには、次のコード例をご覧ください。
Python
# Set language_code to your desired language, in this case, Mandarin Chinese. speech_config = SpeechConfig(language_code="cmn") config = LiveConnectConfig( response_modalities=["AUDIO"], speech_config=speech_config, input_audio_transcription=input_transcription, output_audio_transcription=output_transcription, ) audio_file = Part.from_uri(file_uri=audio_url, mime_type="audio/mpeg") contents = [audio_file] response = client.models.generate_content(model=MODEL_ID, contents=contents) display(Markdown(response.text))
Python
import asyncio # Set model generation_config CONFIG = { "response_modalities": ["AUDIO"], "speech_config": { "language_code": "cmn", }, } headers = { "Content-Type": "application/json", "Authorization": f"Bearer {bearer_token[0]}", } # Connect to the server async with connect(SERVICE_URL, additional_headers=headers) as ws: # Setup the session await ws.send( json.dumps( { "setup": { "model": MODEL, "generation_config": CONFIG, "input_audio_transcription": {}, "output_audio_transcription": {}, "enable_speech_to_speech_translation": True, } } ) ) # Receive setup response raw_response = await ws.recv(decode=False) setup_response = json.loads(raw_response.decode("ascii")) print(setup_response) msg = { "realtime_input": { "audio": { "mime_type": "audio/pcm", "data": base64.b64encode(wav_data).decode('utf-8'), } } } await ws.send(json.dumps(msg)) overall_responses = [] timeout_seconds = 10 # Set timeout to 3 seconds # Receive chucks of server response with a timeout try: while True: try: raw_response = await asyncio.wait_for(ws.recv(decode=False), timeout_seconds) response = json.loads(raw_response.decode()) server_content = response.pop("serverContent", None) if server_content is None: break # Input Transcription. input_transcription = server_content.pop("inputTranscription", None) if input_transcription is not None: raw_text = input_transcription.pop("text", None) if raw_text is not None: display(Markdown(f"**Input >** {raw_text}")) # Output Transcription. output_transcription = server_content.pop("outputTranscription", None) if output_transcription is not None: raw_text = output_transcription.pop("text", None) if raw_text is not None: display(Markdown(f"**Response >** {raw_text}")) model_turn = server_content.pop("modelTurn", None) if model_turn is not None: parts = model_turn.pop("parts", None) if parts is not None: for part in parts: pcm_data = base64.b64decode(part["inlineData"]["data"]) overall_responses.append(np.frombuffer(pcm_data, dtype=np.int16)) # End of turn # turn_complete = server_content.pop("turnComplete", None) # if turn_complete: # break except asyncio.TimeoutError: print(f"Timeout: No response received from the websocket within {timeout_seconds} seconds.") if overall_responses: display(Audio(np.concatenate(overall_responses), rate=24000, autoplay=True)) break # Exit the loop on timeout except websockets.exceptions.ConnectionClosed as e: print(f"Connection closed by exception, code: {e.code}, reason: {e.reason}") if overall_responses: display(Audio(np.concatenate(overall_responses), rate=24000, autoplay=True)) break # Exit the loop on connection closed except Exception as e: print(f"An unexpected error occurred: {e}") if overall_responses: display(Audio(np.concatenate(overall_responses), rate=24000, autoplay=True)) break # Exit the loop on other exceptions finally: try: await ws.close(code=1000, reason="Normal closure") #example close except websockets.exceptions.ConnectionClosed as e: print(f"Connection closed by exception, code: {e.code}, reason: {e.reason}") except Exception as e: print(f"An unexpected error occurred: {e}")
サポートされている言語
| 言語コード | 言語 |
|---|---|
| aa | アファール |
| ab | アブハズ語 |
| ace | アチェ語 |
| ach | アチョリ語 |
| af | アフリカーンス語 |
| ak | アカン語 |
| alz | アルール語 |
| am | アムハラ語 |
| an | アラゴン語 |
| ar | アラビア語 |
| as | アッサム語 |
| av | アヴァル語 |
| awa | アワディー語 |
| ay | アイマラ語 |
| az | アゼルバイジャン語 |
| ba | バシキール語 |
| bal | バルーチー語 |
| ban | バリ語 |
| bbc | バタクトバ語 |
| bci | バウレ語 |
| be | ベラルーシ語 |
| bem | ベンバ語 |
| ber | ベルベル語 |
| bew | ベタウィ語 |
| bg | ブルガリア語 |
| bgc | ハリヤーンウィー語 |
| bho | ボージュプリー語 |
| bi | ビスラマ語 |
| bm | バンバラ語 |
| bn | ベンガル語 |
| bo | チベット語 |
| br | ブルトン語 |
| bs | ボスニア語 |
| bts | バタク シマルングン語 |
| btx | バタク カロ語 |
| ca | カタルーニャ語 |
| ce | チェチェン語 |
| ceb | セブアノ語 |
| cgg | チガ語 |
| ch | チャモロ語 |
| chk | チューク語 |
| cmn | 標準中国語 |
| cnh | ハカ チン語 |
| co | コルシカ語 |
| cr | クリー語 |
| crh | クリミア タタール語 |
| crs | セーシェル クレオール フランス語 |
| cs | チェコ語 |
| cv | チュヴァシ語 |
| cy | ウェールズ語 |
| da | デンマーク語 |
| de | ドイツ語 |
| din | ディンカ語 |
| doi | ドグリ語 |
| dov | ドンベ語 |
| dv | ディベヒ語 |
| dyu | ジュラ語 |
| dz | ゾンカ語 |
| ee | エウェ語 |
| el | ギリシャ語 |
| en | 英語 |
| eo | エスペラント語 |
| es | スペイン語 |
| et | エストニア語 |
| eu | バスク語 |
| fa | ペルシア語 |
| ff | フラニ語 |
| fi | フィンランド語 |
| fil | フィリピン語 |
| fj | フィジー語 |
| fo | フェロー語 |
| fon | フォン語 |
| fr | フランス語 |
| fur | フリウリ語 |
| fy | 西フリジア語 |
| ga | アイルランド語 |
| gaa | ガ語 |
| gd | ゲール語 |
| gl | ガリシア語 |
| gn | グアラニ語 |
| gu | グジャラート語 |
| gv | マン島語 |
| ha | ハウサ語 |
| haw | ハワイ語 |
| he | ヘブライ語 |
| hi | ヒンディー語 |
| hil | ヒリガイノン語 |
| hmn | モン語 |
| ho | ヒリモツ語 |
| hr | クロアチア語 |
| hrx | フンスリュック語 |
| ht | ハイチ語、ハイチ クレオール語 |
| hu | ハンガリー語 |
| hy | アルメニア語 |
| hz | ヘレロ語 |
| iba | イバン語 |
| id | インドネシア語 |
| ig | イボ語 |
| ilo | イロカノ語 |
| is | アイスランド語 |
| it | イタリア語 |
| iu | イヌクティトゥト語 |
| ja | 日本語 |
| jam | ジャマイカ クレオール英語 |
| jv | ジャワ語 |
| ka | ジョージア語 |
| kac | カチン語 |
| kek | ケクチ語 |
| kg | コンゴ語 |
| kha | カーシ語 |
| ki | キクユ語 |
| kj | クワニャマ語 |
| kk | カザフ語 |
| kl | グリーンランド語 |
| km | 中央クメール語 |
| kn | カンナダ語 |
| ko | 韓国語 |
| kok | コンカニ語 |
| kr | カヌリ語 |
| kri | クリオ語 |
| ks | カシミール語 |
| ktu | キトゥバ語 |
| ku | クルド語 |
| kv | コミ語 |
| kw | コーンウォール語 |
| ky | キルギス語 |
| la | ラテン語 |
| lb | ルクセンブルク語 |
| lg | ガンダ語 |
| li | リンブルフ語 |
| lij | リグリア語 |
| lmo | ロンバルド語 |
| ln | リンガラ語 |
| lo | ラオ語 |
| lt | リトアニア語 |
| lu | ルバカタンガ語 |
| lua | ルバルルア語 |
| luo | Dholuo |
| lus | ミゾ語 |
| lv | ラトビア語 |
| mad | マドゥラ語 |
| mai | マイティリー語 |
| mak | マカッサル語 |
| mam | マム語 |
| mfe | モーリシャス語 |
| mg | マダガスカル語 |
| mh | マーシャル語 |
| min | ミナンカバウ語 |
| mk | マケドニア語 |
| ml | マラヤーラム語 |
| mn | モンゴル語 |
| mr | マラーティー語 |
| ms | マレー語 |
| mt | マルタ語 |
| mwr | マールワーリー語 |
| my | ビルマ語 |
| na | ナウル |
| nb | ノルウェー語[ブークモール] |
| nd | 北ンデベレ語 |
| ndc | ンダウ語 |
| ne | ネパール語 |
| new | ネワール語 |
| ng | ンドンガ語 |
| nhe | ウアステカナワトル語 |
| nl | オランダ語 |
| nn | ノルウェー語(ニーノシク) |
| nr | 南ンデベレ語 |
| nso | ペディ語 |
| nus | ヌエル語 |
| nv | ナヴァホ語 |
| ny | チェワ語 |
| oc | オック語 |
| oj | オジブワ語 |
| om | オロモ語 |
| or | オリヤー語 |
| os | オセット語 |
| pa | パンジャブ語 |
| pag | パンガシナン |
| pam | パンパンガ |
| pap | パピアメント語 |
| pl | ポーランド語 |
| ps | パシュト語 |
| pt | ポルトガル語 |
| qu | ケチュア語 |
| rm | ロマンシュ語 |
| rn | ルンディ語 |
| ro | ルーマニア語 |
| ru | ロシア語 |
| rw | キニヤルワンダ語 |
| sa | サンスクリット |
| sah | ヤクート語 |
| sat | サンタル語 |
| sc | サルデーニャ語 |
| scn | シチリア語 |
| sd | シンド語 |
| se | 北サーミ語 |
| sg | サンゴ語 |
| shn | シャン語 |
| si | シンハラ語 |
| sk | スロバキア語 |
| sl | スロベニア語 |
| sm | サモア語 |
| sn | ショナ語 |
| so | ソマリ語 |
| sq | アルバニア語 |
| sr | セルビア語 |
| ss | スワート語 |
| st | 南ソト語 |
| su | スンダ語 |
| sv | スウェーデン語 |
| sw | スワヒリ語 |
| szl | シレジア語 |
| ta | タミル語 |
| tcy | トゥル語 |
| te | テルグ語 |
| tet | テトゥン語 |
| tg | タジク語 |
| th | タイ語 |
| ti | ティグリニャ語 |
| tiv | ティブ語 |
| tk | トルクメン語 |
| tl | タガログ語 |
| tn | ツワナ語 |
| to | トンガ |
| tpi | トクピシン語 |
| tr | トルコ語 |
| trp | コクバラ語 |
| ts | ツォンガ語 |
| tt | タタール語 |
| tum | トゥンブカ語 |
| tw | トゥイ語 |
| ty | タヒチ語 |
| tyv | トゥバ語 |
| udm | ウドムルト語 |
| ug | ウイグル語 |
| uk | ウクライナ語 |
| ur | ウルドゥー語 |
| uz | ウズベク語 |
| ve | ヴェンダ語 |
| vec | ヴェネト語 |
| vi | ベトナム語 |
| wa | ワロン語 |
| war | ワライ語 |
| wo | ウォロフ語 |
| xh | コーサ語 |
| yi | イディッシュ語 |
| yo | ヨルバ語 |
| yua | ユカテコマヤ語 |
| yue | 広東語 |
| za | チワン語 |
| zh | 中国語 |
| zu | ズールー語 |
課金
音声翻訳は試験運用版の機能であるため、使用しても料金は発生しません。
料金と請求の詳細については、Vertex AI の料金をご覧ください。