Package google.cloud.speech.v1p1beta1

Indeks

Speech

Layanan yang mengimplementasikan Google Cloud Speech API.

Kenali

rpc Recognize(RecognizeRequest) returns (RecognizeResponse)

Melakukan pengenalan ucapan sinkron: menerima hasil setelah semua audio dikirim dan diproses.

StreamingRecognize

rpc StreamingRecognize(StreamingRecognizeRequest) returns (StreamingRecognizeResponse)

Melakukan pengenalan ucapan streaming dua arah: menerima hasil saat mengirimkan audio. Metode ini hanya tersedia melalui gRPC API (bukan REST).

RecognitionAudio

Berisi data audio dalam encoding yang ditentukan dalam RecognitionConfig. content atau uri harus diberikan. Menyediakan keduanya atau tidak sama sekali akan menampilkan google.rpc.Code.INVALID_ARGUMENT. Lihat batas konten.

Kolom
Kolom union audio_source. Sumber audio, yang berupa konten inline atau URI Google Cloud Storage. audio_source hanya ada berupa salah satu diantara berikut:
content

bytes

Byte data audio yang dienkode seperti yang ditentukan dalam RecognitionConfig. Catatan: seperti semua kolom byte, buffer proto menggunakan representasi biner murni, sedangkan representasi JSON menggunakan base64.

RecognitionConfig

Memberikan informasi kepada pengenal yang menentukan cara memproses permintaan.

Kolom
encoding

AudioEncoding

Encoding data audio dikirim ke semua pesan RecognitionAudio. Kolom ini bersifat opsional untuk file audio FLAC dan WAV, serta wajib untuk semua format audio lainnya. Untuk mengetahui detailnya, lihat AudioEncoding.

sample_rate_hertz

int32

Frekuensi sampel data audio dalam Hertz yang dikirim di semua pesan RecognitionAudio. Nilai yang valid adalah: 8000-48000. 16.000 sudah optimal. Untuk hasil terbaik, setel frekuensi sampling sumber audio ke 16.000 Hz. Jika tidak memungkinkan, gunakan frekuensi sampel native dari sumber audio (bukan pengambilan ulang sampel). Kolom ini bersifat opsional untuk file audio FLAC dan WAV, tetapi wajib untuk semua format audio lainnya. Untuk mengetahui detailnya, lihat AudioEncoding.

audio_channel_count

int32

Jumlah saluran dalam data audio input. HANYA tetapkan ini untuk pengenalan MULTI-CHANNEL. Nilai yang valid untuk LINEAR16 dan FLAC adalah 1-8. Nilai yang valid untuk OGG_OPUS adalah '1'-'254'. Nilai yang valid untuk MULAW, AMR, AMR_WB, dan SPEEX_WITH_ROWS_BYTE hanya 1. Jika 0 atau dihilangkan, setelan defaultnya adalah satu saluran (mono). Catatan: Secara default, kami hanya mengenali saluran pertama. Untuk melakukan pengenalan independen pada setiap saluran, setel enable_separate_recognition_per_channel ke 'true'.

enable_separate_recognition_per_channel

bool

Ini harus disetel ke true secara eksplisit dan audio_channel_count > 1 agar setiap saluran dikenali secara terpisah. Hasil pengenalan akan berisi kolom channel_tag untuk menentukan saluran yang mencakup hasil tersebut. Jika ini tidak benar, kami hanya akan mengenali saluran pertama. Permintaan ditagih secara kumulatif untuk semua channel yang dikenali: audio_channel_count dikalikan dengan durasi audio.

language_code

string

Wajib. Bahasa audio yang disediakan sebagai tag bahasa BCP-47. Contoh: "en-US". Buka Dukungan Bahasa untuk melihat daftar kode bahasa yang saat ini didukung.

enable_automatic_punctuation

bool

Jika 'true', tambahkan tanda baca ke hipotesis hasil pengenalan. Fitur ini hanya tersedia dalam bahasa tertentu. Menyetel ini untuk permintaan dalam bahasa lain tidak berpengaruh sama sekali. Nilai 'false' (salah) default tidak menambahkan tanda baca untuk membuat hipotesis.

