Google Distributed Cloud(GDC)エアギャップ上の Vertex AI の Speech-to-Text サービスは、音声ファイルから音声を認識します。Speech-to-Text は、検出された音声を事前トレーニング済みの API を使用してテキストに変換します。
Speech-to-Text には、数百万時間の音声データと数十億の文章でトレーニングされた音声用の高度なモデルである Chirp が含まれています。このモデルは、各言語固有の教師ありデータを大量に使用していた従来の音声認識技術とは異なります。これらの技術により、ユーザーは音声による言語や方言に対応できるようになり、認識と音声文字変換が改善されます。
このページでは、Distributed Cloud で Speech-to-Text API を使用して音声ファイルをテキストに変換する方法について説明します。
始める前に
Speech-to-Text API の使用を開始するには、Speech-to-Text API が有効になっているプロジェクトと適切な認証情報が必要です。また、API の呼び出しを支援するクライアント ライブラリをインストールすることもできます。詳細については、音声認識プロジェクトを設定するをご覧ください。
デフォルト モデルで音声を文字変換する
Speech-to-Text は音声認識を実行します。音声認識を行う音声ファイルを、API リクエストのコンテンツとして直接送信します。システムは、API レスポンスで文字起こしされたテキストを返します。
音声認識リクエストを行う場合は、RecognitionConfig
構成オブジェクトを指定する必要があります。このオブジェクトは、API に音声データの処理方法と想定される出力の種類を伝えます。この構成オブジェクトでモデルが明示的に指定されていない場合、Speech-to-Text はデフォルトのモデルを選択します。
詳細については、Speech
API ドキュメントをご覧ください。
次の例では、デフォルトの Speech-to-Text モデルを使用して音声ファイルから音声を文字に変換します。
Python
Python スクリプトから Speech-to-Text サービスを使用して音声ファイルから音声を文字に変換する手順は次のとおりです。
作成した Python スクリプトに次のコードを追加します。
import base64 from google.cloud import speech_v1p1beta1 import google.auth from google.auth.transport import requests from google.api_core.client_options import ClientOptions audience="https://ENDPOINT:443" api_endpoint="ENDPOINT:443" def get_client(creds): opts = ClientOptions(api_endpoint=api_endpoint) return speech_v1p1beta1.SpeechClient(credentials=creds, client_options=opts) def main(): creds = None try: creds, project_id = google.auth.default() creds = creds.with_gdch_audience(audience) req = requests.Request() creds.refresh(req) print("Got token: ") print(creds.token) except Exception as e: print("Caught exception" + str(e)) raise e return creds def speech_func(creds): tc = get_client(creds) content="BASE64_ENCODED_AUDIO" audio = speech_v1p1beta1.RecognitionAudio() audio.content = base64.standard_b64decode(content) config = speech_v1p1beta1.RecognitionConfig() config.encoding= speech_v1p1beta1.RecognitionConfig.AudioEncoding.ENCODING config.sample_rate_hertz=RATE_HERTZ config.language_code="LANGUAGE_CODE" config.audio_channel_count=CHANNEL_COUNT metadata = [("x-goog-user-project", "projects/PROJECT_ID")] resp = tc.recognize(config=config, audio=audio, metadata=metadata) print(resp) if __name__=="__main__": creds = main() speech_func(creds)
次のように置き換えます。
ENDPOINT
: 組織で使用する Speech-to-Text エンドポイント。詳細については、サービス ステータスとエンドポイントを表示するをご覧ください。PROJECT_ID
: プロジェクト ID。BASE64_ENCODED_AUDIO
: Base64 表現でエンコードされた音声データバイト。この文字列はZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv
に似た文字で始まります。詳細については、RecognitionAudio
をご覧ください。ENCODING
: リクエストで送信される音声データのエンコード(LINEAR16
など)。詳細については、AudioEncoding
をご覧ください。RATE_HERTZ
: リクエストで送信される音声データのサンプルレート(ヘルツ単位)。例:16000
。詳細については、RecognitionConfig
をご覧ください。LANGUAGE_CODE
: 提供された音声の言語を、BCP-47 言語タグで表したもの。サポートされている言語とその言語コードのリストをご覧ください。CHANNEL_COUNT
: 入力音声データのチャンネル数(1
など)。詳細については、RecognitionConfig
をご覧ください。
Python スクリプトを保存します。
Python スクリプトを実行して音声を文字起こしします。
python SCRIPT_NAME
SCRIPT_NAME
は、Python スクリプトに付けた名前に置き換えます(例:speech.py
)。
Chirp による音声文字変換
Speech-to-Text のデフォルト モデルと同様に、音声認識リクエストを行うときに RecognitionConfig
構成オブジェクトを指定する必要があります。Chirp を使用するには、model
フィールドの値を chirp
に設定して、この構成オブジェクトでこのモデルを明示的に指定する必要があります。
次の例では、Chirp モデルを使用して音声ファイルから音声を文字に変換します。
Python
Python スクリプトから Chirp を使用して音声ファイルから音声を文字に変換する手順は次のとおりです。
作成した Python スクリプトに次のコードを追加します。
import base64 # Import the client library. from google.cloud import speech_v1p1beta1 from google.cloud.speech_v1p1beta1.services.speech import client from google.api_core.client_options import ClientOptions api_endpoint="ENDPOINT:443" def get_client(creds): opts = ClientOptions(api_endpoint=api_endpoint) return client.SpeechClient(credentials=creds, client_options=opts) # Specify the audio to transcribe. tc = get_client(creds) content = "BASE64_ENCODED_AUDIO" audio = speech_v1p1beta1.RecognitionAudio() audio.content = base64.standard_b64decode(content) config = speech_v1p1beta1.RecognitionConfig( encoding=speech_v1p1beta1.RecognitionConfig.AudioEncoding.ENCODING, sample_rate_hertz=RATE_HERTZ, audio_channel_count=CHANNEL_COUNT, language_code="LANGUAGE_CODE", model="chirp" ) # Detect speech in the audio file. metadata = (("x-goog-user-project", "projects/PROJECT_ID"),) response = tc.recognize(config=config, audio=audio, metadata=metadata) for result in response.results: print("Transcript: {}".format(result.alternatives[0].transcript))
次のように置き換えます。
ENDPOINT
: 組織で使用する Speech-to-Text エンドポイント。詳細については、サービス ステータスとエンドポイントを表示するをご覧ください。BASE64_ENCODED_AUDIO
: Base64 表現でエンコードされた音声データバイト。この文字列はZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv
に似た文字で始まります。詳細については、RecognitionAudio
をご覧ください。ENCODING
: リクエストで送信される音声データのエンコード(LINEAR16
など)。詳細については、AudioEncoding
をご覧ください。RATE_HERTZ
: リクエストで送信される音声データのサンプルレート(ヘルツ単位)。例:16000
。詳細については、RecognitionConfig
をご覧ください。CHANNEL_COUNT
: 入力音声データのチャンネル数(1
など)。詳細については、RecognitionConfig
をご覧ください。LANGUAGE_CODE
: 提供された音声の言語を、BCP-47 言語タグで表したもの。サポートされている言語とその言語コードのリストをご覧ください。PROJECT_ID
: プロジェクト ID。
Python スクリプトを保存します。
Python スクリプトを実行して音声を文字起こしします。
python SCRIPT_NAME
SCRIPT_NAME
は、Python スクリプトに付けた名前に置き換えます(例:speech.py
)。