Pemecahan masalah

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:

  1. 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
  2. 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 perintah play 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 selain 16000Hz, ubah "sampleRateHertz" di InitialRecognizeRequest agar cocok. JikaEncoding bukan FLAC atau Channels bukan 1 @ 16-bit, Anda tidak dapat menggunakan file ini secara langsung, dan perlu mengonversinya ke encoding yang kompatibel (lihat langkah berikutnya).

  3. 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
    
  4. 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: