Chirp 3: 多言語での精度の向上

Chirp 3 は、フィードバックと経験に基づいてユーザーのニーズを満たすように設計された、Google の最新世代の多言語 ASR 専用生成モデルです。初代の Chirp モデルと Chirp 2 モデルと比べて精度と速度が向上し、ダイアライゼーション(発言者の識別・分離)などの重要な新機能が追加されています。

モデルの詳細

Chirp_3 の詳細

モデル ID

Chirp 3 は Speech-to-Text API V2 でのみ使用可能で、他のモデルと同様に使用できます。API を使用する場合は認識リクエストで適切な ID を指定します。 Google Cloud コンソールを使用する場合はモデル名を指定します。

モデル モデル ID
Chirp 3 chirp_3

API メソッド

認識メソッドによってサポートされている対応言語セットは異なります。Chirp 3 は Speech-to-Text API V2 で使用できるため、次の認識メソッドがサポートされています。

API API メソッドのサポート サポート
v2 Speech.BatchRecognize(1 分~1 時間の長い音声に最適) サポート対象
v2 Speech.Recognize(1 分未満の音声に最適) サポート対象外
v2 Speech.StreamingRecognize(ストリーミングとリアルタイム音声に最適) サポート対象外

ご利用いただけるリージョン

Chirp 3 は、次の Google Cloud リージョンで利用できます。今後さらに追加される予定です。

Google Cloud ゾーン 提供状況
us-west1 限定公開プレビュー

ここで説明されているように、Location API を使用して、各音声文字変換モデルでサポートされている最新の Google Cloud のリージョン、言語とロケール、機能の一覧を確認できます。

音声文字変換の対応言語

Chirp 3 は、BatchRecognize で次の言語の音声文字変換のみをサポートしています。

言語BCP-47 コード
アラビア語(エジプト)ar-EG
アラビア語(サウジアラビア)ar-SA
ベンガル語(バングラデシュ)bn-BD
ベンガル語(インド)bn-IN
チェコ語(チェコ共和国)cs-CZ
デンマーク語(デンマーク)da-DK
ギリシャ語(ギリシャ)el-GR
スペイン語(メキシコ)es-MX
エストニア語(エストニア)et-EE
ペルシャ語(イラン)fa-IR
フィンランド語(フィンランド)fi-FI
フィリピン語(フィリピン)fil-PH
フランス語(カナダ)fr-CA
グジャラト語(インド)gu-IN
クロアチア語(クロアチア)hr-HR
ハンガリー語(ハンガリー)hu-HU
インドネシア語(インドネシア)id-ID
ヘブライ語(イスラエル)iw-IL
カンナダ語(インド)kn-IN
リトアニア語(リトアニア)lt-LT
ラトビア語(ラトビア)lv-LV
マラヤーラム語(インド)ml-IN
マラーティー語(インド)mr-IN
オランダ語(オランダ)nl-NL
ノルウェー語(ノルウェー)no-NO
パンジャブ語(インド)pa-IN
ポーランド語(ポーランド)pl-PL
ポルトガル語(ポルトガル)pt-PT
ルーマニア語(ルーマニア)ro-RO
ロシア語(ロシア)ru-RU
スロバキア語(スロバキア)sk-SK
スロベニア語(スロベニア)sl-SI
セルビア語(セルビア)sr-RS
スウェーデン語(スウェーデン)sv-SE
タミル語(インド)ta-IN
テルグ語(インド)te-IN
タイ語(タイ)th-TH
トルコ語(トルコ)tr-TR
ウクライナ語(ウクライナ)uk-UA
ウルドゥー語(パキスタン)ur-PK
ベトナム語(ベトナム)vi-VN
中国語(中国)zh-CN
中国語(台湾)zh-TW
ズールー語(南アフリカ)zu-SA

ダイアライゼーションの対応言語

言語 BCP-47 コード
中国語(簡体字、中国) cmn-Hans-CN
ドイツ語(ドイツ) de-DE
英語(オーストラリア) en-AU
英語(英国) en-GB
英語(インド) en-IN
英語(米国) en-US
スペイン語(スペイン) es-ES
スペイン語(米国) es-US
フランス語(フランス) fr-FR
ヒンディー語(インド) hi-IN
イタリア語(イタリア) it-IT
日本語(日本) ja-JP
韓国語(韓国) ko-KR
ポルトガル語(ブラジル) pt-BR

