Chirp 2: Akurasi multibahasa yang ditingkatkan

Chirp 2 adalah model khusus ASR multibahasa generasi terbaru dari Google, yang dirancang untuk memenuhi kebutuhan pengguna berdasarkan masukan dan pengalaman. Model ini meningkatkan akurasi dan kecepatan model Chirp asli, serta memperluas ke fitur baru utama seperti stempel waktu tingkat kata, adaptasi model, dan terjemahan ucapan.

Mencoba notebook Colab Lihat notebook di GitHub

Detail model

Chirp 2 tersedia secara eksklusif dalam Speech-to-Text API V2.

ID model

Anda dapat menggunakan Chirp 2 seperti model lainnya dengan menentukan ID model yang sesuai dalam permintaan pengenalan saat menggunakan API atau nama model saat berada di konsol Google Cloud.

Model Pengenal model
Chirp 2 chirp_2

Metode API

Karena Chirp 2 tersedia secara eksklusif dalam Speech-to-Text API V2, Chirp 2 mendukung metode pengenalan berikut:

Model Pengenal model Dukungan bahasa
V2 Speech.StreamingRecognize (cocok untuk streaming dan audio real-time) Terbatas*
V2 Speech.Recognize (cocok untuk audio singkat < 1 menit) Setara dengan Chirp
V2 Speech.BatchRecognize (cocok untuk audio berdurasi panjang 1 menit hingga 8 jam) Setara dengan Chirp

*Anda selalu dapat menemukan daftar terbaru bahasa dan fitur yang didukung untuk setiap model transkripsi, menggunakan locations API.

Ketersediaan regional

Chirp 2 didukung di region berikut:

Google Cloud Zona Kesiapan Peluncuran
us-central1 GA
europe-west4 GA
asia-southeast1 GA

Anda selalu dapat menemukan daftar terbaru Google Cloud wilayah, bahasa, dan fitur yang didukung untuk setiap model transkripsi, menggunakan API lokasi seperti yang dijelaskan di sini.

Ketersediaan bahasa untuk transkripsi

Chirp 2 mendukung transkripsi dalam metode pengenalan StreamingRecognize, Recognize, dan BatchRecognize. Namun, dukungan bahasa berbeda-beda bergantung pada metode yang digunakan. Secara khusus, BatchRecognize menawarkan dukungan bahasa yang paling luas. StreamingRecognize mendukung bahasa berikut:

Bahasa Kode BCP-47
China (Aksara Sederhana, China) cmn-Hans-CN
China (Aksara Tradisional, Taiwan) cmn-hant-tw
China, Kanton (Hong Kong Tradisional) yue-Hant-HK
Inggris (Australia) en-AU
Inggris (India) en-IN
Inggris (Inggris Raya) en-GB
Inggris (Amerika Serikat) en-US
Prancis (Kanada) fr-CA
Prancis (Prancis) fr-FR
Jerman (Jerman) de-DE
Italia (Italia) it-IT
Jepang (Jepang) ja-JP
Portugis (Brasil) pt-BR
Spanyol (Spanyol) es-ES
Spanyol (Amerika Serikat) es-US

Ketersediaan bahasa untuk terjemahan

Berikut adalah bahasa yang didukung untuk terjemahan ucapan. Perhatikan bahwa dukungan bahasa Chirp 2 untuk terjemahan tidak simetris. Artinya, meskipun kami mungkin dapat menerjemahkan dari Bahasa A ke Bahasa B, terjemahan dari Bahasa B ke Bahasa A mungkin tidak tersedia. Pasangan bahasa berikut didukung untuk Speech-Translation.

Untuk terjemahan ke bahasa Inggris:

Sumber -> Bahasa Target Sumber -> Kode Bahasa Target
Arab (Mesir) -> Inggris ar-EG -> en-US
Arab (Gulf) -> Inggris ar-x-gulf -> en-US
Arab (Levant) -> Inggris ar-x-levant -> en-US
Arab (Maghrebi) -> Inggris ar-x-maghrebi -> en-US
Katala (Spanyol) -> Inggris ca-ES -> en-US
Wales (Inggris Raya) -> Inggris cy-GB -> en-US
Jerman (Jerman) -> Inggris de-DE -> en-US
Spanyol (Amerika Latin) -> Inggris es-419 -> en-US
Spanyol (Spanyol) -> Inggris es-ES -> en-US
Spanyol (Amerika Serikat) -> Inggris es-US -> en-US
Estonia (Estonia) -> Inggris et-EE -> en-US
Prancis (Kanada) -> Inggris fr-CA -> en-US
Prancis (Prancis) -> Inggris fr-FR -> en-US
Persia (Iran) -> Inggris fa-IR -> en-US
Indonesia (Indonesia) -> Inggris id-ID -> en-US
Italia (Italia) -> Inggris it-IT -> en-US
Jepang (Jepang) -> Inggris ja-JP -> en-US
Latvia (Latvia) -> Inggris lv-LV -> en-US
Mongolia (Mongolia) -> Inggris mn-MN -> en-US
Belanda (Belanda) -> Inggris nl-NL -> en-US
Portugis (Brasil) -> Inggris pt-BR -> en-US
Rusia (Rusia) -> Inggris ru-RU -> en-US
Slovenia (Slovenia) -> Inggris sl-SI -> en-US
Swedia (Swedia) -> Inggris sv-SE -> en-US
Tamil (India) -> Inggris ta-IN -> en-US
Turki (Turki) -> Inggris tr-TR -> en-US
China (Aksara Sederhana, China) -> Inggris cmn-Hans-CN -> en-US

