Ringkasan Cloud Speech-to-Text

Cloud Speech-to-Text adalah API yang memungkinkan Anda mengintegrasikan teknologi pengenalan ucapan Google ke dalam aplikasi developer Anda. Dokumen ini membahas dasar-dasar penggunaan Cloud Speech-to-Text, termasuk jenis permintaan yang dapat Anda buat ke Cloud STT, cara membuat permintaan tersebut, dan cara menangani responsnya. Sebelum Anda mulai menggunakan API, baca panduan ini dan salah satu tutorial terkait.

Permintaan pengenalan Cloud Speech-to-Text

Cloud Speech-to-Text (STT) memiliki tiga metode utama untuk melakukan pengenalan ucapan. Metode berikut tersedia:

  • Pengenalan sinkron (REST dan gRPC) mengirimkan data audio ke Cloud Speech-to-Text API, melakukan pengenalan pada data tersebut, dan menampilkan hasil setelah semua audio diproses. Permintaan pengenalan sinkron memproses data audio berdurasi 1 menit atau kurang.

  • Pengenalan asinkron (REST dan gRPC) mengirimkan data audio ke Cloud 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. Misalnya, hasil dapat muncul 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, Cloud Speech-to-Text API dapat menyimpulkan metadata audio secara otomatis. Cloud STT mengurai header file dan mendekodenya sesuai dengan informasi tersebut. Lihat halaman encoding untuk mengetahui jenis file yang didukung.

Untuk file audio tanpa header, Cloud Speech-to-Text API memungkinkan Anda menentukan metadata audio secara eksplisit dalam konfigurasi pengenalan. Lihat halaman encoding untuk mengetahui 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 mengganggu akurasi pengenalan suara, sementara tingkat yang lebih tinggi tidak memiliki pengaruh yang signifikan terhadap kualitas pengenalan ucapan.

Namun, jika data audio Anda telah direkam dengan frekuensi sampel yang ada selain 16.000 Hz, jangan lakukan resampling pada audio menjadi 16.000 Hz. Misalnya, sebagian besar audio telepon lama menggunakan frekuensi sampel 8.000 Hz, yang dapat memberikan hasil yang kurang akurat. Jika Anda harus menggunakan audio tersebut, sediakan audio ke Cloud Speech-to-Text API dengan frekuensi sampel aslinya.

Bahasa

Mesin pengenalan Cloud STT 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 Bahasa yang didukung.

Fitur pengenalan

Cloud Speech-to-Text API memiliki fitur pengenalan tambahan seperti tanda baca otomatis dan kepercayaan tingkat kata. Anda mengaktifkan fitur ini dalam konfigurasi pengenalan dalam permintaan. Lihat kode contoh di link yang diberikan dan halaman bahasa untuk mengetahui ketersediaan fitur.

Pemilihan model

Cloud STT 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. Lihat dokumentasi pemilihan model untuk mempelajari model yang tersedia dan cara memilih model dalam permintaan Anda.

Konten audio yang disematkan

Anda menyertakan audio tersemat dalam permintaan pengenalan ucapan dengan meneruskan parameter content dalam kolom audio_source permintaan. Untuk audio tersemat yang Anda berikan sebagai konten dalam permintaan gRPC, audio tersebut harus kompatibel dengan serialisasi Proto3 dan disediakan sebagai data biner. Untuk audio tersemat yang Anda berikan sebagai konten dalam permintaan REST, audio tersebut harus kompatibel dengan serialisasi JSON dan dienkode Base64 terlebih dahulu. Lihat Mengenkode Audio dengan Base64 untuk mengetahui informasi selengkapnya.

Saat membuat permintaan menggunakan library klien Google Cloud, Anda umumnya menulis data biner (atau berenkode Base64) ini langsung dalam kolom content.

Meneruskan audio yang direferensikan oleh URI

Biasanya, Anda meneruskan parameter uri dalam kolom audio_source pada permintaan Cloud 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][speech-service-agent] ke akun layanan ini di project lain:

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 [Mengelola akses ke project, folder, dan organisasi][manage-access].

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][buckets-manage-acl] dalam dokumentasi Cloud Storage.

Respons Cloud Speech-to-Text API

Setelah memproses audio, Cloud Speech-to-Text API akan menampilkan hasil transkripsi dalam pesan SpeechRecognitionResult untuk permintaan sinkron dan batch, 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 Cloud STT menentukan bahwa sebuah alternatif memiliki nilai keyakinan yang memadai, Cloud STT akan menyertakan alternatif tersebut 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 dalam respons berisi transcript dengan teks yang dikenali. Jika Anda menerima alternatif berurutan, gabungkan transkripsi ini.

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-kata tersebut dikenali dengan benar. Kolom ini biasanya hanya disediakan 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 atau meminta konfirmasi Anda.

Namun, perhatikan bahwa model tersebut menentukan hasil peringkat teratas "terbaik" berdasarkan lebih banyak sinyal daripada skor confidence saja (seperti konteks kalimat). Oleh karena itu, terkadang ada kasus di mana hasil teratas tidak memiliki skor keyakinan tertinggi. Jika Anda belum meminta beberapa hasil alternatif, satu hasil "terbaik" dapat memiliki tingkat keyakinan lebih rendah daripada yang diharapkan. Hal ini dapat terjadi, misalnya, saat kata-kata yang jarang digunakan. Meskipun sistem mengenali kata yang jarang digunakan dengan benar, kata tersebut dapat diberi nilai "kemungkinan" yang rendah. 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