diarization_config

SpeakerDiarizationConfig

Konfigurasi untuk mengaktifkan pemisahan pembicara dan menetapkan parameter tambahan agar diarisasi lebih sesuai untuk aplikasi Anda. Catatan: Jika fitur ini diaktifkan, kami akan mengirim semua kata dari awal audio sebagai alternatif teratas dalam setiap respons STREAMING berturut-turut. Hal ini dilakukan untuk meningkatkan kualitas tag pembicara karena model kami belajar mengidentifikasi pembicara dalam percakapan dari waktu ke waktu. Untuk permintaan non-streaming, hasil diarisasi hanya akan diberikan di alternatif teratas FINAL SpeechRecognitionResult.

model

string

Model yang akan dipilih untuk permintaan tertentu. Pilih model yang paling sesuai dengan domain Anda untuk mendapatkan hasil terbaik. Jika model tidak ditentukan secara eksplisit, kita akan otomatis memilih model berdasarkan parameter di RecognitionConfig.

Model Deskripsi

default

Paling cocok untuk audio yang bukan merupakan salah satu dari model audio tertentu. Misalnya, audio format panjang. Idealnya, audio memiliki fidelitas tinggi, direkam pada frekuensi sampling 16 khz atau lebih tinggi.

AudioEncoding

Encoding data audio yang dikirim dalam permintaan.

Semua encoding hanya mendukung audio 1 saluran (mono), kecuali jika kolom audio_channel_count dan enable_separate_recognition_per_channel disetel.

Untuk hasil terbaik, sumber audio harus diambil dan ditransmisikan menggunakan encoding lossless (FLAC atau LINEAR16). Keakuratan pengenalan ucapan dapat dikurangi jika codec lossy digunakan untuk menangkap atau mentransmisikan audio, terutama jika ada suara bising di latar belakang. Codec lossy mencakup MULAW, AMR, AMR_WB, OGG_OPUS, SPEEX_WITH_HEADER_BYTE, dan MP3.

Format file audio FLAC dan WAV menyertakan header yang menjelaskan konten audio yang disertakan. Anda dapat meminta pengenalan untuk file WAV yang berisi audio yang dienkode ke LINEAR16 atau MULAW. Jika Anda mengirimkan format file audio FLAC atau WAV dalam permintaan, Anda tidak perlu menentukan AudioEncoding; format encoding audio ditentukan dari header file. Jika Anda menentukan AudioEncoding saat mengirim audio FLAC atau WAV, konfigurasi encoding harus cocok dengan encoding yang dijelaskan di header audio; jika tidak, permintaan akan menampilkan kode error google.rpc.Code.INVALID_ARGUMENT.

Enum
ENCODING_UNSPECIFIED Tidak ditentukan.
LINEAR16 Sampel little-endian bertanda tangan 16-bit yang tidak dikompresi (Linear PCM).
FLAC FLAC (Free Lossless Audio Codec) adalah encoding yang direkomendasikan karena lossless. Oleh karena itu, pengenalan tidak terganggu--dan hanya memerlukan sekitar setengah bandwidth LINEAR16. Encoding streaming FLAC mendukung sampel 16-bit dan 24-bit, tetapi tidak semua kolom di STREAMINFO didukung.
MULAW Sampel 8-bit yang menggabungkan sampel audio 14-bit menggunakan G.711 PCMU/mu-law.
OGG_OPUS Frame audio yang dienkode Opus dalam penampung Ogg (OggOpus). sample_rate_hertz harus salah satu dari 8000, 12000, 16000, 24000, atau 48000.
SPEEX_WITH_HEADER_BYTE Meskipun penggunaan encoding lossy tidak direkomendasikan, jika encoding dengan kecepatan bit yang sangat rendah diperlukan, OGG_OPUS lebih disukai daripada encoding Speex. Encoding Speex yang didukung oleh Cloud Speech API memiliki byte header di setiap blok, seperti dalam jenis MIME audio/x-speex-with-header-byte. Ini adalah varian encoding RTP Speex yang didefinisikan dalam RFC 5574. {i>Stream<i} adalah urutan blok, satu blok per paket RTP. Setiap blok dimulai dengan satu byte yang berisi panjang blok, dalam byte, diikuti oleh satu atau beberapa {i>frame<i} data Speex, ditambahkan ke sejumlah integral byte (oktet) sebagaimana ditentukan dalam RFC 5574. Dengan kata lain, setiap {i>header<i} RTP diganti dengan satu byte yang berisi panjang blok. Hanya wideband Speex yang didukung. sample_rate_hertz harus 16000.