Untuk terjemahan dari bahasa Inggris:

Sumber -> Bahasa Target Sumber -> Kode Bahasa Target
Inggris -> Arab (Mesir) en-US -> ar-EG
Inggris -> Arab (Gulf) en-US -> ar-x-gulf
Inggris -> Arab (Levant) en-US -> ar-x-levant
Inggris -> Arab (Maghrebi) en-US -> ar-x-maghrebi
Inggris -> Katala (Spanyol) en-US -> ca-ES
Inggris -> Wales (Inggris Raya) en-US -> cy-GB
Inggris -> Jerman (Jerman) en-US -> de-DE
Inggris -> Estonia (Estonia) en-US -> et-EE
Inggris -> Persia (Iran) en-US -> fa-IR
Inggris -> Indonesia (Indonesia) en-US -> id-ID
Inggris -> Jepang (Jepang) en-US -> ja-JP
Inggris -> Latvia (Latvia) en-US -> lv-LV
Inggris -> Mongolia (Mongolia) en-US -> mn-MN
Inggris -> Slovenia (Slovenia) en-US -> sl-SI
Inggris -> Swedia (Swedia) en-US -> sv-SE
Inggris -> Tamil (India) en-US -> ta-IN
Inggris -> Turki (Turki) en-US -> tr-TR
Inggris -> China (Aksara Sederhana, China) en-US -> cmn-Hans-CN

Dukungan dan batasan fitur

Chirp 2 mendukung fitur berikut:

Fitur Deskripsi
Tanda baca otomatis Dibuat secara otomatis oleh model dan dapat dinonaktifkan secara opsional.
Kapitalisasi otomatis Dibuat secara otomatis oleh model dan dapat dinonaktifkan secara opsional.
Adaptasi ucapan (Bias) Berikan petunjuk ke model dalam bentuk kata atau frasa sederhana untuk meningkatkan akurasi pengenalan untuk istilah atau nama diri tertentu. Token class atau class kustom tidak didukung.
Waktu kata (Stempel waktu) Dibuat secara otomatis oleh model dan dapat diaktifkan secara opsional. Kualitas dan kecepatan transkripsi mungkin akan sedikit menurun.
Filter kata-kata tidak sopan Mendeteksi kata-kata tidak sopan dan hanya menampilkan huruf pertama yang diikuti dengan tanda bintang dalam transkrip (misalnya, f***).
Transkripsi audio yang tidak bergantung pada bahasa Model ini secara otomatis menyimpulkan bahasa lisan dalam file audio Anda dan mentranskripsikannya dalam bahasa yang paling umum.
Terjemahan khusus bahasa Model menerjemahkan secara otomatis dari bahasa lisan ke bahasa target.
Normalisasi paksa Jika ditentukan dalam isi permintaan, API akan melakukan penggantian string pada istilah atau frasa tertentu, sehingga memastikan konsistensi dalam transkripsi.
Skor keyakinan tingkat kata API menampilkan nilai, tetapi bukan sepenuhnya skor keyakinan. Dalam hal terjemahan, skor keyakinan tidak ditampilkan.

Chirp 2 tidak mendukung fitur berikut:

Fitur Deskripsi
Diarisasi Tidak didukung
Deteksi Bahasa Tidak didukung

Mentranskripsikan menggunakan Chirp 2

Temukan cara menggunakan Chirp 2 untuk kebutuhan transkripsi dan terjemahan Anda.