機能のサポートと制限事項

Chirp 3 は、次の機能をサポートしています。

機能 説明 リリース ステージ
句読点の自動入力 モデルによって自動的に生成され、必要に応じて無効にできます。 プレビュー
大文字の自動入力 モデルによって自動的に生成され、必要に応じて無効にできます。 プレビュー
話者ダイアライゼーション シングル チャンネルの音声サンプル内の複数の話者を自動的に識別します。 プレビュー
言語に依存しない音声文字変換 モデルが音声ファイルの音声言語を自動的に推論し、最も多く使用されている言語で文字起こしします。 プレビュー

Chirp 3 は、次の機能をサポートしていません。

機能 説明
単語のタイミング(タイムスタンプ) モデルによって自動的に生成され、必要に応じて無効にできます。
単語レベルの信頼スコア API は値を返しますが、正確な信頼スコアではありません。
音声適応(バイアス) フレーズや単語の形式でモデルにヒントを提供することで、特定の用語や固有名詞の認識精度を高めることができます。

Chirp 3 の使用

音声文字変換とダイアライゼーションのタスクに Chirp 3 を使用します。

Chirp 3 バッチ リクエストでダイアライゼーションを使用して文字起こしする

音声文字変換のニーズに Chirp 3 で対応する方法を学びます。

一括音声認識を実行する

Cloud Speech サービスが Cloud Storage ストレージ バケットを読み取れるようにします(これは限定公開プレビュー中に一時的に必要になります)。これには、コマンドラインで Google Cloud CLI コマンドを使用します。

gcloud storage buckets add-iam-policy-binding gs://<YOUR_BUCKET_NAME_HERE> --member=serviceAccount:service-727103546492@gcp-sa-aiplatform.iam.gserviceaccount.com --role=roles/storage.objectViewer

または、次のように Cloud コンソール(http://console.cloud.google.com/storage/browser に移動)を使用して、バケットを選択し、[権限] > [アクセス権を付与] をクリックして、サービス アカウントを追加します。

Speech-to-Text サービス アカウントに IAM 権限を付与しているスクリーンショット。

import os

from google.cloud.speech_v2 import SpeechClient
from google.cloud.speech_v2.types import cloud_speech
from google.api_core.client_options import ClientOptions

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")

def transcribe_batch_chirp3(
    audio_uri: str,
) -> cloud_speech.BatchRecognizeResults:
    """Transcribes an audio file from a Google Cloud Storage URI using the Chirp 3 model of Google Cloud Speech-to-Text V2 API.
    Args:
        audio_uri (str): The Google Cloud Storage URI of the input
          audio file. E.g., gs://[BUCKET]/[FILE]
    Returns:
        cloud_speech.RecognizeResponse: The response from the
           Speech-to-Text API containing the transcription results.
    """

    # Instantiates a client
    client = SpeechClient(
        client_options=ClientOptions(
            api_endpoint="us-west1-speech.googleapis.com",
        )
    )

    speaker_diarization_config = cloud_speech.SpeakerDiarizationConfig(
        min_speaker_count=1,  # minimum number of speakers
        max_speaker_count=6,  # maximum expected number of speakers
    )

    config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["en-US"],  # Use "auto" to detect language
        model="chirp_3",
        features=cloud_speech.RecognitionFeatures(
            diarization_config=speaker_diarization_config,
        ),
    )

    file_metadata = cloud_speech.BatchRecognizeFileMetadata(uri=audio_uri)

    request = cloud_speech.BatchRecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/us-west1/recognizers/_",
        config=config,
        files=[file_metadata],
        recognition_output_config=cloud_speech.RecognitionOutputConfig(
            inline_response_config=cloud_speech.InlineOutputConfig(),
        ),
    )

    # Transcribes the audio into text
    operation = client.batch_recognize(request=request)

    print("Waiting for operation to complete...")
    response = operation.result(timeout=120)

    for result in response.results[audio_uri].transcript.results:
        print(f"Transcript: {result.alternatives[0].transcript}")
        print(f"Detected Language: {result.language_code}")
        print(f"Speakers per word: {result.alternatives[0].words}")

    return response.results[audio_uri].transcript

Google Cloud コンソールで Chirp 3 を使用する