RecognizeRequest

Pesan tingkat atas yang dikirim oleh klien untuk metode Recognize.

Kolom
config

RecognitionConfig

Wajib. Memberikan informasi kepada pengenal yang menentukan cara memproses permintaan.

audio

RecognitionAudio

Wajib. Data audio yang akan dikenali.

RecognizeResponse

Satu-satunya pesan yang ditampilkan ke klien oleh metode Recognize. Class ini berisi hasil sebagai nol atau beberapa pesan SpeechRecognitionResult berurutan.

Kolom
results[]

SpeechRecognitionResult

Daftar hasil transkripsi berurutan yang sesuai dengan bagian audio yang berurutan.

SpeakerDiarizationConfig

Konfigurasi untuk mengaktifkan pemisahan pembicara.

Kolom
enable_speaker_diarization

bool

Jika 'true', akan mengaktifkan deteksi pembicara untuk setiap kata yang dikenali di alternatif atas hasil pengenalan menggunakan speaker_tag yang disediakan di WordInfo.

min_speaker_count

int32

Jumlah minimum pembicara dalam percakapan. Rentang ini memberi Anda lebih banyak fleksibilitas dengan memungkinkan sistem menentukan jumlah speaker yang tepat secara otomatis. Jika tidak disetel, nilai defaultnya adalah 2.

max_speaker_count

int32

Jumlah maksimum pembicara dalam percakapan. Rentang ini memberi Anda lebih banyak fleksibilitas dengan memungkinkan sistem menentukan jumlah speaker yang tepat secara otomatis. Jika tidak disetel, nilai defaultnya adalah 6.

SpeechRecognitionAlternative

Hipotesis alternatif (alias daftar n-terbaik).

Kolom
transcript

string

Teks transkrip yang mewakili kata-kata yang diucapkan pengguna.

confidence

float

Estimasi keyakinan antara 0,0 dan 1,0. Angka yang lebih tinggi menunjukkan estimasi kemungkinan yang lebih besar bahwa kata yang dikenali tersebut benar. Kolom ini hanya disetel untuk alternatif teratas hasil non-streaming atau, untuk hasil streaming dengan is_final=true. Kolom ini tidak dijamin akurat dan pengguna tidak boleh mengandalkannya agar selalu diberikan. Nilai default 0,0 adalah nilai sentinel yang menunjukkan confidence tidak ditetapkan.

words[]

WordInfo

Daftar informasi khusus kata untuk setiap kata yang dikenali. Catatan: Jika enable_speaker_diarization disetel ke benar (true), Anda akan melihat semua kata dari awal audio.

SpeechRecognitionResult

Hasil pengenalan ucapan yang sesuai dengan sebagian audio.

Kolom
alternatives[]

SpeechRecognitionAlternative

Dapat berisi satu atau beberapa hipotesis pengenalan (hingga jumlah maksimum yang ditentukan dalam max_alternatives). Alternatif ini diurutkan dalam hal akurasi, dengan alternatif teratas (pertama) sebagai yang paling mungkin, seperti yang diberi peringkat oleh pengenal.

channel_tag

int32

Untuk audio multi-saluran, ini adalah nomor saluran yang sesuai dengan hasil yang dikenali untuk audio dari saluran tersebut. Untuk audio_channel_count = N, nilai output-nya dapat berkisar dari '1' hingga 'N'.

language_code

string

Hanya output. Tag bahasa BCP-47 dari bahasa dalam hasil ini. Kode bahasa ini terdeteksi memiliki kemungkinan yang paling besar untuk diucapkan dalam audio.

StreamingRecognitionConfig

