Pelajari langkah-langkah pemecahan masalah yang mungkin dapat membantu jika Anda mengalami masalah saat menggunakan Speech-to-Text.
Tidak dapat melakukan autentikasi ke Speech-to-Text
Anda mungkin menerima pesan error yang menunjukkan bahwa "Kredensial Default Aplikasi" tidak tersedia atau Anda mungkin ingin tahu cara mendapatkan kunci API yang akan digunakan saat memanggil Speech-to-Text.
Speech-to-Text menggunakan Kredensial Default Aplikasi (ADC) untuk autentikasi.
Kredensial untuk ADC harus tersedia dalam konteks tempat Anda memanggil Speech-to-Text API. Misalnya, jika Anda menyiapkan ADC di terminal, tetapi menjalankan kode di debugger IDE, konteks eksekusi kode Anda mungkin tidak memiliki akses ke kredensial. Dalam hal ini, permintaan Anda ke Speech-to-Text mungkin gagal.
Untuk mempelajari cara memberikan kredensial ke ADC, lihat Menyiapkan Kredensial Default Aplikasi.
Speech-to-Text menampilkan respons kosong
Ada beberapa alasan mengapa Speech-to-Text menampilkan respons
kosong. Sumber masalahnya dapat berupa RecognitionConfig
atau audio
itu sendiri.
Memecahkan masalah RecognitionConfig
Objek RecognitionConfig
(atau StreamingRecognitionConfig
) adalah bagian dari permintaan pengenalan Speech-to-Text. Ada 2 kategori utama
kolom yang harus ditetapkan agar dapat melakukan transkripsi dengan benar:
- Konfigurasi audio
- Model dan bahasa.
Salah satu penyebab paling umum respons kosong (misalnya, Anda menerima respons JSON {}
kosong) adalah memberikan informasi yang salah tentang metadata audio. Jika kolom konfigurasi audio tidak disetel dengan benar, transkripsi kemungkinan besar akan gagal dan model pengenalan akan menampilkan hasil kosong.
Konfigurasi audio berisi metadata dari audio yang disediakan. Anda bisa mendapatkan
metadata untuk file audio menggunakan perintah ffprobe
, yang merupakan bagian
dari FFMPEG.
Contoh berikut menunjukkan penggunaan ffprobe untuk mendapatkan metadata untuk https://storage.googleapis.com/cloud-samples-tests/speech/anonymous_mono.wav.
$ ffprobe commercial_mono.wav
[...]
Input #0, wav, from 'commercial_mono.wav':
Duration: 00:00:35.75, bitrate: 128 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 8000 Hz, 1 channels, s16, 128 kb/s
Dengan perintah di atas, kita dapat melihat file tersebut memiliki:
- sample_rate_hertz: 8000
- saluran: 1
- encoding LINEAR16 (s16)
Anda dapat menggunakan informasi ini di RecognitionConfig
.
Alasan tambahan terkait audio untuk respons kosong dapat terkait dengan encoding audio. Berikut beberapa alat dan hal lain yang dapat dicoba:
Putar file dan dengarkan outputnya. Apakah audionya jelas dan ucapan dapat dipahami?
Untuk memutar file, Anda dapat menggunakan perintah
play
SoX (Sound eXchange). Beberapa contoh berdasarkan encoding audio yang berbeda ditampilkan di bawah ini.File FLAC menyertakan header yang menunjukkan frekuensi sampel, jenis encoding, dan jumlah saluran, serta dapat diputar sebagai berikut:
play audio.flac
File LINEAR16 tidak menyertakan header. Untuk memutarnya, Anda harus menentukan frekuensi sampel, jenis encoding, dan jumlah saluran. Encoding LINEAR16 harus 16-bit, integer bertanda, little-endian.
play --channels=1 --bits=16 --rate=16000 --encoding=signed-integer \ --endian=little audio.raw
File MULAW juga tidak menyertakan header dan sering kali menggunakan frekuensi sampel yang lebih rendah.
play --channels=1 --rate=8000 --encoding=u-law audio.raw
Pastikan encoding audio data Anda cocok dengan parameter yang Anda kirim di
RecognitionConfig
. Misalnya, jika permintaan Anda menentukan"encoding":"FLAC"
dan"sampleRateHertz":16000
, parameter data audio yang dicantumkan oleh perintahplay
SoX akan cocok dengan parameter tersebut, seperti berikut:play audio.flac
harus mencantumkan:
Encoding: FLAC Channels: 1 @ 16-bit Sampleratehertz: 16000Hz
Jika listingan SoX menampilkan
Sampleratehertz
selain16000Hz
, ubah"sampleRateHertz"
diInitialRecognizeRequest
agar cocok. JikaEncoding
bukanFLAC
atauChannels
bukan1 @ 16-bit
, Anda tidak dapat menggunakan file ini secara langsung, dan perlu mengonversinya ke encoding yang kompatibel (lihat langkah berikutnya).Jika file audio Anda tidak ada dalam encoding FLAC, coba konversikan ke FLAC menggunakan SoX, dan ulangi langkah-langkah di atas untuk memutar file tersebut serta memverifikasi encoding, sampleRateHertz, dan saluran. Berikut beberapa contoh yang mengonversi berbagai format file audio ke encoding FLAC.
sox audio.wav --channels=1 --bits=16 audio.flac sox audio.ogg --channels=1 --bits=16 audio.flac sox audio.au --channels=1 --bits=16 audio.flac sox audio.aiff --channels=1 --bits=16 audio.flac
Untuk mengonversi file mentah ke FLAC, Anda perlu mengetahui encoding audio file tersebut. Misalnya, untuk mengonversi little-endian bertanda 16-bit stereo pada 16000 Hz ke FLAC:
sox --channels=2 --bits=16 --rate=16000 --encoding=signed-integer \ --endian=little audio.raw --channels=1 --bits=16 audio.flac
Jalankan contoh Panduan Memulai atau salah satu Aplikasi Sampel dengan file audio sampel yang disediakan. Setelah contoh berhasil berjalan, ganti file audio sampel dengan file audio Anda.
Konfigurasi Model dan Bahasa
Pemilihan model sangat penting untuk mendapatkan hasil transkripsi
yang berkualitas tinggi. Speech-to-Text
menyediakan beberapa model yang telah disesuaikan dengan berbagai kasus penggunaan dan harus
dipilih agar paling cocok dengan audio Anda.
Misalnya, beberapa model (seperti latest_short
dan command_and_search
)
adalah model berdurasi singkat, yang berarti lebih cocok untuk audio dan perintah pendek.
Model ini cenderung akan menampilkan hasil segera setelah mendeteksi periode senyap. Di sisi lain, model format panjang (seperti
latest_short, phone_call, video and default
) lebih
cocok untuk audio yang lebih panjang dan tidak sensitif untuk menafsirkan keheningan sebagai
akhir audio.
Jika pengenalan Anda berakhir terlalu tiba-tiba atau tidak segera ditampilkan, sebaiknya periksa dan bereksperimen dengan model lain untuk melihat apakah Anda bisa mendapatkan kualitas transkripsi yang lebih baik. Anda dapat bereksperimen dengan beberapa model menggunakan UI Ucapan.
Hasil pengenalan ucapan tidak sesuai harapan
Jika hasil yang ditampilkan oleh Speech-to-Text tidak seperti yang Anda harapkan:
- Periksa respons untuk melihat pesan error.
Catat Kuota & Batasan.
Untuk meningkatkan akurasi pengenalan, ikuti panduan di Praktik Terbaik.