Mengirim permintaan pengenalan dengan adaptasi model

Anda dapat meningkatkan akurasi hasil transkripsi yang diperoleh dari Speech-to-Text menggunakan adaptasi model. Dengan fitur adaptasi model, Anda dapat menentukan kata dan/atau frasa yang harus dikenali lebih sering oleh Speech-to-Text dalam data audio Anda, dibandingkan alternatif lain yang mungkin disarankan. Adaptasi model sangat berguna untuk meningkatkan akurasi transkripsi dalam kasus penggunaan berikut:

  1. Audio Anda berisi kata atau frasa yang mungkin sering muncul.
  2. Audio Anda kemungkinan berisi kata-kata yang jarang digunakan (seperti nama diri) atau kata yang tidak ada dalam penggunaan umum.
  3. Audio Anda berisi derau atau tidak terlalu jelas.

Untuk informasi selengkapnya tentang cara menggunakan fitur ini, lihat Meningkatkan hasil transkripsi dengan adaptasi model. Untuk informasi tentang batas frasa dan karakter per permintaan adaptasi model, lihat Kuota dan batas. Tidak semua model mendukung adaptasi ucapan. Lihat Dukungan Bahasa untuk mengetahui model yang mendukung adaptasi.

Contoh kode

Adaptasi Ucapan adalah konfigurasi Speech-to-Text opsional yang dapat Anda gunakan untuk menyesuaikan hasil transkripsi sesuai kebutuhan. Lihat dokumentasi RecognitionConfig untuk informasi selengkapnya tentang cara mengonfigurasi isi permintaan pengenalan.

Contoh kode berikut menunjukkan cara meningkatkan akurasi transkripsi menggunakan resource SpeechAdaptation: PhraseSet, CustomClass, dan peningkatan adaptasi model. Untuk menggunakan PhraseSet atau CustomClass dalam permintaan berikutnya, catat name resource-nya, yang ditampilkan dalam respons saat Anda membuat resource tersebut.

Untuk mengetahui daftar class bawaan yang tersedia untuk bahasa Anda, lihat Token class yang didukung.

Python

Untuk mempelajari cara menginstal dan menggunakan library klien untuk Speech-to-Text, lihat Library klien Speech-to-Text. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Speech-to-Text.

Untuk mengautentikasi ke Speech-to-Text, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import os

from google.cloud import speech_v1p1beta1 as speech

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")


def transcribe_with_model_adaptation(
    audio_uri: str,
    custom_class_id: str,
    phrase_set_id: str,
) -> str:
    """Create `PhraseSet` and `CustomClasses` for custom item lists in input data.
    Args:
        audio_uri (str): The Cloud Storage URI of the input audio. e.g. gs://[BUCKET]/[FILE]
        custom_class_id (str): The unique ID of the custom class to create
        phrase_set_id (str): The unique ID of the PhraseSet to create.
    Returns:
        The transcript of the input audio.
    """
    # Specifies the location where the Speech API will be accessed.
    location = "global"

    # Audio object
    audio = speech.RecognitionAudio(uri=audio_uri)

    # Create the adaptation client
    adaptation_client = speech.AdaptationClient()

    # The parent resource where the custom class and phrase set will be created.
    parent = f"projects/{PROJECT_ID}/locations/{location}"

    # Create the custom class resource
    adaptation_client.create_custom_class(
        {
            "parent": parent,
            "custom_class_id": custom_class_id,
            "custom_class": {
                "items": [
                    {"value": "sushido"},
                    {"value": "altura"},
                    {"value": "taneda"},
                ]
            },
        }
    )
    custom_class_name = (
        f"projects/{PROJECT_ID}/locations/{location}/customClasses/{custom_class_id}"
    )
    # Create the phrase set resource
    phrase_set_response = adaptation_client.create_phrase_set(
        {
            "parent": parent,
            "phrase_set_id": phrase_set_id,
            "phrase_set": {
                "boost": 10,
                "phrases": [
                    {"value": f"Visit restaurants like ${{{custom_class_name}}}"}
                ],
            },
        }
    )
    phrase_set_name = phrase_set_response.name
    # The next section shows how to use the newly created custom
    # class and phrase set to send a transcription request with speech adaptation

    # Speech adaptation configuration
    speech_adaptation = speech.SpeechAdaptation(phrase_set_references=[phrase_set_name])

    # speech configuration object
    config = speech.RecognitionConfig(
        encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=24000,
        language_code="en-US",
        adaptation=speech_adaptation,
    )

    # Create the speech client
    speech_client = speech.SpeechClient()

    response = speech_client.recognize(config=config, audio=audio)

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