Halaman ini menjelaskan cara mendapatkan nilai selisih waktu untuk audio yang ditranskripsikan oleh Speech-to-Text.
Speech-to-Text dapat menyertakan nilai offset waktu (stempel waktu) dalam teks respons untuk permintaan pengenalan Anda. Nilai offset waktu menunjukkan awal dan akhir setiap kata yang diucapkan yang dikenali dalam audio yang disediakan. Nilai selisih waktu mewakili jumlah waktu yang telah berlalu dari awal audio, dengan kelipatan 100 md.
Selisih waktu sangat berguna untuk menganalisis file audio yang lebih panjang, di mana Anda mungkin perlu menelusuri kata tertentu dalam teks yang dikenali dan menemukan lokasinya (mencari) dalam audio asli. Speech-to-Text
mendukung offset waktu untuk semua metode pengenalan ucapan:
speech:recognize
,
speech:longrunningrecognize
,
dan Streaming.
Nilai selisih waktu hanya dicantumkan untuk alternatif pertama yang disediakan dalam respons pengenalan.
Untuk menyertakan offset waktu dalam hasil permintaan, tetapkan parameter enableWordTimeOffsets
ke true
dalam konfigurasi permintaan Anda.
Protocol
Lihat endpoint speech:longrunningrecognize
API
untuk detail selengkapnya.
Untuk menjalankan 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 mengetahui petunjuk cara menginstal gcloud CLI, lihat quickstart.
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', 'enableWordTimeOffsets': true }, 'audio':{ 'uri':'gs://gcs-test-data/vr.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. Jika operasi belum selesai (masih diproses), respons akan terlihat seperti berikut:
{ "name": "2885768779530032514", "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "progressPercent": 97, "startTime": "2020-12-14T03:11:54.492593Z", "lastUpdateTime": "2020-12-14T03:15:57.484509Z", "uri": "gs://{BUCKET_NAME}/{FILE_NAME}" } }
Setelah proses selesai, output-nya akan mirip dengan berikut ini:
{ "name": "7612202767953098924" }
di mana name
adalah nama operasi yang berjalan lama yang dibuat untuk permintaan.
Pemrosesan file vr.flac
memerlukan waktu sekitar 30 detik. Untuk mengambil hasil operasi, buat permintaan GET
ke endpoint https://speech.googleapis.com/v1/operations/
. Ganti
your-operation-name
dengan name
yang diterima 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": "okay so what am I doing here...(etc)...", "confidence": 0.96596134, "words": [ { "startTime": "1.400s", "endTime": "1.800s", "word": "okay" }, { "startTime": "1.800s", "endTime": "2.300s", "word": "so" }, { "startTime": "2.300s", "endTime": "2.400s", "word": "what" }, { "startTime": "2.400s", "endTime": "2.600s", "word": "am" }, { "startTime": "2.600s", "endTime": "2.600s", "word": "I" }, { "startTime": "2.600s", "endTime": "2.700s", "word": "doing" }, { "startTime": "2.700s", "endTime": "3s", "word": "here" }, { "startTime": "3s", "endTime": "3.300s", "word": "why" }, { "startTime": "3.300s", "endTime": "3.400s", "word": "am" }, { "startTime": "3.400s", "endTime": "3.500s", "word": "I" }, { "startTime": "3.500s", "endTime": "3.500s", "word": "here" }, ... ] } ] }, { "alternatives": [ { "transcript": "so so what am I doing here...(etc)...", "confidence": 0.9642093, } ] } ] } }
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. Sertakan flag --include-word-time-offsets
.
gcloud ml speech recognize-long-running \ 'gs://cloud-samples-tests/speech/brooklyn.flac' \ --language-code='en-US' --include-word-time-offsets --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", "words": [ { "endTime": "0.300s", "startTime": "0s", "word": "how" }, { "endTime": "0.600s", "startTime": "0.300s", "word": "old" }, { "endTime": "0.800s", "startTime": "0.600s", "word": "is" }, { "endTime": "0.900s", "startTime": "0.800s", "word": "the" }, { "endTime": "1.100s", "startTime": "0.900s", "word": "Brooklyn" }, { "endTime": "1.500s", "startTime": "1.100s", "word": "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.