Praktik terbaik untuk menyediakan data ke Speech-to-Text API

Dokumen ini berisi rekomendasi tentang cara menyediakan data ucapan ke Speech-to-Text API. Pedoman ini dirancang untuk meningkatkan efisiensi dan akurasi serta waktu respons yang wajar dari layanan. Penggunaan Speech-to-Text API akan optimal jika data yang dikirim ke layanan berada dalam parameter yang dijelaskan dalam dokumen ini.

Jika Anda mengikuti panduan ini dan tidak mendapatkan hasil yang diharapkan dari API, lihat Pemecahan Masalah & Dukungan.

Untuk hasil yang optimal... Jika memungkinkan, hindari...
Merekam audio dengan frekuensi sampling 16.000 Hz atau lebih tinggi. Frekuensi sampling yang lebih rendah dapat mengurangi akurasi. Namun, hindari pengambilan ulang sampel. Misalnya, dalam telefoni, frekuensi native biasanya 8000 Hz, yang merupakan frekuensi yang harus dikirim ke layanan.
Gunakan codec lossless untuk merekam dan mengirimkan audio. FLAC atau LINEAR16 direkomendasikan. Penggunaan codec mp3, mp4, m4a, mu-law, a-law, atau codec lossy lainnya selama perekaman atau pengiriman dapat mengurangi akurasi. Jika audio Anda menggunakan encoding yang tidak didukung oleh API, transcoding audio tersebut ke FLAC atau LINEAR16 lossless. Jika aplikasi Anda harus menggunakan codec lossy untuk menghemat bandwidth, kami merekomendasikan codec AMR_WB, OGG_OPUS, atau SPEEX_WITH_HEADER_BYTE.
Pengenal ucapan didesain untuk mengabaikan suara dan derau di latar belakang tanpa peredam bising tambahan. Namun, untuk hasil optimal, posisikan mikrofon sedekat mungkin dengan pengguna, terutama saat ada suara bising di latar belakang. Suara bising di latar belakang dan gema yang berlebihan dapat mengurangi akurasi, terutama jika codec lossy juga digunakan.
Jika Anda merekam audio dari beberapa orang, dan setiap orang direkam di saluran terpisah, kirim setiap saluran secara terpisah untuk mendapatkan hasil pengenalan terbaik. Namun, jika semua speaker dicampur dalam satu rekaman saluran, kirim rekaman apa adanya. Beberapa orang yang berbicara bersamaan, atau dengan volume yang berbeda, dapat ditafsirkan sebagai suara bising di latar belakang dan diabaikan.
Gunakan petunjuk kata dan frasa untuk menambahkan nama dan istilah ke kosakata dan meningkatkan akurasi kata dan frasa tertentu. Pengenal ucapan memiliki kosakata yang sangat besar, tetapi istilah dan nama diri yang tidak dicakup dalam kosakata tidak akan dikenali.
Untuk kueri atau perintah singkat, gunakan StreamingRecognize dengan single_utterance ditetapkan ke benar. Cara ini akan mengoptimalkan pengenalan ucapan singkat dan juga meminimalkan latensi. Menggunakan Recognize atau LongRunningRecognize untuk penggunaan kueri atau perintah singkat.

Frekuensi sampling

Jika memungkinkan, tetapkan frekuensi sampling sumber audio ke 16.000 Hz. Jika tidak, tetapkan sample_rate_hertz agar cocok dengan frekuensi sampel native sumber audio (alih-alih mengambil ulang sampel).

Ukuran bingkai

Pengenalan streaming mengenali audio live saat diambil dari mikrofon atau sumber audio lainnya. Streaming audio dibagi menjadi beberapa frame dan dikirim dalam pesan StreamingRecognizeRequest berurutan. Semua ukuran frame dapat diterima. Frame yang lebih besar akan lebih efisien, tetapi meningkatkan latensi. Ukuran frame 100 milidetik direkomendasikan sebagai kompromi yang baik antara latensi dan efisiensi.

Pra-pemrosesan audio

Sebaiknya sediakan audio yang sebersih mungkin dengan menggunakan mikrofon yang berkualitas baik dan diposisikan dengan tepat. Namun, menerapkan pemrosesan sinyal pengurang bising ke audio sebelum mengirimkannya ke layanan biasanya akan mengurangi akurasi pengenalan. Layanan ini dirancang untuk menangani audio yang bising.

Untuk mendapatkan hasil terbaik:

  • Posisikan mikrofon sedekat mungkin dengan pembicara, terutama jika ada suara bising di latar belakang.
  • Hindari pemangkasan audio.
  • Jangan gunakan kontrol penguatan otomatis (AGC).
  • Semua pemrosesan pengurangan bising harus dinonaktifkan.
  • Dengarkan beberapa sampel audio. Suara harus terdengar jernih, tanpa distorsi, atau derau yang tidak terduga.

Konfigurasi permintaan

Pastikan Anda menjelaskan secara akurat data audio yang dikirim bersama permintaan ke Speech-to-Text API. Memastikan bahwa RecognizeConfig untuk permintaan Anda menjelaskan sampleRateHertz, encoding, dan languageCode yang benar akan menghasilkan transkripsi dan penagihan yang paling akurat untuk permintaan Anda.