Memberikan informasi kepada pengenal yang menentukan cara memproses permintaan.

Kolom
config

RecognitionConfig

Wajib. Memberikan informasi kepada pengenal yang menentukan cara memproses permintaan.

StreamingRecognitionResult

Hasil pengenalan ucapan streaming yang sesuai dengan sebagian audio yang sedang diproses.

Kolom
alternatives[]

SpeechRecognitionAlternative

Dapat berisi satu atau beberapa hipotesis pengenalan (hingga jumlah maksimum yang ditentukan dalam max_alternatives). Alternatif ini diurutkan dalam hal akurasi, dengan alternatif teratas (pertama) sebagai yang paling mungkin, seperti yang diberi peringkat oleh pengenal.

is_final

bool

Jika false, StreamingRecognitionResult ini mewakili hasil sementara yang dapat berubah. Jika true, ini adalah saat terakhir layanan ucapan akan menampilkan StreamingRecognitionResult khusus ini, pengenal tidak akan menampilkan hipotesis lebih lanjut untuk bagian transkrip ini dan audio yang sesuai.

stability

float

Estimasi kemungkinan bahwa pengenal tidak akan mengubah tebakannya tentang hasil sementara ini. Rentang nilai dari 0.0 (benar-benar tidak stabil) hingga 1.0 (benar-benar stabil). Kolom ini hanya disediakan untuk hasil sementara (is_final=false). Nilai default 0,0 adalah nilai sentinel yang menunjukkan stability tidak ditetapkan.

result_end_time

Duration

Offset waktu dari akhir hasil ini relatif terhadap awal audio.

channel_tag

int32

Untuk audio multi-saluran, ini adalah nomor saluran yang sesuai dengan hasil yang dikenali untuk audio dari saluran tersebut. Untuk audio_channel_count = N, nilai output-nya dapat berkisar dari '1' hingga 'N'.

language_code

string

Hanya output. Tag bahasa BCP-47 dari bahasa dalam hasil ini. Kode bahasa ini terdeteksi memiliki kemungkinan yang paling besar untuk diucapkan dalam audio.

StreamingRecognizeRequest

Pesan tingkat atas yang dikirim oleh klien untuk metode StreamingRecognize. Beberapa pesan StreamingRecognizeRequest dikirim. Pesan pertama harus berisi pesan streaming_config dan tidak boleh berisi audio_content. Semua pesan berikutnya harus berisi audio_content dan tidak boleh berisi pesan streaming_config.

Kolom
Kolom union streaming_request. Permintaan streaming, yang merupakan konfigurasi streaming atau konten audio. streaming_request hanya ada berupa salah satu diantara berikut:
streaming_config

StreamingRecognitionConfig

Memberikan informasi kepada pengenal yang menentukan cara memproses permintaan. Pesan StreamingRecognizeRequest pertama harus berisi pesan streaming_config.

audio_content

bytes

Data audio yang akan dikenali. Potongan data audio secara berurutan dikirim dalam pesan StreamingRecognizeRequest yang berurutan. Pesan StreamingRecognizeRequest pertama tidak boleh berisi data audio_content dan semua pesan StreamingRecognizeRequest berikutnya harus berisi data audio_content. Byte audio harus dienkode seperti yang ditentukan dalam RecognitionConfig. Catatan: seperti semua kolom byte, buffer proto menggunakan representasi biner murni (bukan base64). Lihat batas konten.

StreamingRecognizeResponse

StreamingRecognizeResponse adalah satu-satunya pesan yang ditampilkan ke klien oleh StreamingRecognize. Rangkaian nol atau beberapa pesan StreamingRecognizeResponse akan di-streaming kembali ke klien. Jika tidak ada audio yang dapat dikenali, dan single_utterance disetel ke salah (false), tidak ada pesan yang di-streaming kembali ke klien.