Melakukan pengenalan ucapan streaming

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_streaming_chirp2(
    audio_file: str
) -> cloud_speech.StreamingRecognizeResponse:
    """Transcribes audio from audio file stream using the Chirp 2 model of Google Cloud Speech-to-Text V2 API.

    Args:
        audio_file (str): Path to the local audio file to be transcribed.
            Example: "resources/audio.wav"

    Returns:
        cloud_speech.RecognizeResponse: The response from the Speech-to-Text API V2 containing
        the transcription results.
    """

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

    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        content = f.read()

    # In practice, stream should be a generator yielding chunks of audio data
    chunk_length = len(content) // 5
    stream = [
        content[start : start + chunk_length]
        for start in range(0, len(content), chunk_length)
    ]
    audio_requests = (
        cloud_speech.StreamingRecognizeRequest(audio=audio) for audio in stream
    )

    recognition_config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["en-US"],
        model="chirp_2",
    )
    streaming_config = cloud_speech.StreamingRecognitionConfig(
        config=recognition_config
    )
    config_request = cloud_speech.StreamingRecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/us-central1/recognizers/_",
        streaming_config=streaming_config,
    )

    def requests(config: cloud_speech.RecognitionConfig, audio: list) -> list:
        yield config
        yield from audio

    # Transcribes the audio into text
    responses_iterator = client.streaming_recognize(
        requests=requests(config_request, audio_requests)
    )
    responses = []
    for response in responses_iterator:
        responses.append(response)
        for result in response.results:
            print(f"Transcript: {result.alternatives[0].transcript}")

    return responses

Melakukan pengenalan ucapan sinkron

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_sync_chirp2(
    audio_file: str
) -> cloud_speech.RecognizeResponse:
    """Transcribes an audio file using the Chirp 2 model of Google Cloud Speech-to-Text V2 API.
    Args:
        audio_file (str): Path to the local audio file to be transcribed.
            Example: "resources/audio.wav"
    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-central1-speech.googleapis.com",
        )
    )

    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        audio_content = f.read()

    config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["en-US"],
        model="chirp_2",
    )

    request = cloud_speech.RecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/us-central1/recognizers/_",
        config=config,
        content=audio_content,
    )

    # Transcribes the audio into text
    response = client.recognize(request=request)

    for result in response.results:
        print(f"Transcript: {result.alternatives[0].transcript}")

    return response

Melakukan pengenalan ucapan batch

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_chirp2(
    audio_uri: str,
) -> cloud_speech.BatchRecognizeResults:
    """Transcribes an audio file from a Google Cloud Storage URI using the Chirp 2 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-central1-speech.googleapis.com",
        )
    )

    config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["en-US"],
        model="chirp_2",
    )

    file_metadata = cloud_speech.BatchRecognizeFileMetadata(uri=audio_uri)

    request = cloud_speech.BatchRecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/us-central1/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}")

    return response.results[audio_uri].transcript

Menggunakan Fitur Chirp 2

Pelajari cara menggunakan fitur terbaru, dengan contoh kode:

Melakukan transkripsi tanpa bahasa

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_sync_chirp2_auto_detect_language(
    audio_file: str
) -> cloud_speech.RecognizeResponse:
    """Transcribes an audio file and auto-detect spoken language using Chirp 2.
    Please see https://cloud.google.com/speech-to-text/v2/docs/encoding for more
    information on which audio encodings are supported.
    Args:
        audio_file (str): Path to the local audio file to be transcribed.
            Example: "resources/audio.wav"
    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-central1-speech.googleapis.com",
        )
    )

    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        audio_content = f.read()

    config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["auto"],  # Set language code to auto to detect language.
        model="chirp_2",
    )

    request = cloud_speech.RecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/us-central1/recognizers/_",
        config=config,
        content=audio_content,
    )

    # Transcribes the audio into text
    response = client.recognize(request=request)

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

    return response

Melakukan terjemahan ucapan

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 translate_sync_chirp2(
    audio_file: str
) -> cloud_speech.RecognizeResponse:
    """Translates an audio file using Chirp 2.
    Args:
        audio_file (str): Path to the local audio file to be translated.
            Example: "resources/audio.wav"
    Returns:
        cloud_speech.RecognizeResponse: The response from the Speech-to-Text API containing
        the translated results.
    """

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

    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        audio_content = f.read()

    config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["fr-FR"],  # Set language code to targeted to detect language.
        translation_config=cloud_speech.TranslationConfig(target_language="fr-FR"), # Set target language code.
        model="chirp_2",
    )

    request = cloud_speech.RecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/us-central1/recognizers/_",
        config=config,
        content=audio_content,
    )

    # Transcribes the audio into text
    response = client.recognize(request=request)

    for result in response.results:
        print(f"Translated transcript: {result.alternatives[0].transcript}")

    return response

Mengaktifkan stempel waktu tingkat kata

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_sync_chirp2_with_timestamps(
    audio_file: str
) -> cloud_speech.RecognizeResponse:
    """Transcribes an audio file using the Chirp 2 model of Google Cloud Speech-to-Text V2 API, providing word-level timestamps for each transcribed word.
    Args:
        audio_file (str): Path to the local audio file to be transcribed.
            Example: "resources/audio.wav"
    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-central1-speech.googleapis.com",
        )
    )

    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        audio_content = f.read()

    config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["en-US"],
        model="chirp_2",
        features=cloud_speech.RecognitionFeatures(
            enable_word_time_offsets=True, # Enabling word-level timestamps
        )
    )

    request = cloud_speech.RecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/us-central1/recognizers/_",
        config=config,
        content=audio_content,
    )

    # Transcribes the audio into text
    response = client.recognize(request=request)

    for result in response.results:
        print(f"Transcript: {result.alternatives[0].transcript}")

    return response

