Halaman ini menunjukkan cara mentranskripsikan file audio yang panjang (dengan durasi lebih dari 1 menit) ke teks menggunakan Speech-to-Text API dan pengenalan ucapan asinkron.
Tentang pengenalan ucapan asinkron
Pengenalan ucapan batch memulai operasi pemrosesan audio yang berjalan lama. Gunakan pengenalan ucapan asinkron untuk mentranskripsikan audio yang berdurasi lebih dari 60 detik. Untuk audio berdurasi lebih pendek, pengenalan ucapan sinkron lebih cepat dan lebih mudah. Batas atas untuk pengenalan ucapan asinkron adalah 480 menit.
Speech-to-Text dan pemrosesan asinkron
Konten audio dapat dikirim langsung ke Speech-to-Text dari file lokal untuk pemrosesan asinkron. Namun, batas waktu audio untuk file lokal adalah 60 detik. Mentranskripsikan file audio lokal yang berdurasi lebih dari 60 detik akan menghasilkan error. Agar dapat menggunakan pengenalan ucapan asinkron untuk mentranskripsikan audio berdurasi lebih dari 60 detik, data Anda harus disimpan di bucket Google Cloud Storage.
Anda dapat mengambil hasil operasi menggunakan metode google.longrunning.Operations. Hasil akan tetap tersedia untuk diambil selama 5 hari (120 jam). Anda juga memiliki opsi untuk mengupload hasil secara langsung ke bucket Google Cloud Storage.
Mentranskripsikan file audio panjang menggunakan file Google Cloud Storage
Sampel ini menggunakan bucket Cloud Storage untuk menyimpan input audio mentah untuk proses transkripsi panjang. Untuk mengetahui contoh respons operasi
longrunningrecognize
standar, lihat
dokumentasi referensi.
Protocol
Lihat endpoint speech:longrunningrecognize
API untuk detail
selengkapnya.
Untuk melakukan pengenalan ucapan sinkron, buat permintaan POST
dan berikan
isi permintaan yang sesuai. Berikut ini contoh permintaan POST
yang menggunakan
curl
. Contoh ini menggunakan Google Cloud CLI untuk membuat token akses. Untuk petunjuk tentang cara menginstal gcloud CLI,
lihat panduan memulai.
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'config': { 'language_code': 'en-US' }, 'audio':{ 'uri':'gs://cloud-samples-tests/speech/brooklyn.flac' } }" "https://speech.googleapis.com/v1/speech:longrunningrecognize"
Lihat dokumentasi referensi RecognitionConfig dan RecognitionAudio untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi isi permintaan.
Jika permintaan berhasil, server akan menampilkan kode status HTTP 200 OK
dan respons dalam format JSON:
{ "name": "7612202767953098924" }
di mana name
adalah nama operasi yang berjalan lama yang dibuat untuk permintaan tersebut.
Tunggu hingga pemrosesan selesai. Waktu pemrosesan berbeda-beda, bergantung pada
audio sumber Anda. Umumnya, Anda akan mendapatkan hasil
dengan panjang setengah dari audio sumber.
Anda bisa mendapatkan status operasi yang berjalan lama dengan membuat permintaan GET
ke endpoint https://speech.googleapis.com/v1/operations/
. Ganti your-operation-name
dengan name
yang ditampilkan dari permintaan longrunningrecognize
Anda.
curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ "https://speech.googleapis.com/v1/operations/your-operation-name"
Jika permintaan berhasil, server akan menampilkan kode status HTTP 200 OK
dan respons dalam format JSON:
{ "name": "7612202767953098924", "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "progressPercent": 100, "startTime": "2017-07-20T16:36:55.033650Z", "lastUpdateTime": "2017-07-20T16:37:17.158630Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [ { "alternatives": [ { "transcript": "how old is the Brooklyn Bridge", "confidence": 0.96096134, } ] }, { "alternatives": [ { ... } ] } ] } }
Jika operasi belum selesai, Anda dapat melakukan polling endpoint dengan membuat permintaan GET
berulang kali hingga properti done
respons adalah true
.
gcloud
Lihat perintah
recognize-long-running
untuk detail selengkapnya.
Untuk melakukan pengenalan ucapan asinkron, gunakan Google Cloud CLI, yang menyediakan jalur file lokal atau URL Google Cloud Storage.
gcloud ml speech recognize-long-running \ 'gs://cloud-samples-tests/speech/brooklyn.flac' \ --language-code='en-US' --async
Jika permintaan berhasil, server akan menampilkan ID operasi yang berjalan lama dalam format JSON.
{ "name": OPERATION_ID }
Anda kemudian bisa mendapatkan informasi tentang operasi tersebut dengan menjalankan perintah berikut.
gcloud ml speech operations describe OPERATION_ID
Anda juga dapat melakukan polling pada operasi hingga selesai dengan menjalankan perintah berikut.
gcloud ml speech operations wait OPERATION_ID
Setelah operasi selesai, operasi akan menampilkan transkrip audio dalam format JSON.
{ "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [ { "alternatives": [ { "confidence": 0.9840146, "transcript": "how old is the Brooklyn Bridge" } ] } ] }
Go
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 Go Speech-to-Text.
Untuk mengautentikasi ke Speech-to-Text, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
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 Java Speech-to-Text.
Untuk mengautentikasi ke Speech-to-Text, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
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 Node.js Speech-to-Text.
Untuk mengautentikasi ke Speech-to-Text, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
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, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Bahasa tambahan
C#: Ikuti Petunjuk penyiapan C# di halaman library klien, lalu buka Dokumentasi referensi Speech-to-Text untuk .NET.
PHP: Ikuti Petunjuk penyiapan PHP di halaman library klien, lalu buka Dokumentasi referensi Speech-to-Text untuk PHP.
Ruby: Ikuti Petunjuk penyiapan Ruby di halaman library klien, lalu buka Dokumentasi referensi Speech-to-Text untuk Ruby.
Mengupload hasil transkripsi ke bucket Cloud Storage
Speech-to-Text mendukung upload hasil pengenalan berdurasi panjang langsung ke bucket Cloud Storage. Jika Anda menerapkan fitur ini dengan Pemicu Cloud Storage, upload Cloud Storage dapat memicu notifikasi yang memanggil Cloud Functions dan menghilangkan kebutuhan melakukan polling Speech-to-Text untuk hasil pengenalan.
Agar hasil diupload ke bucket Cloud Storage, berikan konfigurasi output TranscriptOutputConfig
opsional dalam permintaan pengenalan yang berjalan lama Anda.
message TranscriptOutputConfig {
oneof output_type {
// Specifies a Cloud Storage URI for the recognition results. Must be
// specified in the format: `gs://bucket_name/object_name`
string gcs_uri = 1;
}
}
Protocol
Lihat endpoint API longrunningrecognize
untuk mengetahui detail selengkapnya.
Contoh berikut menunjukkan cara mengirim permintaan POST
menggunakan curl
, dengan isi permintaan menentukan jalur ke bucket Cloud Storage. Hasilnya diupload ke lokasi ini sebagai file JSON
yang menyimpan
SpeechRecognitionResult
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'config': {...}, 'output_config': { 'gcs_uri':'gs://bucket/result-output-path.json' }, 'audio': { 'uri': 'gs://bucket/audio-path' } }" "https://speech.googleapis.com/v1p1beta1/speech:longrunningrecognize"
LongRunningRecognizeResponse
mencakup jalur ke bucket Cloud Storage tempat file akan diupload. Jika
upload tidak berhasil, error output akan ditampilkan. Jika file dengan
nama yang sama sudah ada, upload akan menulis hasilnya ke file baru dengan
menambahkan stempel waktu sebagai akhiran.
{ ... "metadata": { ... "outputConfig": {...} }, ... "response": { ... "results": [...], "outputConfig": { "gcs_uri":"gs://bucket/result-output-path" }, "outputError": {...} } }
Coba sendiri
Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa Speech-to-Text dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
Coba Speech-to-Text gratis