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.
![]() |
![]() |
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
- Pastikan Anda telah mendaftar ke akun Google Cloud dan membuat project.
- Buka Ucapan di Konsol Google Cloud.
- Aktifkan API jika belum diaktifkan.
Pastikan Anda memiliki konsol STT Workspace. Jika belum memilikinya, Anda harus membuat ruang kerja.
Buka halaman transkripsi, lalu klik Transkripsi Baru.
Buka dropdown Workspace lalu klik New Workspace guna membuat ruang kerja untuk transkripsi.
Dari sidebar navigasi Buat workspace baru, klik Jelajahi.
Klik untuk membuat bucket baru.
Masukkan nama untuk bucket Anda, lalu klik Continue.
Klik Buat untuk membuat bucket Cloud Storage.
Setelah bucket dibuat, klik Select untuk memilih bucket yang akan digunakan.
Klik Create untuk menyelesaikan pembuatan ruang kerja Anda untuk konsol Speech-to-Text API V2.
Lakukan transkripsi pada audio Anda yang sebenarnya.
Dari halaman Transkripsi Baru, pilih file audio Anda melalui upload (Upload lokal) atau tentukan file Cloud Storage yang sudah ada (Penyimpanan Cloud).
Klik Lanjutkan untuk berpindah ke Opsi transkripsi.
Pilih Bahasa lisan yang akan Anda gunakan untuk pengenalan dengan Chirp dari pengenal yang dibuat sebelumnya.
Pada menu dropdown model, pilih Chirp - Universal Speech Model.
Di menu dropdown Pengenal, pilih pengenal yang baru Anda buat.
Klik Kirim untuk menjalankan permintaan pengenalan pertama Anda menggunakan Chirp.
Lihat hasil transkripsi Chirp 2 Anda.
Dari halaman Transkripsi, klik nama transkripsi untuk melihat hasilnya.
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.
-
Optional: Revoke the authentication credentials that you created, and delete the local credential file.
gcloud auth application-default revoke
-
Optional: Revoke credentials from the gcloud CLI.
gcloud auth revoke
Konsol
gcloud
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Langkah berikutnya
- Berlatihlah mentranskripsi file audio singkat.
- Pelajari cara mentranskripsikan audio streaming.
- Pelajari cara mentranskripsi file audio panjang.
- Untuk performa terbaik, akurasi, dan tips lainnya, lihat dokumentasi praktik terbaik.