Meningkatkan akurasi dengan adaptasi model

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_sync_chirp2_model_adaptation(
    audio_file: str
) -> cloud_speech.RecognizeResponse:
    """Transcribes an audio file using the Chirp 2 model with adaptation, improving accuracy for specific audio characteristics or vocabulary.
    Args:
        audio_file (str): Path to the local audio file to be transcribed.
            Example: "resources/audio.wav"
    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-central1-speech.googleapis.com",
        )
    )

    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        audio_content = f.read()

    config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["en-US"],
        model="chirp_2",
        # Use model adaptation
        adaptation=cloud_speech.SpeechAdaptation(
          phrase_sets=[
              cloud_speech.SpeechAdaptation.AdaptationPhraseSet(
                  inline_phrase_set=cloud_speech.PhraseSet(phrases=[
                    {
                        "value": "alphabet",
                    },
                    {
                          "value": "cell phone service",
                    }
                  ])
              )
          ]
        )
    )

    request = cloud_speech.RecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/us-central1/recognizers/_",
        config=config,
        content=audio_content,
    )

    # Transcribes the audio into text
    response = client.recognize(request=request)

    for result in response.results:
        print(f"Transcript: {result.alternatives[0].transcript}")

    return response

Menggunakan Chirp 2 di konsol Google Cloud

  1. Pastikan Anda telah mendaftar ke akun Google Cloud dan membuat project.
  2. Buka Ucapan di Konsol Google Cloud.
  3. Aktifkan API jika belum diaktifkan.
  4. Pastikan Anda memiliki konsol STT Workspace. Jika belum memilikinya, Anda harus membuat ruang kerja.

    1. Buka halaman transkripsi, lalu klik Transkripsi Baru.

    2. Buka dropdown Workspace lalu klik New Workspace guna membuat ruang kerja untuk transkripsi.

    3. Dari sidebar navigasi Buat workspace baru, klik Jelajahi.

    4. Klik untuk membuat bucket baru.

    5. Masukkan nama untuk bucket Anda, lalu klik Continue.

    6. Klik Buat untuk membuat bucket Cloud Storage.

    7. Setelah bucket dibuat, klik Select untuk memilih bucket yang akan digunakan.

    8. Klik Create untuk menyelesaikan pembuatan ruang kerja Anda untuk konsol Speech-to-Text API V2.

  5. Lakukan transkripsi pada audio Anda yang sebenarnya.

    Screenshot halaman pembuatan transkripsi Speech-to-text, yang menampilkan pemilihan atau upload file.

    Dari halaman Transkripsi Baru, pilih file audio Anda melalui upload (Upload lokal) atau tentukan file Cloud Storage yang sudah ada (Penyimpanan Cloud).

  6. Klik Lanjutkan untuk berpindah ke Opsi transkripsi.

    Screenshot halaman pembuatan transkripsi Speech-to-text yang menunjukkan pemilihan model Chirp dan mengirimkan tugas transkripsi.
    1. Pilih Bahasa lisan yang akan Anda gunakan untuk pengenalan dengan Chirp dari pengenal yang dibuat sebelumnya.

    2. Pada menu dropdown model, pilih Chirp - Universal Speech Model.

    3. Di menu dropdown Pengenal, pilih pengenal yang baru Anda buat.

    4. Klik Kirim untuk menjalankan permintaan pengenalan pertama Anda menggunakan Chirp.

  7. Lihat hasil transkripsi Chirp 2 Anda.

    1. Dari halaman Transkripsi, klik nama transkripsi untuk melihat hasilnya.

    2. Di halaman Detail transkripsi, lihat hasil transkripsi dan jika perlu, putar audio di browser.

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan di halaman ini, ikuti langkah-langkah berikut.

  1. Optional: Revoke the authentication credentials that you created, and delete the local credential file.

    gcloud auth application-default revoke
  2. Optional: Revoke credentials from the gcloud CLI.

    gcloud auth revoke

Konsol

  • In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  • In the project list, select the project that you want to delete, and then click Delete.
  • In the dialog, type the project ID, and then click Shut down to delete the project.
  • gcloud

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    Langkah berikutnya