Dokumen ini adalah panduan dasar-dasar penggunaan Speech-to-Text. Panduan konseptual ini membahas jenis permintaan yang dapat Anda buat ke Speech-to-Text, cara membuat permintaan tersebut, dan cara menangani responsnya. Sebaiknya semua pengguna Speech-to-Text membaca panduan ini dan salah satu tutorial terkait sebelum mendalami API itu sendiri.
Permintaan pengenalan Speech-to-Text
Speech-to-Text memiliki tiga metode utama untuk melakukan pengenalan ucapan. Ketiga metode tersebut tercantum di bawah ini:
Pengenalan Sinkron (REST dan gRPC) mengirimkan data audio ke Speech-to-Text API, melakukan pengenalan pada data tersebut, dan menampilkan hasil setelah semua audio diproses. Permintaan pengenalan sinkron dibatasi untuk data audio dengan durasi 1 menit atau kurang.
Pengenalan Asinkron (REST dan gRPC) mengirim data audio ke Speech-to-Text API dan memulai operasi yang berjalan lama. Dengan operasi ini, Anda dapat melakukan polling hasil pengenalan secara berkala. Gunakan permintaan asinkron untuk data audio dengan durasi hingga 480 menit.
Pengenalan Streaming (khusus gRPC) melakukan pengenalan pada data audio yang disediakan dalam stream dua arah gRPC. Permintaan streaming didesain untuk tujuan pengenalan real-time, seperti saat merekam audio live dari mikrofon. Pengenalan streaming memberikan hasil sementara saat audio direkam, sehingga hasil dapat muncul, misalnya, saat pengguna masih berbicara.
Permintaan pengenalan berisi parameter konfigurasi serta data audio. Secara opsional, permintaan pengenalan dapat berisi pengenal, serta konfigurasi pengenalan yang disimpan dan dapat digunakan kembali.
Metadata Audio
Untuk sebagian besar file audio, Speech-to-Text API dapat menyimpulkan metadata audio secara otomatis. Speech-to-Text mengurai header file dan mendekodenya sesuai dengan informasi tersebut. Lihat halaman encoding untuk mengetahui jenis file yang didukung.
Untuk file audio tanpa header, Speech-to-Text API memungkinkan penentuan metadata audio secara eksplisit dalam konfigurasi pengenalan. Lihat halaman encoding untuk detail selengkapnya.
Jika Anda memiliki pilihan saat mengenkode materi sumber, rekam audio menggunakan frekuensi sampel 16.000 Hz. Nilai yang lebih rendah dari ini dapat menghalangi akurasi pengenalan suara, sementara tingkat yang lebih tinggi tidak memiliki pengaruh yang signifikan terhadap kualitas pengenalan ucapan.
Namun, jika data audio telah direkam dengan frekuensi sampel yang ada selain 16.000 Hz, jangan lakukan resampling pada audio menjadi 16.000 Hz. Sebagian besar audio telepon lama, misalnya, menggunakan frekuensi sampel 8.000 Hz, yang mungkin memberikan hasil yang kurang akurat. Jika Anda harus menggunakan audio tersebut, sediakan audio ke Speech-to-Text API sesuai frekuensi sampel native-nya.
Languages
Mesin pengenalan Speech-to-Text mendukung berbagai bahasa dan
dialek. Tentukan bahasa (dan dialek nasional atau regional) audio Anda dalam kolom languageCode
pada konfigurasi permintaan, menggunakan ID BCP-47.
Daftar lengkap bahasa yang didukung untuk setiap fitur tersedia di halaman Dukungan Bahasa.
Fitur pengenalan
Speech-to-Text API memiliki fitur pengenalan tambahan seperti tanda baca otomatis dan kepercayaan tingkat kata. Fitur ini diaktifkan pada konfigurasi pengenalan dalam permintaan. Lihat kode contoh yang diberikan pada link di atas dan halaman bahasa untuk mengetahui ketersediaan fitur ini.
Pemilihan model
Speech-to-Text dapat menggunakan salah satu dari beberapa model machine learning untuk mentranskripsikan file audio Anda. Google telah melatih model pengenalan ucapan ini untuk jenis dan sumber audio tertentu. Baca dokumentasi pemilihan model untuk mempelajari model yang tersedia serta cara memilih model dalam permintaan Anda.
Konten audio yang disematkan
Audio tersemat disertakan dalam permintaan pengenalan ucapan saat meneruskan
parameter content
dalam kolom audio_source
permintaan. Untuk audio tersemat yang disediakan sebagai konten dalam permintaan gRPC, audio tersebut harus kompatibel untuk serialisasi Proto3, dan disediakan sebagai data biner. Untuk audio tersemat yang disediakan sebagai
konten dalam permintaan REST, audio tersebut harus kompatibel dengan serialisasi JSON
dan dienkode Base64 terlebih dahulu. Lihat
[Mengenkode Audio Base64][encoding base64] untuk informasi selengkapnya.
Saat membuat permintaan menggunakan library klien Google Cloud, Anda umumnya akan menulis data biner (atau berenkode base-64) ini langsung dalam kolom content
.
Meneruskan audio yang direferensikan oleh URI
Biasanya, Anda akan meneruskan parameter uri
dalam kolom audio_source
pada permintaan Speech-to-Text API, yang mengarah ke file audio (dalam format biner, bukan base64) yang terletak di Cloud Storage dengan bentuk berikut:
gs://bucket-name/path/to/audio/file
Speech-to-Text menggunakan akun layanan untuk mengakses file Anda di Cloud Storage. Secara default, akun layanan memiliki akses ke file Cloud Storage dalam project yang sama.
Alamat email akun layanan adalah sebagai berikut:
service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com
Untuk mentranskripsikan file Cloud Storage di project lain, Anda dapat memberikan peran Agen Layanan Speech-to-Text ke project layanan ini:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
--role=roles/speech.serviceAgent
Informasi selengkapnya tentang kebijakan IAM project tersedia di bagian Mengelola akses ke project, folder, dan organisasi.
Anda juga dapat memberikan akses yang lebih terperinci kepada akun layanan dengan memberinya izin ke bucket Cloud Storage tertentu:
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
--member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-speech.iam.gserviceaccount.com \
--role=roles/storage.admin
Informasi selengkapnya tentang cara mengelola akses ke Cloud Storage tersedia di bagian Membuat dan Mengelola daftar kontrol akses dalam dokumentasi Cloud Storage.
Respons Speech-to-Text API
Setelah audio diproses, Speech-to-Text API akan menampilkan hasil transkripsi dalam
pesan SpeechRecognitionResult
untuk permintaan batch dan sinkron, serta dalam
pesan StreamingRecognitionResult
untuk
permintaan streaming. Dalam permintaan sinkron dan batch, respons RPC berisi
daftar hasil. Daftar audio yang dikenali akan muncul secara
berurutan. Untuk respons streaming, semua hasil yang ditandai sebagai is_final
akan muncul
secara berurutan.
Memilih alternatif
Setiap hasil dalam respons pengenalan sinkron yang berhasil dapat berisi
satu atau beberapa alternatives
(jika max_alternatives
lebih besar dari 1
). Jika Speech-to-Text menentukan bahwa sebuah alternatif
memiliki nilai keyakinan
yang memadai, alternatif tersebut akan disertakan dalam
respons. Alternatif pertama dalam respons selalu merupakan alternatif terbaik (kemungkinan besar).
Menetapkan max_alternatives
ke nilai yang lebih tinggi dari 1
tidak berarti atau menjamin bahwa beberapa alternatif akan ditampilkan. Secara umum, lebih dari satu
alternatif lebih sesuai untuk memberikan opsi real-time kepada pengguna
yang mendapatkan hasil melalui permintaan pengenalan streaming.
Menangani transkripsi
Setiap alternatif yang diberikan dalam respons akan memuat transcript
yang berisi teks yang dikenali. Jika alternatif berurutan disediakan, Anda harus menyambung transkripsi tersebut.
Tingkat keyakinan
Nilai confidence
merupakan perkiraan antara 0,0 dan 1,0. Nilai ini dihitung
dengan menggabungkan nilai "kemungkinan" yang ditetapkan untuk setiap kata dalam
audio. Angka yang lebih tinggi menunjukkan estimasi kemungkinan yang lebih besar bahwa kata tersebut dikenali dengan benar. Kolom ini biasanya
disediakan hanya untuk hipotesis teratas, dan hanya untuk hasil di
mana is_final=true
. Misalnya, Anda dapat menggunakan nilai confidence
untuk memutuskan apakah akan menampilkan hasil alternatif kepada pengguna atau meminta
konfirmasi dari pengguna.
Namun, perhatikan bahwa model tersebut menentukan hasil peringkat teratas "terbaik" berdasarkan lebih banyak sinyal daripada skor confidence
saja (seperti konteks kalimat).
Karena itu, terkadang ada kasus di mana hasil teratas tidak memiliki skor keyakinan tertinggi. Jika Anda belum meminta beberapa hasil alternatif, satu hasil "terbaik" yang ditampilkan mungkin memiliki tingkat keyakinan lebih rendah daripada yang diharapkan. Hal ini dapat terjadi, misalnya, dalam kasus kata-kata yang jarang digunakan. Kata yang jarang digunakan dapat diberi nilai "kemungkinan" yang rendah meskipun kata tersebut dikenali dengan benar. Jika model menentukan bahwa kata yang jarang digunakan tersebut merupakan opsi yang paling mungkin berdasarkan konteks, hasil itu akan ditampilkan paling atas meskipun tingkat confidence
-nya lebih rendah daripada opsi alternatif.
Langkah berikutnya
- Gunakan library klien untuk mentranskripsikan audio menggunakan bahasa pemrograman favorit Anda.
- Berlatih mentranskripsikan file audio pendek.
- Pelajari cara mentranskripsikan audio streaming.
- Pelajari cara mentranskripsi file audio panjang.