Berikut ini contoh serangkaian sepuluh StreamingRecognizeResponse yang mungkin ditampilkan saat memproses audio:

  1. results { alternatives { transcript: "tube" } stability: 0.01 }

  2. results { alternatives { transcript: "to be a" } stability: 0.01 }

  3. results { alternatives { transcript: "to be" } stability: 0.9 } results { alternatives { transcript: " or not to be" } stability: 0.01 }

  4. results { alternatives { transcript: "to be or not to be" confidence: 0.92 } alternatives { transcript: "to bee or not to bee" } is_final: true }

  5. results { alternatives { transcript: " that's" } stability: 0.01 }

  6. results { alternatives { transcript: " that is" } stability: 0.9 } results { alternatives { transcript: " the question" } stability: 0.01 }

  7. results { alternatives { transcript: " that is the question" confidence: 0.98 } alternatives { transcript: " that was the question" } is_final: true }

Catatan:

  • Hanya dua dari respons #4 dan #7 di atas yang berisi hasil akhir; yang ditunjukkan oleh is_final: true. Menggabungkan ini bersama-sama menghasilkan transkrip lengkap: "to be or not to be that is the question".

  • Lainnya berisi results sementara. #3 dan #6 berisi dua results sementara: bagian pertama memiliki stabilitas tinggi dan cenderung tidak berubah; bagian kedua memiliki stabilitas rendah dan sangat mungkin berubah. Desainer UI mungkin memilih untuk hanya menampilkan results dengan stabilitas tinggi.

  • Nilai stability dan confidence spesifik yang ditampilkan di atas hanya untuk tujuan ilustrasi. Nilai sebenarnya dapat berbeda.

  • Dalam setiap respons, hanya salah satu dari kolom berikut yang akan disetel: error, speech_event_type, atau satu atau beberapa (berulang) results.

Kolom
error

Status

Jika ditetapkan, pesan google.rpc.Status yang menentukan error untuk operasi akan ditampilkan.

results[]

StreamingRecognitionResult

Daftar berulang ini berisi nol hasil atau lebih yang berkaitan dengan bagian berturut-turut dari audio yang sedang diproses. Kolom ini berisi nol atau satu hasil is_final=true (bagian yang baru diselesaikan), diikuti dengan nol hasil is_final=false atau lebih (hasil sementara).

speech_event_type

SpeechEventType

Menunjukkan jenis peristiwa ucapan.

SpeechEventType

Menunjukkan jenis peristiwa ucapan.

Enum
SPEECH_EVENT_UNSPECIFIED Tidak ada peristiwa ucapan yang ditentukan.
END_OF_SINGLE_UTTERANCE Peristiwa ini menunjukkan bahwa server telah mendeteksi akhir ucapan ucapan pengguna dan tidak mengharapkan ucapan tambahan. Oleh karena itu, server tidak akan memproses audio tambahan (meskipun selanjutnya dapat menampilkan hasil tambahan). Klien akan berhenti mengirim data audio tambahan, menutup setengah koneksi gRPC, dan menunggu hasil tambahan hingga server menutup koneksi gRPC. Peristiwa ini hanya dikirim jika single_utterance ditetapkan ke true, dan tidak digunakan jika sebaliknya.

WordInfo

Informasi khusus kata untuk kata yang dikenali.

Kolom
start_time

Duration

Offset waktu relatif terhadap awal audio, dan sesuai dengan awal kata yang diucapkan. Kolom ini hanya ditetapkan jika enable_word_time_offsets=true dan hanya dalam hipotesis teratas. Ini adalah fitur eksperimental dan keakuratan selisih waktu dapat bervariasi.

end_time

Duration

Offset waktu relatif terhadap awal audio, dan sesuai dengan akhir kata yang diucapkan. Kolom ini hanya ditetapkan jika enable_word_time_offsets=true dan hanya dalam hipotesis teratas. Ini adalah fitur eksperimental dan keakuratan selisih waktu dapat bervariasi.

word

string

Kata yang sesuai dengan kumpulan informasi ini.

speaker_tag

int32

Hanya output. Nilai bilangan bulat yang berbeda akan ditetapkan untuk setiap speaker dalam audio. Bidang ini menentukan siapa dari pembicara tersebut yang terdeteksi telah mengucapkan kata ini. Rentang nilai mulai dari '1' hingga diarization_speaker_count. speaker_tag ditetapkan jika enable_speaker_diarization = 'true' dan hanya di alternatif teratas.