1// Copyright 2019 Google LLC. 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14// 15 16// Code generated by protoc-gen-go. DO NOT EDIT. 17// versions: 18// protoc-gen-go v1.22.0 19// protoc v3.11.2 20// source: google/cloud/speech/v1/cloud_speech.proto 21 22package speech 23 24import ( 25 context "context" 26 reflect "reflect" 27 sync "sync" 28 29 proto "github.com/golang/protobuf/proto" 30 _ "github.com/golang/protobuf/ptypes/any" 31 duration "github.com/golang/protobuf/ptypes/duration" 32 timestamp "github.com/golang/protobuf/ptypes/timestamp" 33 _ "google.golang.org/genproto/googleapis/api/annotations" 34 longrunning "google.golang.org/genproto/googleapis/longrunning" 35 status "google.golang.org/genproto/googleapis/rpc/status" 36 grpc "google.golang.org/grpc" 37 codes "google.golang.org/grpc/codes" 38 status1 "google.golang.org/grpc/status" 39 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 40 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 41) 42 43const ( 44 // Verify that this generated code is sufficiently up-to-date. 45 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 46 // Verify that runtime/protoimpl is sufficiently up-to-date. 47 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 48) 49 50// This is a compile-time assertion that a sufficiently up-to-date version 51// of the legacy proto package is being used. 52const _ = proto.ProtoPackageIsVersion4 53 54// The encoding of the audio data sent in the request. 55// 56// All encodings support only 1 channel (mono) audio, unless the 57// `audio_channel_count` and `enable_separate_recognition_per_channel` fields 58// are set. 59// 60// For best results, the audio source should be captured and transmitted using 61// a lossless encoding (`FLAC` or `LINEAR16`). The accuracy of the speech 62// recognition can be reduced if lossy codecs are used to capture or transmit 63// audio, particularly if background noise is present. Lossy codecs include 64// `MULAW`, `AMR`, `AMR_WB`, `OGG_OPUS`, `SPEEX_WITH_HEADER_BYTE`, and `MP3`. 65// 66// The `FLAC` and `WAV` audio file formats include a header that describes the 67// included audio content. You can request recognition for `WAV` files that 68// contain either `LINEAR16` or `MULAW` encoded audio. 69// If you send `FLAC` or `WAV` audio file format in 70// your request, you do not need to specify an `AudioEncoding`; the audio 71// encoding format is determined from the file header. If you specify 72// an `AudioEncoding` when you send send `FLAC` or `WAV` audio, the 73// encoding configuration must match the encoding described in the audio 74// header; otherwise the request returns an 75// [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT] error code. 76type RecognitionConfig_AudioEncoding int32 77 78const ( 79 // Not specified. 80 RecognitionConfig_ENCODING_UNSPECIFIED RecognitionConfig_AudioEncoding = 0 81 // Uncompressed 16-bit signed little-endian samples (Linear PCM). 82 RecognitionConfig_LINEAR16 RecognitionConfig_AudioEncoding = 1 83 // `FLAC` (Free Lossless Audio 84 // Codec) is the recommended encoding because it is 85 // lossless--therefore recognition is not compromised--and 86 // requires only about half the bandwidth of `LINEAR16`. `FLAC` stream 87 // encoding supports 16-bit and 24-bit samples, however, not all fields in 88 // `STREAMINFO` are supported. 89 RecognitionConfig_FLAC RecognitionConfig_AudioEncoding = 2 90 // 8-bit samples that compand 14-bit audio samples using G.711 PCMU/mu-law. 91 RecognitionConfig_MULAW RecognitionConfig_AudioEncoding = 3 92 // Adaptive Multi-Rate Narrowband codec. `sample_rate_hertz` must be 8000. 93 RecognitionConfig_AMR RecognitionConfig_AudioEncoding = 4 94 // Adaptive Multi-Rate Wideband codec. `sample_rate_hertz` must be 16000. 95 RecognitionConfig_AMR_WB RecognitionConfig_AudioEncoding = 5 96 // Opus encoded audio frames in Ogg container 97 // ([OggOpus](https://wiki.xiph.org/OggOpus)). 98 // `sample_rate_hertz` must be one of 8000, 12000, 16000, 24000, or 48000. 99 RecognitionConfig_OGG_OPUS RecognitionConfig_AudioEncoding = 6 100 // Although the use of lossy encodings is not recommended, if a very low 101 // bitrate encoding is required, `OGG_OPUS` is highly preferred over 102 // Speex encoding. The [Speex](https://speex.org/) encoding supported by 103 // Cloud Speech API has a header byte in each block, as in MIME type 104 // `audio/x-speex-with-header-byte`. 105 // It is a variant of the RTP Speex encoding defined in 106 // [RFC 5574](https://tools.ietf.org/html/rfc5574). 107 // The stream is a sequence of blocks, one block per RTP packet. Each block 108 // starts with a byte containing the length of the block, in bytes, followed 109 // by one or more frames of Speex data, padded to an integral number of 110 // bytes (octets) as specified in RFC 5574. In other words, each RTP header 111 // is replaced with a single byte containing the block length. Only Speex 112 // wideband is supported. `sample_rate_hertz` must be 16000. 113 RecognitionConfig_SPEEX_WITH_HEADER_BYTE RecognitionConfig_AudioEncoding = 7 114) 115 116// Enum value maps for RecognitionConfig_AudioEncoding. 117var ( 118 RecognitionConfig_AudioEncoding_name = map[int32]string{ 119 0: "ENCODING_UNSPECIFIED", 120 1: "LINEAR16", 121 2: "FLAC", 122 3: "MULAW", 123 4: "AMR", 124 5: "AMR_WB", 125 6: "OGG_OPUS", 126 7: "SPEEX_WITH_HEADER_BYTE", 127 } 128 RecognitionConfig_AudioEncoding_value = map[string]int32{ 129 "ENCODING_UNSPECIFIED": 0, 130 "LINEAR16": 1, 131 "FLAC": 2, 132 "MULAW": 3, 133 "AMR": 4, 134 "AMR_WB": 5, 135 "OGG_OPUS": 6, 136 "SPEEX_WITH_HEADER_BYTE": 7, 137 } 138) 139 140func (x RecognitionConfig_AudioEncoding) Enum() *RecognitionConfig_AudioEncoding { 141 p := new(RecognitionConfig_AudioEncoding) 142 *p = x 143 return p 144} 145 146func (x RecognitionConfig_AudioEncoding) String() string { 147 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 148} 149 150func (RecognitionConfig_AudioEncoding) Descriptor() protoreflect.EnumDescriptor { 151 return file_google_cloud_speech_v1_cloud_speech_proto_enumTypes[0].Descriptor() 152} 153 154func (RecognitionConfig_AudioEncoding) Type() protoreflect.EnumType { 155 return &file_google_cloud_speech_v1_cloud_speech_proto_enumTypes[0] 156} 157 158func (x RecognitionConfig_AudioEncoding) Number() protoreflect.EnumNumber { 159 return protoreflect.EnumNumber(x) 160} 161 162// Deprecated: Use RecognitionConfig_AudioEncoding.Descriptor instead. 163func (RecognitionConfig_AudioEncoding) EnumDescriptor() ([]byte, []int) { 164 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{4, 0} 165} 166 167// Use case categories that the audio recognition request can be described 168// by. 169type RecognitionMetadata_InteractionType int32 170 171const ( 172 // Use case is either unknown or is something other than one of the other 173 // values below. 174 RecognitionMetadata_INTERACTION_TYPE_UNSPECIFIED RecognitionMetadata_InteractionType = 0 175 // Multiple people in a conversation or discussion. For example in a 176 // meeting with two or more people actively participating. Typically 177 // all the primary people speaking would be in the same room (if not, 178 // see PHONE_CALL) 179 RecognitionMetadata_DISCUSSION RecognitionMetadata_InteractionType = 1 180 // One or more persons lecturing or presenting to others, mostly 181 // uninterrupted. 182 RecognitionMetadata_PRESENTATION RecognitionMetadata_InteractionType = 2 183 // A phone-call or video-conference in which two or more people, who are 184 // not in the same room, are actively participating. 185 RecognitionMetadata_PHONE_CALL RecognitionMetadata_InteractionType = 3 186 // A recorded message intended for another person to listen to. 187 RecognitionMetadata_VOICEMAIL RecognitionMetadata_InteractionType = 4 188 // Professionally produced audio (eg. TV Show, Podcast). 189 RecognitionMetadata_PROFESSIONALLY_PRODUCED RecognitionMetadata_InteractionType = 5 190 // Transcribe spoken questions and queries into text. 191 RecognitionMetadata_VOICE_SEARCH RecognitionMetadata_InteractionType = 6 192 // Transcribe voice commands, such as for controlling a device. 193 RecognitionMetadata_VOICE_COMMAND RecognitionMetadata_InteractionType = 7 194 // Transcribe speech to text to create a written document, such as a 195 // text-message, email or report. 196 RecognitionMetadata_DICTATION RecognitionMetadata_InteractionType = 8 197) 198 199// Enum value maps for RecognitionMetadata_InteractionType. 200var ( 201 RecognitionMetadata_InteractionType_name = map[int32]string{ 202 0: "INTERACTION_TYPE_UNSPECIFIED", 203 1: "DISCUSSION", 204 2: "PRESENTATION", 205 3: "PHONE_CALL", 206 4: "VOICEMAIL", 207 5: "PROFESSIONALLY_PRODUCED", 208 6: "VOICE_SEARCH", 209 7: "VOICE_COMMAND", 210 8: "DICTATION", 211 } 212 RecognitionMetadata_InteractionType_value = map[string]int32{ 213 "INTERACTION_TYPE_UNSPECIFIED": 0, 214 "DISCUSSION": 1, 215 "PRESENTATION": 2, 216 "PHONE_CALL": 3, 217 "VOICEMAIL": 4, 218 "PROFESSIONALLY_PRODUCED": 5, 219 "VOICE_SEARCH": 6, 220 "VOICE_COMMAND": 7, 221 "DICTATION": 8, 222 } 223) 224 225func (x RecognitionMetadata_InteractionType) Enum() *RecognitionMetadata_InteractionType { 226 p := new(RecognitionMetadata_InteractionType) 227 *p = x 228 return p 229} 230 231func (x RecognitionMetadata_InteractionType) String() string { 232 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 233} 234 235func (RecognitionMetadata_InteractionType) Descriptor() protoreflect.EnumDescriptor { 236 return file_google_cloud_speech_v1_cloud_speech_proto_enumTypes[1].Descriptor() 237} 238 239func (RecognitionMetadata_InteractionType) Type() protoreflect.EnumType { 240 return &file_google_cloud_speech_v1_cloud_speech_proto_enumTypes[1] 241} 242 243func (x RecognitionMetadata_InteractionType) Number() protoreflect.EnumNumber { 244 return protoreflect.EnumNumber(x) 245} 246 247// Deprecated: Use RecognitionMetadata_InteractionType.Descriptor instead. 248func (RecognitionMetadata_InteractionType) EnumDescriptor() ([]byte, []int) { 249 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{6, 0} 250} 251 252// Enumerates the types of capture settings describing an audio file. 253type RecognitionMetadata_MicrophoneDistance int32 254 255const ( 256 // Audio type is not known. 257 RecognitionMetadata_MICROPHONE_DISTANCE_UNSPECIFIED RecognitionMetadata_MicrophoneDistance = 0 258 // The audio was captured from a closely placed microphone. Eg. phone, 259 // dictaphone, or handheld microphone. Generally if there speaker is within 260 // 1 meter of the microphone. 261 RecognitionMetadata_NEARFIELD RecognitionMetadata_MicrophoneDistance = 1 262 // The speaker if within 3 meters of the microphone. 263 RecognitionMetadata_MIDFIELD RecognitionMetadata_MicrophoneDistance = 2 264 // The speaker is more than 3 meters away from the microphone. 265 RecognitionMetadata_FARFIELD RecognitionMetadata_MicrophoneDistance = 3 266) 267 268// Enum value maps for RecognitionMetadata_MicrophoneDistance. 269var ( 270 RecognitionMetadata_MicrophoneDistance_name = map[int32]string{ 271 0: "MICROPHONE_DISTANCE_UNSPECIFIED", 272 1: "NEARFIELD", 273 2: "MIDFIELD", 274 3: "FARFIELD", 275 } 276 RecognitionMetadata_MicrophoneDistance_value = map[string]int32{ 277 "MICROPHONE_DISTANCE_UNSPECIFIED": 0, 278 "NEARFIELD": 1, 279 "MIDFIELD": 2, 280 "FARFIELD": 3, 281 } 282) 283 284func (x RecognitionMetadata_MicrophoneDistance) Enum() *RecognitionMetadata_MicrophoneDistance { 285 p := new(RecognitionMetadata_MicrophoneDistance) 286 *p = x 287 return p 288} 289 290func (x RecognitionMetadata_MicrophoneDistance) String() string { 291 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 292} 293 294func (RecognitionMetadata_MicrophoneDistance) Descriptor() protoreflect.EnumDescriptor { 295 return file_google_cloud_speech_v1_cloud_speech_proto_enumTypes[2].Descriptor() 296} 297 298func (RecognitionMetadata_MicrophoneDistance) Type() protoreflect.EnumType { 299 return &file_google_cloud_speech_v1_cloud_speech_proto_enumTypes[2] 300} 301 302func (x RecognitionMetadata_MicrophoneDistance) Number() protoreflect.EnumNumber { 303 return protoreflect.EnumNumber(x) 304} 305 306// Deprecated: Use RecognitionMetadata_MicrophoneDistance.Descriptor instead. 307func (RecognitionMetadata_MicrophoneDistance) EnumDescriptor() ([]byte, []int) { 308 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{6, 1} 309} 310 311// The original media the speech was recorded on. 312type RecognitionMetadata_OriginalMediaType int32 313 314const ( 315 // Unknown original media type. 316 RecognitionMetadata_ORIGINAL_MEDIA_TYPE_UNSPECIFIED RecognitionMetadata_OriginalMediaType = 0 317 // The speech data is an audio recording. 318 RecognitionMetadata_AUDIO RecognitionMetadata_OriginalMediaType = 1 319 // The speech data originally recorded on a video. 320 RecognitionMetadata_VIDEO RecognitionMetadata_OriginalMediaType = 2 321) 322 323// Enum value maps for RecognitionMetadata_OriginalMediaType. 324var ( 325 RecognitionMetadata_OriginalMediaType_name = map[int32]string{ 326 0: "ORIGINAL_MEDIA_TYPE_UNSPECIFIED", 327 1: "AUDIO", 328 2: "VIDEO", 329 } 330 RecognitionMetadata_OriginalMediaType_value = map[string]int32{ 331 "ORIGINAL_MEDIA_TYPE_UNSPECIFIED": 0, 332 "AUDIO": 1, 333 "VIDEO": 2, 334 } 335) 336 337func (x RecognitionMetadata_OriginalMediaType) Enum() *RecognitionMetadata_OriginalMediaType { 338 p := new(RecognitionMetadata_OriginalMediaType) 339 *p = x 340 return p 341} 342 343func (x RecognitionMetadata_OriginalMediaType) String() string { 344 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 345} 346 347func (RecognitionMetadata_OriginalMediaType) Descriptor() protoreflect.EnumDescriptor { 348 return file_google_cloud_speech_v1_cloud_speech_proto_enumTypes[3].Descriptor() 349} 350 351func (RecognitionMetadata_OriginalMediaType) Type() protoreflect.EnumType { 352 return &file_google_cloud_speech_v1_cloud_speech_proto_enumTypes[3] 353} 354 355func (x RecognitionMetadata_OriginalMediaType) Number() protoreflect.EnumNumber { 356 return protoreflect.EnumNumber(x) 357} 358 359// Deprecated: Use RecognitionMetadata_OriginalMediaType.Descriptor instead. 360func (RecognitionMetadata_OriginalMediaType) EnumDescriptor() ([]byte, []int) { 361 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{6, 2} 362} 363 364// The type of device the speech was recorded with. 365type RecognitionMetadata_RecordingDeviceType int32 366 367const ( 368 // The recording device is unknown. 369 RecognitionMetadata_RECORDING_DEVICE_TYPE_UNSPECIFIED RecognitionMetadata_RecordingDeviceType = 0 370 // Speech was recorded on a smartphone. 371 RecognitionMetadata_SMARTPHONE RecognitionMetadata_RecordingDeviceType = 1 372 // Speech was recorded using a personal computer or tablet. 373 RecognitionMetadata_PC RecognitionMetadata_RecordingDeviceType = 2 374 // Speech was recorded over a phone line. 375 RecognitionMetadata_PHONE_LINE RecognitionMetadata_RecordingDeviceType = 3 376 // Speech was recorded in a vehicle. 377 RecognitionMetadata_VEHICLE RecognitionMetadata_RecordingDeviceType = 4 378 // Speech was recorded outdoors. 379 RecognitionMetadata_OTHER_OUTDOOR_DEVICE RecognitionMetadata_RecordingDeviceType = 5 380 // Speech was recorded indoors. 381 RecognitionMetadata_OTHER_INDOOR_DEVICE RecognitionMetadata_RecordingDeviceType = 6 382) 383 384// Enum value maps for RecognitionMetadata_RecordingDeviceType. 385var ( 386 RecognitionMetadata_RecordingDeviceType_name = map[int32]string{ 387 0: "RECORDING_DEVICE_TYPE_UNSPECIFIED", 388 1: "SMARTPHONE", 389 2: "PC", 390 3: "PHONE_LINE", 391 4: "VEHICLE", 392 5: "OTHER_OUTDOOR_DEVICE", 393 6: "OTHER_INDOOR_DEVICE", 394 } 395 RecognitionMetadata_RecordingDeviceType_value = map[string]int32{ 396 "RECORDING_DEVICE_TYPE_UNSPECIFIED": 0, 397 "SMARTPHONE": 1, 398 "PC": 2, 399 "PHONE_LINE": 3, 400 "VEHICLE": 4, 401 "OTHER_OUTDOOR_DEVICE": 5, 402 "OTHER_INDOOR_DEVICE": 6, 403 } 404) 405 406func (x RecognitionMetadata_RecordingDeviceType) Enum() *RecognitionMetadata_RecordingDeviceType { 407 p := new(RecognitionMetadata_RecordingDeviceType) 408 *p = x 409 return p 410} 411 412func (x RecognitionMetadata_RecordingDeviceType) String() string { 413 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 414} 415 416func (RecognitionMetadata_RecordingDeviceType) Descriptor() protoreflect.EnumDescriptor { 417 return file_google_cloud_speech_v1_cloud_speech_proto_enumTypes[4].Descriptor() 418} 419 420func (RecognitionMetadata_RecordingDeviceType) Type() protoreflect.EnumType { 421 return &file_google_cloud_speech_v1_cloud_speech_proto_enumTypes[4] 422} 423 424func (x RecognitionMetadata_RecordingDeviceType) Number() protoreflect.EnumNumber { 425 return protoreflect.EnumNumber(x) 426} 427 428// Deprecated: Use RecognitionMetadata_RecordingDeviceType.Descriptor instead. 429func (RecognitionMetadata_RecordingDeviceType) EnumDescriptor() ([]byte, []int) { 430 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{6, 3} 431} 432 433// Indicates the type of speech event. 434type StreamingRecognizeResponse_SpeechEventType int32 435 436const ( 437 // No speech event specified. 438 StreamingRecognizeResponse_SPEECH_EVENT_UNSPECIFIED StreamingRecognizeResponse_SpeechEventType = 0 439 // This event indicates that the server has detected the end of the user's 440 // speech utterance and expects no additional speech. Therefore, the server 441 // will not process additional audio (although it may subsequently return 442 // additional results). The client should stop sending additional audio 443 // data, half-close the gRPC connection, and wait for any additional results 444 // until the server closes the gRPC connection. This event is only sent if 445 // `single_utterance` was set to `true`, and is not used otherwise. 446 StreamingRecognizeResponse_END_OF_SINGLE_UTTERANCE StreamingRecognizeResponse_SpeechEventType = 1 447) 448 449// Enum value maps for StreamingRecognizeResponse_SpeechEventType. 450var ( 451 StreamingRecognizeResponse_SpeechEventType_name = map[int32]string{ 452 0: "SPEECH_EVENT_UNSPECIFIED", 453 1: "END_OF_SINGLE_UTTERANCE", 454 } 455 StreamingRecognizeResponse_SpeechEventType_value = map[string]int32{ 456 "SPEECH_EVENT_UNSPECIFIED": 0, 457 "END_OF_SINGLE_UTTERANCE": 1, 458 } 459) 460 461func (x StreamingRecognizeResponse_SpeechEventType) Enum() *StreamingRecognizeResponse_SpeechEventType { 462 p := new(StreamingRecognizeResponse_SpeechEventType) 463 *p = x 464 return p 465} 466 467func (x StreamingRecognizeResponse_SpeechEventType) String() string { 468 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 469} 470 471func (StreamingRecognizeResponse_SpeechEventType) Descriptor() protoreflect.EnumDescriptor { 472 return file_google_cloud_speech_v1_cloud_speech_proto_enumTypes[5].Descriptor() 473} 474 475func (StreamingRecognizeResponse_SpeechEventType) Type() protoreflect.EnumType { 476 return &file_google_cloud_speech_v1_cloud_speech_proto_enumTypes[5] 477} 478 479func (x StreamingRecognizeResponse_SpeechEventType) Number() protoreflect.EnumNumber { 480 return protoreflect.EnumNumber(x) 481} 482 483// Deprecated: Use StreamingRecognizeResponse_SpeechEventType.Descriptor instead. 484func (StreamingRecognizeResponse_SpeechEventType) EnumDescriptor() ([]byte, []int) { 485 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{12, 0} 486} 487 488// The top-level message sent by the client for the `Recognize` method. 489type RecognizeRequest struct { 490 state protoimpl.MessageState 491 sizeCache protoimpl.SizeCache 492 unknownFields protoimpl.UnknownFields 493 494 // Required. Provides information to the recognizer that specifies how to 495 // process the request. 496 Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` 497 // Required. The audio data to be recognized. 498 Audio *RecognitionAudio `protobuf:"bytes,2,opt,name=audio,proto3" json:"audio,omitempty"` 499} 500 501func (x *RecognizeRequest) Reset() { 502 *x = RecognizeRequest{} 503 if protoimpl.UnsafeEnabled { 504 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[0] 505 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 506 ms.StoreMessageInfo(mi) 507 } 508} 509 510func (x *RecognizeRequest) String() string { 511 return protoimpl.X.MessageStringOf(x) 512} 513 514func (*RecognizeRequest) ProtoMessage() {} 515 516func (x *RecognizeRequest) ProtoReflect() protoreflect.Message { 517 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[0] 518 if protoimpl.UnsafeEnabled && x != nil { 519 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 520 if ms.LoadMessageInfo() == nil { 521 ms.StoreMessageInfo(mi) 522 } 523 return ms 524 } 525 return mi.MessageOf(x) 526} 527 528// Deprecated: Use RecognizeRequest.ProtoReflect.Descriptor instead. 529func (*RecognizeRequest) Descriptor() ([]byte, []int) { 530 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{0} 531} 532 533func (x *RecognizeRequest) GetConfig() *RecognitionConfig { 534 if x != nil { 535 return x.Config 536 } 537 return nil 538} 539 540func (x *RecognizeRequest) GetAudio() *RecognitionAudio { 541 if x != nil { 542 return x.Audio 543 } 544 return nil 545} 546 547// The top-level message sent by the client for the `LongRunningRecognize` 548// method. 549type LongRunningRecognizeRequest struct { 550 state protoimpl.MessageState 551 sizeCache protoimpl.SizeCache 552 unknownFields protoimpl.UnknownFields 553 554 // Required. Provides information to the recognizer that specifies how to 555 // process the request. 556 Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` 557 // Required. The audio data to be recognized. 558 Audio *RecognitionAudio `protobuf:"bytes,2,opt,name=audio,proto3" json:"audio,omitempty"` 559} 560 561func (x *LongRunningRecognizeRequest) Reset() { 562 *x = LongRunningRecognizeRequest{} 563 if protoimpl.UnsafeEnabled { 564 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[1] 565 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 566 ms.StoreMessageInfo(mi) 567 } 568} 569 570func (x *LongRunningRecognizeRequest) String() string { 571 return protoimpl.X.MessageStringOf(x) 572} 573 574func (*LongRunningRecognizeRequest) ProtoMessage() {} 575 576func (x *LongRunningRecognizeRequest) ProtoReflect() protoreflect.Message { 577 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[1] 578 if protoimpl.UnsafeEnabled && x != nil { 579 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 580 if ms.LoadMessageInfo() == nil { 581 ms.StoreMessageInfo(mi) 582 } 583 return ms 584 } 585 return mi.MessageOf(x) 586} 587 588// Deprecated: Use LongRunningRecognizeRequest.ProtoReflect.Descriptor instead. 589func (*LongRunningRecognizeRequest) Descriptor() ([]byte, []int) { 590 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{1} 591} 592 593func (x *LongRunningRecognizeRequest) GetConfig() *RecognitionConfig { 594 if x != nil { 595 return x.Config 596 } 597 return nil 598} 599 600func (x *LongRunningRecognizeRequest) GetAudio() *RecognitionAudio { 601 if x != nil { 602 return x.Audio 603 } 604 return nil 605} 606 607// The top-level message sent by the client for the `StreamingRecognize` method. 608// Multiple `StreamingRecognizeRequest` messages are sent. The first message 609// must contain a `streaming_config` message and must not contain 610// `audio_content`. All subsequent messages must contain `audio_content` and 611// must not contain a `streaming_config` message. 612type StreamingRecognizeRequest struct { 613 state protoimpl.MessageState 614 sizeCache protoimpl.SizeCache 615 unknownFields protoimpl.UnknownFields 616 617 // The streaming request, which is either a streaming config or audio content. 618 // 619 // Types that are assignable to StreamingRequest: 620 // *StreamingRecognizeRequest_StreamingConfig 621 // *StreamingRecognizeRequest_AudioContent 622 StreamingRequest isStreamingRecognizeRequest_StreamingRequest `protobuf_oneof:"streaming_request"` 623} 624 625func (x *StreamingRecognizeRequest) Reset() { 626 *x = StreamingRecognizeRequest{} 627 if protoimpl.UnsafeEnabled { 628 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[2] 629 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 630 ms.StoreMessageInfo(mi) 631 } 632} 633 634func (x *StreamingRecognizeRequest) String() string { 635 return protoimpl.X.MessageStringOf(x) 636} 637 638func (*StreamingRecognizeRequest) ProtoMessage() {} 639 640func (x *StreamingRecognizeRequest) ProtoReflect() protoreflect.Message { 641 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[2] 642 if protoimpl.UnsafeEnabled && x != nil { 643 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 644 if ms.LoadMessageInfo() == nil { 645 ms.StoreMessageInfo(mi) 646 } 647 return ms 648 } 649 return mi.MessageOf(x) 650} 651 652// Deprecated: Use StreamingRecognizeRequest.ProtoReflect.Descriptor instead. 653func (*StreamingRecognizeRequest) Descriptor() ([]byte, []int) { 654 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{2} 655} 656 657func (m *StreamingRecognizeRequest) GetStreamingRequest() isStreamingRecognizeRequest_StreamingRequest { 658 if m != nil { 659 return m.StreamingRequest 660 } 661 return nil 662} 663 664func (x *StreamingRecognizeRequest) GetStreamingConfig() *StreamingRecognitionConfig { 665 if x, ok := x.GetStreamingRequest().(*StreamingRecognizeRequest_StreamingConfig); ok { 666 return x.StreamingConfig 667 } 668 return nil 669} 670 671func (x *StreamingRecognizeRequest) GetAudioContent() []byte { 672 if x, ok := x.GetStreamingRequest().(*StreamingRecognizeRequest_AudioContent); ok { 673 return x.AudioContent 674 } 675 return nil 676} 677 678type isStreamingRecognizeRequest_StreamingRequest interface { 679 isStreamingRecognizeRequest_StreamingRequest() 680} 681 682type StreamingRecognizeRequest_StreamingConfig struct { 683 // Provides information to the recognizer that specifies how to process the 684 // request. The first `StreamingRecognizeRequest` message must contain a 685 // `streaming_config` message. 686 StreamingConfig *StreamingRecognitionConfig `protobuf:"bytes,1,opt,name=streaming_config,json=streamingConfig,proto3,oneof"` 687} 688 689type StreamingRecognizeRequest_AudioContent struct { 690 // The audio data to be recognized. Sequential chunks of audio data are sent 691 // in sequential `StreamingRecognizeRequest` messages. The first 692 // `StreamingRecognizeRequest` message must not contain `audio_content` data 693 // and all subsequent `StreamingRecognizeRequest` messages must contain 694 // `audio_content` data. The audio bytes must be encoded as specified in 695 // `RecognitionConfig`. Note: as with all bytes fields, proto buffers use a 696 // pure binary representation (not base64). See 697 // [content limits](https://cloud.google.com/speech-to-text/quotas#content). 698 AudioContent []byte `protobuf:"bytes,2,opt,name=audio_content,json=audioContent,proto3,oneof"` 699} 700 701func (*StreamingRecognizeRequest_StreamingConfig) isStreamingRecognizeRequest_StreamingRequest() {} 702 703func (*StreamingRecognizeRequest_AudioContent) isStreamingRecognizeRequest_StreamingRequest() {} 704 705// Provides information to the recognizer that specifies how to process the 706// request. 707type StreamingRecognitionConfig struct { 708 state protoimpl.MessageState 709 sizeCache protoimpl.SizeCache 710 unknownFields protoimpl.UnknownFields 711 712 // Required. Provides information to the recognizer that specifies how to 713 // process the request. 714 Config *RecognitionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` 715 // If `false` or omitted, the recognizer will perform continuous 716 // recognition (continuing to wait for and process audio even if the user 717 // pauses speaking) until the client closes the input stream (gRPC API) or 718 // until the maximum time limit has been reached. May return multiple 719 // `StreamingRecognitionResult`s with the `is_final` flag set to `true`. 720 // 721 // If `true`, the recognizer will detect a single spoken utterance. When it 722 // detects that the user has paused or stopped speaking, it will return an 723 // `END_OF_SINGLE_UTTERANCE` event and cease recognition. It will return no 724 // more than one `StreamingRecognitionResult` with the `is_final` flag set to 725 // `true`. 726 SingleUtterance bool `protobuf:"varint,2,opt,name=single_utterance,json=singleUtterance,proto3" json:"single_utterance,omitempty"` 727 // If `true`, interim results (tentative hypotheses) may be 728 // returned as they become available (these interim results are indicated with 729 // the `is_final=false` flag). 730 // If `false` or omitted, only `is_final=true` result(s) are returned. 731 InterimResults bool `protobuf:"varint,3,opt,name=interim_results,json=interimResults,proto3" json:"interim_results,omitempty"` 732} 733 734func (x *StreamingRecognitionConfig) Reset() { 735 *x = StreamingRecognitionConfig{} 736 if protoimpl.UnsafeEnabled { 737 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[3] 738 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 739 ms.StoreMessageInfo(mi) 740 } 741} 742 743func (x *StreamingRecognitionConfig) String() string { 744 return protoimpl.X.MessageStringOf(x) 745} 746 747func (*StreamingRecognitionConfig) ProtoMessage() {} 748 749func (x *StreamingRecognitionConfig) ProtoReflect() protoreflect.Message { 750 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[3] 751 if protoimpl.UnsafeEnabled && x != nil { 752 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 753 if ms.LoadMessageInfo() == nil { 754 ms.StoreMessageInfo(mi) 755 } 756 return ms 757 } 758 return mi.MessageOf(x) 759} 760 761// Deprecated: Use StreamingRecognitionConfig.ProtoReflect.Descriptor instead. 762func (*StreamingRecognitionConfig) Descriptor() ([]byte, []int) { 763 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{3} 764} 765 766func (x *StreamingRecognitionConfig) GetConfig() *RecognitionConfig { 767 if x != nil { 768 return x.Config 769 } 770 return nil 771} 772 773func (x *StreamingRecognitionConfig) GetSingleUtterance() bool { 774 if x != nil { 775 return x.SingleUtterance 776 } 777 return false 778} 779 780func (x *StreamingRecognitionConfig) GetInterimResults() bool { 781 if x != nil { 782 return x.InterimResults 783 } 784 return false 785} 786 787// Provides information to the recognizer that specifies how to process the 788// request. 789type RecognitionConfig struct { 790 state protoimpl.MessageState 791 sizeCache protoimpl.SizeCache 792 unknownFields protoimpl.UnknownFields 793 794 // Encoding of audio data sent in all `RecognitionAudio` messages. 795 // This field is optional for `FLAC` and `WAV` audio files and required 796 // for all other audio formats. For details, see [AudioEncoding][google.cloud.speech.v1.RecognitionConfig.AudioEncoding]. 797 Encoding RecognitionConfig_AudioEncoding `protobuf:"varint,1,opt,name=encoding,proto3,enum=google.cloud.speech.v1.RecognitionConfig_AudioEncoding" json:"encoding,omitempty"` 798 // Sample rate in Hertz of the audio data sent in all 799 // `RecognitionAudio` messages. Valid values are: 8000-48000. 800 // 16000 is optimal. For best results, set the sampling rate of the audio 801 // source to 16000 Hz. If that's not possible, use the native sample rate of 802 // the audio source (instead of re-sampling). 803 // This field is optional for FLAC and WAV audio files, but is 804 // required for all other audio formats. For details, see [AudioEncoding][google.cloud.speech.v1.RecognitionConfig.AudioEncoding]. 805 SampleRateHertz int32 `protobuf:"varint,2,opt,name=sample_rate_hertz,json=sampleRateHertz,proto3" json:"sample_rate_hertz,omitempty"` 806 // The number of channels in the input audio data. 807 // ONLY set this for MULTI-CHANNEL recognition. 808 // Valid values for LINEAR16 and FLAC are `1`-`8`. 809 // Valid values for OGG_OPUS are '1'-'254'. 810 // Valid value for MULAW, AMR, AMR_WB and SPEEX_WITH_HEADER_BYTE is only `1`. 811 // If `0` or omitted, defaults to one channel (mono). 812 // Note: We only recognize the first channel by default. 813 // To perform independent recognition on each channel set 814 // `enable_separate_recognition_per_channel` to 'true'. 815 AudioChannelCount int32 `protobuf:"varint,7,opt,name=audio_channel_count,json=audioChannelCount,proto3" json:"audio_channel_count,omitempty"` 816 // This needs to be set to `true` explicitly and `audio_channel_count` > 1 817 // to get each channel recognized separately. The recognition result will 818 // contain a `channel_tag` field to state which channel that result belongs 819 // to. If this is not true, we will only recognize the first channel. The 820 // request is billed cumulatively for all channels recognized: 821 // `audio_channel_count` multiplied by the length of the audio. 822 EnableSeparateRecognitionPerChannel bool `protobuf:"varint,12,opt,name=enable_separate_recognition_per_channel,json=enableSeparateRecognitionPerChannel,proto3" json:"enable_separate_recognition_per_channel,omitempty"` 823 // Required. The language of the supplied audio as a 824 // [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag. 825 // Example: "en-US". 826 // See [Language 827 // Support](https://cloud.google.com/speech-to-text/docs/languages) for a list 828 // of the currently supported language codes. 829 LanguageCode string `protobuf:"bytes,3,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` 830 // Maximum number of recognition hypotheses to be returned. 831 // Specifically, the maximum number of `SpeechRecognitionAlternative` messages 832 // within each `SpeechRecognitionResult`. 833 // The server may return fewer than `max_alternatives`. 834 // Valid values are `0`-`30`. A value of `0` or `1` will return a maximum of 835 // one. If omitted, will return a maximum of one. 836 MaxAlternatives int32 `protobuf:"varint,4,opt,name=max_alternatives,json=maxAlternatives,proto3" json:"max_alternatives,omitempty"` 837 // If set to `true`, the server will attempt to filter out 838 // profanities, replacing all but the initial character in each filtered word 839 // with asterisks, e.g. "f***". If set to `false` or omitted, profanities 840 // won't be filtered out. 841 ProfanityFilter bool `protobuf:"varint,5,opt,name=profanity_filter,json=profanityFilter,proto3" json:"profanity_filter,omitempty"` 842 // Array of [SpeechContext][google.cloud.speech.v1.SpeechContext]. 843 // A means to provide context to assist the speech recognition. For more 844 // information, see 845 // [speech 846 // adaptation](https://cloud.google.com/speech-to-text/docs/context-strength). 847 SpeechContexts []*SpeechContext `protobuf:"bytes,6,rep,name=speech_contexts,json=speechContexts,proto3" json:"speech_contexts,omitempty"` 848 // If `true`, the top result includes a list of words and 849 // the start and end time offsets (timestamps) for those words. If 850 // `false`, no word-level time offset information is returned. The default is 851 // `false`. 852 EnableWordTimeOffsets bool `protobuf:"varint,8,opt,name=enable_word_time_offsets,json=enableWordTimeOffsets,proto3" json:"enable_word_time_offsets,omitempty"` 853 // If 'true', adds punctuation to recognition result hypotheses. 854 // This feature is only available in select languages. Setting this for 855 // requests in other languages has no effect at all. 856 // The default 'false' value does not add punctuation to result hypotheses. 857 // Note: This is currently offered as an experimental service, complimentary 858 // to all users. In the future this may be exclusively available as a 859 // premium feature. 860 EnableAutomaticPunctuation bool `protobuf:"varint,11,opt,name=enable_automatic_punctuation,json=enableAutomaticPunctuation,proto3" json:"enable_automatic_punctuation,omitempty"` 861 // Config to enable speaker diarization and set additional 862 // parameters to make diarization better suited for your application. 863 // Note: When this is enabled, we send all the words from the beginning of the 864 // audio for the top alternative in every consecutive STREAMING responses. 865 // This is done in order to improve our speaker tags as our models learn to 866 // identify the speakers in the conversation over time. 867 // For non-streaming requests, the diarization results will be provided only 868 // in the top alternative of the FINAL SpeechRecognitionResult. 869 DiarizationConfig *SpeakerDiarizationConfig `protobuf:"bytes,19,opt,name=diarization_config,json=diarizationConfig,proto3" json:"diarization_config,omitempty"` 870 // Metadata regarding this request. 871 Metadata *RecognitionMetadata `protobuf:"bytes,9,opt,name=metadata,proto3" json:"metadata,omitempty"` 872 // Which model to select for the given request. Select the model 873 // best suited to your domain to get best results. If a model is not 874 // explicitly specified, then we auto-select a model based on the parameters 875 // in the RecognitionConfig. 876 // <table> 877 // <tr> 878 // <td><b>Model</b></td> 879 // <td><b>Description</b></td> 880 // </tr> 881 // <tr> 882 // <td><code>command_and_search</code></td> 883 // <td>Best for short queries such as voice commands or voice search.</td> 884 // </tr> 885 // <tr> 886 // <td><code>phone_call</code></td> 887 // <td>Best for audio that originated from a phone call (typically 888 // recorded at an 8khz sampling rate).</td> 889 // </tr> 890 // <tr> 891 // <td><code>video</code></td> 892 // <td>Best for audio that originated from from video or includes multiple 893 // speakers. Ideally the audio is recorded at a 16khz or greater 894 // sampling rate. This is a premium model that costs more than the 895 // standard rate.</td> 896 // </tr> 897 // <tr> 898 // <td><code>default</code></td> 899 // <td>Best for audio that is not one of the specific audio models. 900 // For example, long-form audio. Ideally the audio is high-fidelity, 901 // recorded at a 16khz or greater sampling rate.</td> 902 // </tr> 903 // </table> 904 Model string `protobuf:"bytes,13,opt,name=model,proto3" json:"model,omitempty"` 905 // Set to true to use an enhanced model for speech recognition. 906 // If `use_enhanced` is set to true and the `model` field is not set, then 907 // an appropriate enhanced model is chosen if an enhanced model exists for 908 // the audio. 909 // 910 // If `use_enhanced` is true and an enhanced version of the specified model 911 // does not exist, then the speech is recognized using the standard version 912 // of the specified model. 913 UseEnhanced bool `protobuf:"varint,14,opt,name=use_enhanced,json=useEnhanced,proto3" json:"use_enhanced,omitempty"` 914} 915 916func (x *RecognitionConfig) Reset() { 917 *x = RecognitionConfig{} 918 if protoimpl.UnsafeEnabled { 919 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[4] 920 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 921 ms.StoreMessageInfo(mi) 922 } 923} 924 925func (x *RecognitionConfig) String() string { 926 return protoimpl.X.MessageStringOf(x) 927} 928 929func (*RecognitionConfig) ProtoMessage() {} 930 931func (x *RecognitionConfig) ProtoReflect() protoreflect.Message { 932 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[4] 933 if protoimpl.UnsafeEnabled && x != nil { 934 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 935 if ms.LoadMessageInfo() == nil { 936 ms.StoreMessageInfo(mi) 937 } 938 return ms 939 } 940 return mi.MessageOf(x) 941} 942 943// Deprecated: Use RecognitionConfig.ProtoReflect.Descriptor instead. 944func (*RecognitionConfig) Descriptor() ([]byte, []int) { 945 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{4} 946} 947 948func (x *RecognitionConfig) GetEncoding() RecognitionConfig_AudioEncoding { 949 if x != nil { 950 return x.Encoding 951 } 952 return RecognitionConfig_ENCODING_UNSPECIFIED 953} 954 955func (x *RecognitionConfig) GetSampleRateHertz() int32 { 956 if x != nil { 957 return x.SampleRateHertz 958 } 959 return 0 960} 961 962func (x *RecognitionConfig) GetAudioChannelCount() int32 { 963 if x != nil { 964 return x.AudioChannelCount 965 } 966 return 0 967} 968 969func (x *RecognitionConfig) GetEnableSeparateRecognitionPerChannel() bool { 970 if x != nil { 971 return x.EnableSeparateRecognitionPerChannel 972 } 973 return false 974} 975 976func (x *RecognitionConfig) GetLanguageCode() string { 977 if x != nil { 978 return x.LanguageCode 979 } 980 return "" 981} 982 983func (x *RecognitionConfig) GetMaxAlternatives() int32 { 984 if x != nil { 985 return x.MaxAlternatives 986 } 987 return 0 988} 989 990func (x *RecognitionConfig) GetProfanityFilter() bool { 991 if x != nil { 992 return x.ProfanityFilter 993 } 994 return false 995} 996 997func (x *RecognitionConfig) GetSpeechContexts() []*SpeechContext { 998 if x != nil { 999 return x.SpeechContexts 1000 } 1001 return nil 1002} 1003 1004func (x *RecognitionConfig) GetEnableWordTimeOffsets() bool { 1005 if x != nil { 1006 return x.EnableWordTimeOffsets 1007 } 1008 return false 1009} 1010 1011func (x *RecognitionConfig) GetEnableAutomaticPunctuation() bool { 1012 if x != nil { 1013 return x.EnableAutomaticPunctuation 1014 } 1015 return false 1016} 1017 1018func (x *RecognitionConfig) GetDiarizationConfig() *SpeakerDiarizationConfig { 1019 if x != nil { 1020 return x.DiarizationConfig 1021 } 1022 return nil 1023} 1024 1025func (x *RecognitionConfig) GetMetadata() *RecognitionMetadata { 1026 if x != nil { 1027 return x.Metadata 1028 } 1029 return nil 1030} 1031 1032func (x *RecognitionConfig) GetModel() string { 1033 if x != nil { 1034 return x.Model 1035 } 1036 return "" 1037} 1038 1039func (x *RecognitionConfig) GetUseEnhanced() bool { 1040 if x != nil { 1041 return x.UseEnhanced 1042 } 1043 return false 1044} 1045 1046// Config to enable speaker diarization. 1047type SpeakerDiarizationConfig struct { 1048 state protoimpl.MessageState 1049 sizeCache protoimpl.SizeCache 1050 unknownFields protoimpl.UnknownFields 1051 1052 // If 'true', enables speaker detection for each recognized word in 1053 // the top alternative of the recognition result using a speaker_tag provided 1054 // in the WordInfo. 1055 EnableSpeakerDiarization bool `protobuf:"varint,1,opt,name=enable_speaker_diarization,json=enableSpeakerDiarization,proto3" json:"enable_speaker_diarization,omitempty"` 1056 // Minimum number of speakers in the conversation. This range gives you more 1057 // flexibility by allowing the system to automatically determine the correct 1058 // number of speakers. If not set, the default value is 2. 1059 MinSpeakerCount int32 `protobuf:"varint,2,opt,name=min_speaker_count,json=minSpeakerCount,proto3" json:"min_speaker_count,omitempty"` 1060 // Maximum number of speakers in the conversation. This range gives you more 1061 // flexibility by allowing the system to automatically determine the correct 1062 // number of speakers. If not set, the default value is 6. 1063 MaxSpeakerCount int32 `protobuf:"varint,3,opt,name=max_speaker_count,json=maxSpeakerCount,proto3" json:"max_speaker_count,omitempty"` 1064 // Unused. 1065 // 1066 // Deprecated: Do not use. 1067 SpeakerTag int32 `protobuf:"varint,5,opt,name=speaker_tag,json=speakerTag,proto3" json:"speaker_tag,omitempty"` 1068} 1069 1070func (x *SpeakerDiarizationConfig) Reset() { 1071 *x = SpeakerDiarizationConfig{} 1072 if protoimpl.UnsafeEnabled { 1073 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[5] 1074 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1075 ms.StoreMessageInfo(mi) 1076 } 1077} 1078 1079func (x *SpeakerDiarizationConfig) String() string { 1080 return protoimpl.X.MessageStringOf(x) 1081} 1082 1083func (*SpeakerDiarizationConfig) ProtoMessage() {} 1084 1085func (x *SpeakerDiarizationConfig) ProtoReflect() protoreflect.Message { 1086 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[5] 1087 if protoimpl.UnsafeEnabled && x != nil { 1088 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1089 if ms.LoadMessageInfo() == nil { 1090 ms.StoreMessageInfo(mi) 1091 } 1092 return ms 1093 } 1094 return mi.MessageOf(x) 1095} 1096 1097// Deprecated: Use SpeakerDiarizationConfig.ProtoReflect.Descriptor instead. 1098func (*SpeakerDiarizationConfig) Descriptor() ([]byte, []int) { 1099 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{5} 1100} 1101 1102func (x *SpeakerDiarizationConfig) GetEnableSpeakerDiarization() bool { 1103 if x != nil { 1104 return x.EnableSpeakerDiarization 1105 } 1106 return false 1107} 1108 1109func (x *SpeakerDiarizationConfig) GetMinSpeakerCount() int32 { 1110 if x != nil { 1111 return x.MinSpeakerCount 1112 } 1113 return 0 1114} 1115 1116func (x *SpeakerDiarizationConfig) GetMaxSpeakerCount() int32 { 1117 if x != nil { 1118 return x.MaxSpeakerCount 1119 } 1120 return 0 1121} 1122 1123// Deprecated: Do not use. 1124func (x *SpeakerDiarizationConfig) GetSpeakerTag() int32 { 1125 if x != nil { 1126 return x.SpeakerTag 1127 } 1128 return 0 1129} 1130 1131// Description of audio data to be recognized. 1132type RecognitionMetadata struct { 1133 state protoimpl.MessageState 1134 sizeCache protoimpl.SizeCache 1135 unknownFields protoimpl.UnknownFields 1136 1137 // The use case most closely describing the audio content to be recognized. 1138 InteractionType RecognitionMetadata_InteractionType `protobuf:"varint,1,opt,name=interaction_type,json=interactionType,proto3,enum=google.cloud.speech.v1.RecognitionMetadata_InteractionType" json:"interaction_type,omitempty"` 1139 // The industry vertical to which this speech recognition request most 1140 // closely applies. This is most indicative of the topics contained 1141 // in the audio. Use the 6-digit NAICS code to identify the industry 1142 // vertical - see https://www.naics.com/search/. 1143 IndustryNaicsCodeOfAudio uint32 `protobuf:"varint,3,opt,name=industry_naics_code_of_audio,json=industryNaicsCodeOfAudio,proto3" json:"industry_naics_code_of_audio,omitempty"` 1144 // The audio type that most closely describes the audio being recognized. 1145 MicrophoneDistance RecognitionMetadata_MicrophoneDistance `protobuf:"varint,4,opt,name=microphone_distance,json=microphoneDistance,proto3,enum=google.cloud.speech.v1.RecognitionMetadata_MicrophoneDistance" json:"microphone_distance,omitempty"` 1146 // The original media the speech was recorded on. 1147 OriginalMediaType RecognitionMetadata_OriginalMediaType `protobuf:"varint,5,opt,name=original_media_type,json=originalMediaType,proto3,enum=google.cloud.speech.v1.RecognitionMetadata_OriginalMediaType" json:"original_media_type,omitempty"` 1148 // The type of device the speech was recorded with. 1149 RecordingDeviceType RecognitionMetadata_RecordingDeviceType `protobuf:"varint,6,opt,name=recording_device_type,json=recordingDeviceType,proto3,enum=google.cloud.speech.v1.RecognitionMetadata_RecordingDeviceType" json:"recording_device_type,omitempty"` 1150 // The device used to make the recording. Examples 'Nexus 5X' or 1151 // 'Polycom SoundStation IP 6000' or 'POTS' or 'VoIP' or 1152 // 'Cardioid Microphone'. 1153 RecordingDeviceName string `protobuf:"bytes,7,opt,name=recording_device_name,json=recordingDeviceName,proto3" json:"recording_device_name,omitempty"` 1154 // Mime type of the original audio file. For example `audio/m4a`, 1155 // `audio/x-alaw-basic`, `audio/mp3`, `audio/3gpp`. 1156 // A list of possible audio mime types is maintained at 1157 // http://www.iana.org/assignments/media-types/media-types.xhtml#audio 1158 OriginalMimeType string `protobuf:"bytes,8,opt,name=original_mime_type,json=originalMimeType,proto3" json:"original_mime_type,omitempty"` 1159 // Description of the content. Eg. "Recordings of federal supreme court 1160 // hearings from 2012". 1161 AudioTopic string `protobuf:"bytes,10,opt,name=audio_topic,json=audioTopic,proto3" json:"audio_topic,omitempty"` 1162} 1163 1164func (x *RecognitionMetadata) Reset() { 1165 *x = RecognitionMetadata{} 1166 if protoimpl.UnsafeEnabled { 1167 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[6] 1168 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1169 ms.StoreMessageInfo(mi) 1170 } 1171} 1172 1173func (x *RecognitionMetadata) String() string { 1174 return protoimpl.X.MessageStringOf(x) 1175} 1176 1177func (*RecognitionMetadata) ProtoMessage() {} 1178 1179func (x *RecognitionMetadata) ProtoReflect() protoreflect.Message { 1180 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[6] 1181 if protoimpl.UnsafeEnabled && x != nil { 1182 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1183 if ms.LoadMessageInfo() == nil { 1184 ms.StoreMessageInfo(mi) 1185 } 1186 return ms 1187 } 1188 return mi.MessageOf(x) 1189} 1190 1191// Deprecated: Use RecognitionMetadata.ProtoReflect.Descriptor instead. 1192func (*RecognitionMetadata) Descriptor() ([]byte, []int) { 1193 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{6} 1194} 1195 1196func (x *RecognitionMetadata) GetInteractionType() RecognitionMetadata_InteractionType { 1197 if x != nil { 1198 return x.InteractionType 1199 } 1200 return RecognitionMetadata_INTERACTION_TYPE_UNSPECIFIED 1201} 1202 1203func (x *RecognitionMetadata) GetIndustryNaicsCodeOfAudio() uint32 { 1204 if x != nil { 1205 return x.IndustryNaicsCodeOfAudio 1206 } 1207 return 0 1208} 1209 1210func (x *RecognitionMetadata) GetMicrophoneDistance() RecognitionMetadata_MicrophoneDistance { 1211 if x != nil { 1212 return x.MicrophoneDistance 1213 } 1214 return RecognitionMetadata_MICROPHONE_DISTANCE_UNSPECIFIED 1215} 1216 1217func (x *RecognitionMetadata) GetOriginalMediaType() RecognitionMetadata_OriginalMediaType { 1218 if x != nil { 1219 return x.OriginalMediaType 1220 } 1221 return RecognitionMetadata_ORIGINAL_MEDIA_TYPE_UNSPECIFIED 1222} 1223 1224func (x *RecognitionMetadata) GetRecordingDeviceType() RecognitionMetadata_RecordingDeviceType { 1225 if x != nil { 1226 return x.RecordingDeviceType 1227 } 1228 return RecognitionMetadata_RECORDING_DEVICE_TYPE_UNSPECIFIED 1229} 1230 1231func (x *RecognitionMetadata) GetRecordingDeviceName() string { 1232 if x != nil { 1233 return x.RecordingDeviceName 1234 } 1235 return "" 1236} 1237 1238func (x *RecognitionMetadata) GetOriginalMimeType() string { 1239 if x != nil { 1240 return x.OriginalMimeType 1241 } 1242 return "" 1243} 1244 1245func (x *RecognitionMetadata) GetAudioTopic() string { 1246 if x != nil { 1247 return x.AudioTopic 1248 } 1249 return "" 1250} 1251 1252// Provides "hints" to the speech recognizer to favor specific words and phrases 1253// in the results. 1254type SpeechContext struct { 1255 state protoimpl.MessageState 1256 sizeCache protoimpl.SizeCache 1257 unknownFields protoimpl.UnknownFields 1258 1259 // A list of strings containing words and phrases "hints" so that 1260 // the speech recognition is more likely to recognize them. This can be used 1261 // to improve the accuracy for specific words and phrases, for example, if 1262 // specific commands are typically spoken by the user. This can also be used 1263 // to add additional words to the vocabulary of the recognizer. See 1264 // [usage limits](https://cloud.google.com/speech-to-text/quotas#content). 1265 // 1266 // List items can also be set to classes for groups of words that represent 1267 // common concepts that occur in natural language. For example, rather than 1268 // providing phrase hints for every month of the year, using the $MONTH class 1269 // improves the likelihood of correctly transcribing audio that includes 1270 // months. 1271 Phrases []string `protobuf:"bytes,1,rep,name=phrases,proto3" json:"phrases,omitempty"` 1272} 1273 1274func (x *SpeechContext) Reset() { 1275 *x = SpeechContext{} 1276 if protoimpl.UnsafeEnabled { 1277 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[7] 1278 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1279 ms.StoreMessageInfo(mi) 1280 } 1281} 1282 1283func (x *SpeechContext) String() string { 1284 return protoimpl.X.MessageStringOf(x) 1285} 1286 1287func (*SpeechContext) ProtoMessage() {} 1288 1289func (x *SpeechContext) ProtoReflect() protoreflect.Message { 1290 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[7] 1291 if protoimpl.UnsafeEnabled && x != nil { 1292 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1293 if ms.LoadMessageInfo() == nil { 1294 ms.StoreMessageInfo(mi) 1295 } 1296 return ms 1297 } 1298 return mi.MessageOf(x) 1299} 1300 1301// Deprecated: Use SpeechContext.ProtoReflect.Descriptor instead. 1302func (*SpeechContext) Descriptor() ([]byte, []int) { 1303 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{7} 1304} 1305 1306func (x *SpeechContext) GetPhrases() []string { 1307 if x != nil { 1308 return x.Phrases 1309 } 1310 return nil 1311} 1312 1313// Contains audio data in the encoding specified in the `RecognitionConfig`. 1314// Either `content` or `uri` must be supplied. Supplying both or neither 1315// returns [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]. See 1316// [content limits](https://cloud.google.com/speech-to-text/quotas#content). 1317type RecognitionAudio struct { 1318 state protoimpl.MessageState 1319 sizeCache protoimpl.SizeCache 1320 unknownFields protoimpl.UnknownFields 1321 1322 // The audio source, which is either inline content or a Google Cloud 1323 // Storage uri. 1324 // 1325 // Types that are assignable to AudioSource: 1326 // *RecognitionAudio_Content 1327 // *RecognitionAudio_Uri 1328 AudioSource isRecognitionAudio_AudioSource `protobuf_oneof:"audio_source"` 1329} 1330 1331func (x *RecognitionAudio) Reset() { 1332 *x = RecognitionAudio{} 1333 if protoimpl.UnsafeEnabled { 1334 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[8] 1335 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1336 ms.StoreMessageInfo(mi) 1337 } 1338} 1339 1340func (x *RecognitionAudio) String() string { 1341 return protoimpl.X.MessageStringOf(x) 1342} 1343 1344func (*RecognitionAudio) ProtoMessage() {} 1345 1346func (x *RecognitionAudio) ProtoReflect() protoreflect.Message { 1347 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[8] 1348 if protoimpl.UnsafeEnabled && x != nil { 1349 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1350 if ms.LoadMessageInfo() == nil { 1351 ms.StoreMessageInfo(mi) 1352 } 1353 return ms 1354 } 1355 return mi.MessageOf(x) 1356} 1357 1358// Deprecated: Use RecognitionAudio.ProtoReflect.Descriptor instead. 1359func (*RecognitionAudio) Descriptor() ([]byte, []int) { 1360 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{8} 1361} 1362 1363func (m *RecognitionAudio) GetAudioSource() isRecognitionAudio_AudioSource { 1364 if m != nil { 1365 return m.AudioSource 1366 } 1367 return nil 1368} 1369 1370func (x *RecognitionAudio) GetContent() []byte { 1371 if x, ok := x.GetAudioSource().(*RecognitionAudio_Content); ok { 1372 return x.Content 1373 } 1374 return nil 1375} 1376 1377func (x *RecognitionAudio) GetUri() string { 1378 if x, ok := x.GetAudioSource().(*RecognitionAudio_Uri); ok { 1379 return x.Uri 1380 } 1381 return "" 1382} 1383 1384type isRecognitionAudio_AudioSource interface { 1385 isRecognitionAudio_AudioSource() 1386} 1387 1388type RecognitionAudio_Content struct { 1389 // The audio data bytes encoded as specified in 1390 // `RecognitionConfig`. Note: as with all bytes fields, proto buffers use a 1391 // pure binary representation, whereas JSON representations use base64. 1392 Content []byte `protobuf:"bytes,1,opt,name=content,proto3,oneof"` 1393} 1394 1395type RecognitionAudio_Uri struct { 1396 // URI that points to a file that contains audio data bytes as specified in 1397 // `RecognitionConfig`. The file must not be compressed (for example, gzip). 1398 // Currently, only Google Cloud Storage URIs are 1399 // supported, which must be specified in the following format: 1400 // `gs://bucket_name/object_name` (other URI formats return 1401 // [google.rpc.Code.INVALID_ARGUMENT][google.rpc.Code.INVALID_ARGUMENT]). For more information, see 1402 // [Request URIs](https://cloud.google.com/storage/docs/reference-uris). 1403 Uri string `protobuf:"bytes,2,opt,name=uri,proto3,oneof"` 1404} 1405 1406func (*RecognitionAudio_Content) isRecognitionAudio_AudioSource() {} 1407 1408func (*RecognitionAudio_Uri) isRecognitionAudio_AudioSource() {} 1409 1410// The only message returned to the client by the `Recognize` method. It 1411// contains the result as zero or more sequential `SpeechRecognitionResult` 1412// messages. 1413type RecognizeResponse struct { 1414 state protoimpl.MessageState 1415 sizeCache protoimpl.SizeCache 1416 unknownFields protoimpl.UnknownFields 1417 1418 // Sequential list of transcription results corresponding to 1419 // sequential portions of audio. 1420 Results []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` 1421} 1422 1423func (x *RecognizeResponse) Reset() { 1424 *x = RecognizeResponse{} 1425 if protoimpl.UnsafeEnabled { 1426 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[9] 1427 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1428 ms.StoreMessageInfo(mi) 1429 } 1430} 1431 1432func (x *RecognizeResponse) String() string { 1433 return protoimpl.X.MessageStringOf(x) 1434} 1435 1436func (*RecognizeResponse) ProtoMessage() {} 1437 1438func (x *RecognizeResponse) ProtoReflect() protoreflect.Message { 1439 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[9] 1440 if protoimpl.UnsafeEnabled && x != nil { 1441 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1442 if ms.LoadMessageInfo() == nil { 1443 ms.StoreMessageInfo(mi) 1444 } 1445 return ms 1446 } 1447 return mi.MessageOf(x) 1448} 1449 1450// Deprecated: Use RecognizeResponse.ProtoReflect.Descriptor instead. 1451func (*RecognizeResponse) Descriptor() ([]byte, []int) { 1452 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{9} 1453} 1454 1455func (x *RecognizeResponse) GetResults() []*SpeechRecognitionResult { 1456 if x != nil { 1457 return x.Results 1458 } 1459 return nil 1460} 1461 1462// The only message returned to the client by the `LongRunningRecognize` method. 1463// It contains the result as zero or more sequential `SpeechRecognitionResult` 1464// messages. It is included in the `result.response` field of the `Operation` 1465// returned by the `GetOperation` call of the `google::longrunning::Operations` 1466// service. 1467type LongRunningRecognizeResponse struct { 1468 state protoimpl.MessageState 1469 sizeCache protoimpl.SizeCache 1470 unknownFields protoimpl.UnknownFields 1471 1472 // Sequential list of transcription results corresponding to 1473 // sequential portions of audio. 1474 Results []*SpeechRecognitionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` 1475} 1476 1477func (x *LongRunningRecognizeResponse) Reset() { 1478 *x = LongRunningRecognizeResponse{} 1479 if protoimpl.UnsafeEnabled { 1480 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[10] 1481 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1482 ms.StoreMessageInfo(mi) 1483 } 1484} 1485 1486func (x *LongRunningRecognizeResponse) String() string { 1487 return protoimpl.X.MessageStringOf(x) 1488} 1489 1490func (*LongRunningRecognizeResponse) ProtoMessage() {} 1491 1492func (x *LongRunningRecognizeResponse) ProtoReflect() protoreflect.Message { 1493 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[10] 1494 if protoimpl.UnsafeEnabled && x != nil { 1495 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1496 if ms.LoadMessageInfo() == nil { 1497 ms.StoreMessageInfo(mi) 1498 } 1499 return ms 1500 } 1501 return mi.MessageOf(x) 1502} 1503 1504// Deprecated: Use LongRunningRecognizeResponse.ProtoReflect.Descriptor instead. 1505func (*LongRunningRecognizeResponse) Descriptor() ([]byte, []int) { 1506 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{10} 1507} 1508 1509func (x *LongRunningRecognizeResponse) GetResults() []*SpeechRecognitionResult { 1510 if x != nil { 1511 return x.Results 1512 } 1513 return nil 1514} 1515 1516// Describes the progress of a long-running `LongRunningRecognize` call. It is 1517// included in the `metadata` field of the `Operation` returned by the 1518// `GetOperation` call of the `google::longrunning::Operations` service. 1519type LongRunningRecognizeMetadata struct { 1520 state protoimpl.MessageState 1521 sizeCache protoimpl.SizeCache 1522 unknownFields protoimpl.UnknownFields 1523 1524 // Approximate percentage of audio processed thus far. Guaranteed to be 100 1525 // when the audio is fully processed and the results are available. 1526 ProgressPercent int32 `protobuf:"varint,1,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"` 1527 // Time when the request was received. 1528 StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 1529 // Time of the most recent processing update. 1530 LastUpdateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"` 1531} 1532 1533func (x *LongRunningRecognizeMetadata) Reset() { 1534 *x = LongRunningRecognizeMetadata{} 1535 if protoimpl.UnsafeEnabled { 1536 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[11] 1537 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1538 ms.StoreMessageInfo(mi) 1539 } 1540} 1541 1542func (x *LongRunningRecognizeMetadata) String() string { 1543 return protoimpl.X.MessageStringOf(x) 1544} 1545 1546func (*LongRunningRecognizeMetadata) ProtoMessage() {} 1547 1548func (x *LongRunningRecognizeMetadata) ProtoReflect() protoreflect.Message { 1549 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[11] 1550 if protoimpl.UnsafeEnabled && x != nil { 1551 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1552 if ms.LoadMessageInfo() == nil { 1553 ms.StoreMessageInfo(mi) 1554 } 1555 return ms 1556 } 1557 return mi.MessageOf(x) 1558} 1559 1560// Deprecated: Use LongRunningRecognizeMetadata.ProtoReflect.Descriptor instead. 1561func (*LongRunningRecognizeMetadata) Descriptor() ([]byte, []int) { 1562 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{11} 1563} 1564 1565func (x *LongRunningRecognizeMetadata) GetProgressPercent() int32 { 1566 if x != nil { 1567 return x.ProgressPercent 1568 } 1569 return 0 1570} 1571 1572func (x *LongRunningRecognizeMetadata) GetStartTime() *timestamp.Timestamp { 1573 if x != nil { 1574 return x.StartTime 1575 } 1576 return nil 1577} 1578 1579func (x *LongRunningRecognizeMetadata) GetLastUpdateTime() *timestamp.Timestamp { 1580 if x != nil { 1581 return x.LastUpdateTime 1582 } 1583 return nil 1584} 1585 1586// `StreamingRecognizeResponse` is the only message returned to the client by 1587// `StreamingRecognize`. A series of zero or more `StreamingRecognizeResponse` 1588// messages are streamed back to the client. If there is no recognizable 1589// audio, and `single_utterance` is set to false, then no messages are streamed 1590// back to the client. 1591// 1592// Here's an example of a series of ten `StreamingRecognizeResponse`s that might 1593// be returned while processing audio: 1594// 1595// 1. results { alternatives { transcript: "tube" } stability: 0.01 } 1596// 1597// 2. results { alternatives { transcript: "to be a" } stability: 0.01 } 1598// 1599// 3. results { alternatives { transcript: "to be" } stability: 0.9 } 1600// results { alternatives { transcript: " or not to be" } stability: 0.01 } 1601// 1602// 4. results { alternatives { transcript: "to be or not to be" 1603// confidence: 0.92 } 1604// alternatives { transcript: "to bee or not to bee" } 1605// is_final: true } 1606// 1607// 5. results { alternatives { transcript: " that's" } stability: 0.01 } 1608// 1609// 6. results { alternatives { transcript: " that is" } stability: 0.9 } 1610// results { alternatives { transcript: " the question" } stability: 0.01 } 1611// 1612// 7. results { alternatives { transcript: " that is the question" 1613// confidence: 0.98 } 1614// alternatives { transcript: " that was the question" } 1615// is_final: true } 1616// 1617// Notes: 1618// 1619// - Only two of the above responses #4 and #7 contain final results; they are 1620// indicated by `is_final: true`. Concatenating these together generates the 1621// full transcript: "to be or not to be that is the question". 1622// 1623// - The others contain interim `results`. #3 and #6 contain two interim 1624// `results`: the first portion has a high stability and is less likely to 1625// change; the second portion has a low stability and is very likely to 1626// change. A UI designer might choose to show only high stability `results`. 1627// 1628// - The specific `stability` and `confidence` values shown above are only for 1629// illustrative purposes. Actual values may vary. 1630// 1631// - In each response, only one of these fields will be set: 1632// `error`, 1633// `speech_event_type`, or 1634// one or more (repeated) `results`. 1635type StreamingRecognizeResponse struct { 1636 state protoimpl.MessageState 1637 sizeCache protoimpl.SizeCache 1638 unknownFields protoimpl.UnknownFields 1639 1640 // If set, returns a [google.rpc.Status][google.rpc.Status] message that 1641 // specifies the error for the operation. 1642 Error *status.Status `protobuf:"bytes,1,opt,name=error,proto3" json:"error,omitempty"` 1643 // This repeated list contains zero or more results that 1644 // correspond to consecutive portions of the audio currently being processed. 1645 // It contains zero or one `is_final=true` result (the newly settled portion), 1646 // followed by zero or more `is_final=false` results (the interim results). 1647 Results []*StreamingRecognitionResult `protobuf:"bytes,2,rep,name=results,proto3" json:"results,omitempty"` 1648 // Indicates the type of speech event. 1649 SpeechEventType StreamingRecognizeResponse_SpeechEventType `protobuf:"varint,4,opt,name=speech_event_type,json=speechEventType,proto3,enum=google.cloud.speech.v1.StreamingRecognizeResponse_SpeechEventType" json:"speech_event_type,omitempty"` 1650} 1651 1652func (x *StreamingRecognizeResponse) Reset() { 1653 *x = StreamingRecognizeResponse{} 1654 if protoimpl.UnsafeEnabled { 1655 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[12] 1656 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1657 ms.StoreMessageInfo(mi) 1658 } 1659} 1660 1661func (x *StreamingRecognizeResponse) String() string { 1662 return protoimpl.X.MessageStringOf(x) 1663} 1664 1665func (*StreamingRecognizeResponse) ProtoMessage() {} 1666 1667func (x *StreamingRecognizeResponse) ProtoReflect() protoreflect.Message { 1668 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[12] 1669 if protoimpl.UnsafeEnabled && x != nil { 1670 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1671 if ms.LoadMessageInfo() == nil { 1672 ms.StoreMessageInfo(mi) 1673 } 1674 return ms 1675 } 1676 return mi.MessageOf(x) 1677} 1678 1679// Deprecated: Use StreamingRecognizeResponse.ProtoReflect.Descriptor instead. 1680func (*StreamingRecognizeResponse) Descriptor() ([]byte, []int) { 1681 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{12} 1682} 1683 1684func (x *StreamingRecognizeResponse) GetError() *status.Status { 1685 if x != nil { 1686 return x.Error 1687 } 1688 return nil 1689} 1690 1691func (x *StreamingRecognizeResponse) GetResults() []*StreamingRecognitionResult { 1692 if x != nil { 1693 return x.Results 1694 } 1695 return nil 1696} 1697 1698func (x *StreamingRecognizeResponse) GetSpeechEventType() StreamingRecognizeResponse_SpeechEventType { 1699 if x != nil { 1700 return x.SpeechEventType 1701 } 1702 return StreamingRecognizeResponse_SPEECH_EVENT_UNSPECIFIED 1703} 1704 1705// A streaming speech recognition result corresponding to a portion of the audio 1706// that is currently being processed. 1707type StreamingRecognitionResult struct { 1708 state protoimpl.MessageState 1709 sizeCache protoimpl.SizeCache 1710 unknownFields protoimpl.UnknownFields 1711 1712 // May contain one or more recognition hypotheses (up to the 1713 // maximum specified in `max_alternatives`). 1714 // These alternatives are ordered in terms of accuracy, with the top (first) 1715 // alternative being the most probable, as ranked by the recognizer. 1716 Alternatives []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives,proto3" json:"alternatives,omitempty"` 1717 // If `false`, this `StreamingRecognitionResult` represents an 1718 // interim result that may change. If `true`, this is the final time the 1719 // speech service will return this particular `StreamingRecognitionResult`, 1720 // the recognizer will not return any further hypotheses for this portion of 1721 // the transcript and corresponding audio. 1722 IsFinal bool `protobuf:"varint,2,opt,name=is_final,json=isFinal,proto3" json:"is_final,omitempty"` 1723 // An estimate of the likelihood that the recognizer will not 1724 // change its guess about this interim result. Values range from 0.0 1725 // (completely unstable) to 1.0 (completely stable). 1726 // This field is only provided for interim results (`is_final=false`). 1727 // The default of 0.0 is a sentinel value indicating `stability` was not set. 1728 Stability float32 `protobuf:"fixed32,3,opt,name=stability,proto3" json:"stability,omitempty"` 1729 // Time offset of the end of this result relative to the 1730 // beginning of the audio. 1731 ResultEndTime *duration.Duration `protobuf:"bytes,4,opt,name=result_end_time,json=resultEndTime,proto3" json:"result_end_time,omitempty"` 1732 // For multi-channel audio, this is the channel number corresponding to the 1733 // recognized result for the audio from that channel. 1734 // For audio_channel_count = N, its output values can range from '1' to 'N'. 1735 ChannelTag int32 `protobuf:"varint,5,opt,name=channel_tag,json=channelTag,proto3" json:"channel_tag,omitempty"` 1736 // The [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag of 1737 // the language in this result. This language code was detected to have the 1738 // most likelihood of being spoken in the audio. 1739 LanguageCode string `protobuf:"bytes,6,opt,name=language_code,json=languageCode,proto3" json:"language_code,omitempty"` 1740} 1741 1742func (x *StreamingRecognitionResult) Reset() { 1743 *x = StreamingRecognitionResult{} 1744 if protoimpl.UnsafeEnabled { 1745 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[13] 1746 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1747 ms.StoreMessageInfo(mi) 1748 } 1749} 1750 1751func (x *StreamingRecognitionResult) String() string { 1752 return protoimpl.X.MessageStringOf(x) 1753} 1754 1755func (*StreamingRecognitionResult) ProtoMessage() {} 1756 1757func (x *StreamingRecognitionResult) ProtoReflect() protoreflect.Message { 1758 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[13] 1759 if protoimpl.UnsafeEnabled && x != nil { 1760 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1761 if ms.LoadMessageInfo() == nil { 1762 ms.StoreMessageInfo(mi) 1763 } 1764 return ms 1765 } 1766 return mi.MessageOf(x) 1767} 1768 1769// Deprecated: Use StreamingRecognitionResult.ProtoReflect.Descriptor instead. 1770func (*StreamingRecognitionResult) Descriptor() ([]byte, []int) { 1771 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{13} 1772} 1773 1774func (x *StreamingRecognitionResult) GetAlternatives() []*SpeechRecognitionAlternative { 1775 if x != nil { 1776 return x.Alternatives 1777 } 1778 return nil 1779} 1780 1781func (x *StreamingRecognitionResult) GetIsFinal() bool { 1782 if x != nil { 1783 return x.IsFinal 1784 } 1785 return false 1786} 1787 1788func (x *StreamingRecognitionResult) GetStability() float32 { 1789 if x != nil { 1790 return x.Stability 1791 } 1792 return 0 1793} 1794 1795func (x *StreamingRecognitionResult) GetResultEndTime() *duration.Duration { 1796 if x != nil { 1797 return x.ResultEndTime 1798 } 1799 return nil 1800} 1801 1802func (x *StreamingRecognitionResult) GetChannelTag() int32 { 1803 if x != nil { 1804 return x.ChannelTag 1805 } 1806 return 0 1807} 1808 1809func (x *StreamingRecognitionResult) GetLanguageCode() string { 1810 if x != nil { 1811 return x.LanguageCode 1812 } 1813 return "" 1814} 1815 1816// A speech recognition result corresponding to a portion of the audio. 1817type SpeechRecognitionResult struct { 1818 state protoimpl.MessageState 1819 sizeCache protoimpl.SizeCache 1820 unknownFields protoimpl.UnknownFields 1821 1822 // May contain one or more recognition hypotheses (up to the 1823 // maximum specified in `max_alternatives`). 1824 // These alternatives are ordered in terms of accuracy, with the top (first) 1825 // alternative being the most probable, as ranked by the recognizer. 1826 Alternatives []*SpeechRecognitionAlternative `protobuf:"bytes,1,rep,name=alternatives,proto3" json:"alternatives,omitempty"` 1827 // For multi-channel audio, this is the channel number corresponding to the 1828 // recognized result for the audio from that channel. 1829 // For audio_channel_count = N, its output values can range from '1' to 'N'. 1830 ChannelTag int32 `protobuf:"varint,2,opt,name=channel_tag,json=channelTag,proto3" json:"channel_tag,omitempty"` 1831} 1832 1833func (x *SpeechRecognitionResult) Reset() { 1834 *x = SpeechRecognitionResult{} 1835 if protoimpl.UnsafeEnabled { 1836 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[14] 1837 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1838 ms.StoreMessageInfo(mi) 1839 } 1840} 1841 1842func (x *SpeechRecognitionResult) String() string { 1843 return protoimpl.X.MessageStringOf(x) 1844} 1845 1846func (*SpeechRecognitionResult) ProtoMessage() {} 1847 1848func (x *SpeechRecognitionResult) ProtoReflect() protoreflect.Message { 1849 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[14] 1850 if protoimpl.UnsafeEnabled && x != nil { 1851 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1852 if ms.LoadMessageInfo() == nil { 1853 ms.StoreMessageInfo(mi) 1854 } 1855 return ms 1856 } 1857 return mi.MessageOf(x) 1858} 1859 1860// Deprecated: Use SpeechRecognitionResult.ProtoReflect.Descriptor instead. 1861func (*SpeechRecognitionResult) Descriptor() ([]byte, []int) { 1862 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{14} 1863} 1864 1865func (x *SpeechRecognitionResult) GetAlternatives() []*SpeechRecognitionAlternative { 1866 if x != nil { 1867 return x.Alternatives 1868 } 1869 return nil 1870} 1871 1872func (x *SpeechRecognitionResult) GetChannelTag() int32 { 1873 if x != nil { 1874 return x.ChannelTag 1875 } 1876 return 0 1877} 1878 1879// Alternative hypotheses (a.k.a. n-best list). 1880type SpeechRecognitionAlternative struct { 1881 state protoimpl.MessageState 1882 sizeCache protoimpl.SizeCache 1883 unknownFields protoimpl.UnknownFields 1884 1885 // Transcript text representing the words that the user spoke. 1886 Transcript string `protobuf:"bytes,1,opt,name=transcript,proto3" json:"transcript,omitempty"` 1887 // The confidence estimate between 0.0 and 1.0. A higher number 1888 // indicates an estimated greater likelihood that the recognized words are 1889 // correct. This field is set only for the top alternative of a non-streaming 1890 // result or, of a streaming result where `is_final=true`. 1891 // This field is not guaranteed to be accurate and users should not rely on it 1892 // to be always provided. 1893 // The default of 0.0 is a sentinel value indicating `confidence` was not set. 1894 Confidence float32 `protobuf:"fixed32,2,opt,name=confidence,proto3" json:"confidence,omitempty"` 1895 // A list of word-specific information for each recognized word. 1896 // Note: When `enable_speaker_diarization` is true, you will see all the words 1897 // from the beginning of the audio. 1898 Words []*WordInfo `protobuf:"bytes,3,rep,name=words,proto3" json:"words,omitempty"` 1899} 1900 1901func (x *SpeechRecognitionAlternative) Reset() { 1902 *x = SpeechRecognitionAlternative{} 1903 if protoimpl.UnsafeEnabled { 1904 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[15] 1905 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1906 ms.StoreMessageInfo(mi) 1907 } 1908} 1909 1910func (x *SpeechRecognitionAlternative) String() string { 1911 return protoimpl.X.MessageStringOf(x) 1912} 1913 1914func (*SpeechRecognitionAlternative) ProtoMessage() {} 1915 1916func (x *SpeechRecognitionAlternative) ProtoReflect() protoreflect.Message { 1917 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[15] 1918 if protoimpl.UnsafeEnabled && x != nil { 1919 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1920 if ms.LoadMessageInfo() == nil { 1921 ms.StoreMessageInfo(mi) 1922 } 1923 return ms 1924 } 1925 return mi.MessageOf(x) 1926} 1927 1928// Deprecated: Use SpeechRecognitionAlternative.ProtoReflect.Descriptor instead. 1929func (*SpeechRecognitionAlternative) Descriptor() ([]byte, []int) { 1930 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{15} 1931} 1932 1933func (x *SpeechRecognitionAlternative) GetTranscript() string { 1934 if x != nil { 1935 return x.Transcript 1936 } 1937 return "" 1938} 1939 1940func (x *SpeechRecognitionAlternative) GetConfidence() float32 { 1941 if x != nil { 1942 return x.Confidence 1943 } 1944 return 0 1945} 1946 1947func (x *SpeechRecognitionAlternative) GetWords() []*WordInfo { 1948 if x != nil { 1949 return x.Words 1950 } 1951 return nil 1952} 1953 1954// Word-specific information for recognized words. 1955type WordInfo struct { 1956 state protoimpl.MessageState 1957 sizeCache protoimpl.SizeCache 1958 unknownFields protoimpl.UnknownFields 1959 1960 // Time offset relative to the beginning of the audio, 1961 // and corresponding to the start of the spoken word. 1962 // This field is only set if `enable_word_time_offsets=true` and only 1963 // in the top hypothesis. 1964 // This is an experimental feature and the accuracy of the time offset can 1965 // vary. 1966 StartTime *duration.Duration `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 1967 // Time offset relative to the beginning of the audio, 1968 // and corresponding to the end of the spoken word. 1969 // This field is only set if `enable_word_time_offsets=true` and only 1970 // in the top hypothesis. 1971 // This is an experimental feature and the accuracy of the time offset can 1972 // vary. 1973 EndTime *duration.Duration `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 1974 // The word corresponding to this set of information. 1975 Word string `protobuf:"bytes,3,opt,name=word,proto3" json:"word,omitempty"` 1976 // A distinct integer value is assigned for every speaker within 1977 // the audio. This field specifies which one of those speakers was detected to 1978 // have spoken this word. Value ranges from '1' to diarization_speaker_count. 1979 // speaker_tag is set if enable_speaker_diarization = 'true' and only in the 1980 // top alternative. 1981 SpeakerTag int32 `protobuf:"varint,5,opt,name=speaker_tag,json=speakerTag,proto3" json:"speaker_tag,omitempty"` 1982} 1983 1984func (x *WordInfo) Reset() { 1985 *x = WordInfo{} 1986 if protoimpl.UnsafeEnabled { 1987 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[16] 1988 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1989 ms.StoreMessageInfo(mi) 1990 } 1991} 1992 1993func (x *WordInfo) String() string { 1994 return protoimpl.X.MessageStringOf(x) 1995} 1996 1997func (*WordInfo) ProtoMessage() {} 1998 1999func (x *WordInfo) ProtoReflect() protoreflect.Message { 2000 mi := &file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[16] 2001 if protoimpl.UnsafeEnabled && x != nil { 2002 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 2003 if ms.LoadMessageInfo() == nil { 2004 ms.StoreMessageInfo(mi) 2005 } 2006 return ms 2007 } 2008 return mi.MessageOf(x) 2009} 2010 2011// Deprecated: Use WordInfo.ProtoReflect.Descriptor instead. 2012func (*WordInfo) Descriptor() ([]byte, []int) { 2013 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP(), []int{16} 2014} 2015 2016func (x *WordInfo) GetStartTime() *duration.Duration { 2017 if x != nil { 2018 return x.StartTime 2019 } 2020 return nil 2021} 2022 2023func (x *WordInfo) GetEndTime() *duration.Duration { 2024 if x != nil { 2025 return x.EndTime 2026 } 2027 return nil 2028} 2029 2030func (x *WordInfo) GetWord() string { 2031 if x != nil { 2032 return x.Word 2033 } 2034 return "" 2035} 2036 2037func (x *WordInfo) GetSpeakerTag() int32 { 2038 if x != nil { 2039 return x.SpeakerTag 2040 } 2041 return 0 2042} 2043 2044var File_google_cloud_speech_v1_cloud_speech_proto protoreflect.FileDescriptor 2045 2046var file_google_cloud_speech_v1_cloud_speech_proto_rawDesc = []byte{ 2047 0x0a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 2048 0x70, 0x65, 0x65, 0x63, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x73, 2049 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x67, 0x6f, 0x6f, 2050 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 2051 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 2052 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2053 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 2054 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 2055 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 2056 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 2057 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 2058 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2059 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 2060 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 2061 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 2062 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 2063 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 2064 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 2065 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 2066 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9f, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 2067 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x6f, 2068 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 2069 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 2070 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 2071 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 2072 0x69, 0x67, 0x12, 0x43, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 2073 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2074 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x67, 2075 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x02, 2076 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x22, 0xaa, 0x01, 0x0a, 0x1b, 0x4c, 0x6f, 0x6e, 0x67, 2077 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 2078 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 2079 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2080 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 2081 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 2082 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 2083 0x43, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 2084 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 2085 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 2086 0x69, 0x6f, 0x6e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x61, 2087 0x75, 0x64, 0x69, 0x6f, 0x22, 0xb8, 0x01, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 2088 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 2089 0x73, 0x74, 0x12, 0x5f, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 2090 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 2091 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 2092 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 2093 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 2094 0x48, 0x00, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 2095 0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0d, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, 2096 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 2097 0x64, 0x69, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x73, 0x74, 2098 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 2099 0xb8, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 2100 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 2101 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 2102 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 2103 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 2104 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 2105 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 2106 0x5f, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 2107 0x52, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x55, 0x74, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x63, 2108 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x69, 0x6d, 0x5f, 0x72, 0x65, 0x73, 2109 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 2110 0x72, 0x69, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xd6, 0x07, 0x0a, 0x11, 0x52, 2111 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 2112 0x12, 0x53, 0x0a, 0x08, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 2113 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 2114 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 2115 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x75, 2116 0x64, 0x69, 0x6f, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x65, 0x6e, 0x63, 2117 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 2118 0x72, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x65, 0x72, 0x74, 0x7a, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 2119 0x52, 0x0f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x61, 0x74, 0x65, 0x48, 0x65, 0x72, 0x74, 2120 0x7a, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 2121 0x65, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 2122 0x61, 0x75, 0x64, 0x69, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 2123 0x74, 0x12, 0x54, 0x0a, 0x27, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x70, 0x61, 2124 0x72, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 2125 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0c, 0x20, 0x01, 2126 0x28, 0x08, 0x52, 0x23, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 2127 0x74, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 2128 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 2129 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 2130 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 2131 0x65, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 2132 0x74, 0x69, 0x76, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 2133 0x41, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x73, 0x12, 0x29, 0x0a, 0x10, 2134 0x70, 0x72, 0x6f, 0x66, 0x61, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 2135 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x66, 0x61, 0x6e, 0x69, 0x74, 2136 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0f, 0x73, 0x70, 0x65, 0x65, 0x63, 2137 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 2138 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2139 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 2140 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x43, 2141 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 2142 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 2143 0x65, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 2144 0x65, 0x57, 0x6f, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x73, 2145 0x12, 0x40, 0x0a, 0x1c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 2146 0x61, 0x74, 0x69, 0x63, 0x5f, 0x70, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2147 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x75, 2148 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x50, 0x75, 0x6e, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 2149 0x6f, 0x6e, 0x12, 0x5f, 0x0a, 0x12, 0x64, 0x69, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 2150 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 2151 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 2152 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x44, 2153 0x69, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 2154 0x52, 0x11, 0x64, 0x69, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 2155 0x66, 0x69, 0x67, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 2156 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2157 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 2158 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 2159 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 2160 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 2161 0x65, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6e, 0x68, 0x61, 0x6e, 0x63, 2162 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x45, 0x6e, 0x68, 2163 0x61, 0x6e, 0x63, 0x65, 0x64, 0x22, 0x8b, 0x01, 0x0a, 0x0d, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x45, 2164 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x4e, 0x43, 0x4f, 0x44, 2165 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 2166 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x49, 0x4e, 0x45, 0x41, 0x52, 0x31, 0x36, 0x10, 0x01, 0x12, 2167 0x08, 0x0a, 0x04, 0x46, 0x4c, 0x41, 0x43, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x55, 0x4c, 2168 0x41, 0x57, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4d, 0x52, 0x10, 0x04, 0x12, 0x0a, 0x0a, 2169 0x06, 0x41, 0x4d, 0x52, 0x5f, 0x57, 0x42, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x47, 0x47, 2170 0x5f, 0x4f, 0x50, 0x55, 0x53, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x50, 0x45, 0x45, 0x58, 2171 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x42, 0x59, 0x54, 2172 0x45, 0x10, 0x07, 0x22, 0xd8, 0x01, 0x0a, 0x18, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x44, 2173 0x69, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 2174 0x12, 0x3c, 0x0a, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x61, 0x6b, 2175 0x65, 0x72, 0x5f, 0x64, 0x69, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 2176 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x61, 2177 0x6b, 0x65, 0x72, 0x44, 0x69, 0x61, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 2178 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 2179 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x53, 0x70, 2180 0x65, 0x61, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 2181 0x78, 0x5f, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 2182 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x65, 2183 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 2184 0x72, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x05, 0x18, 0x01, 0xe0, 2185 0x41, 0x03, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x67, 0x22, 0xba, 2186 0x09, 0x0a, 0x13, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 2187 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x66, 0x0a, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 2188 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 2189 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2190 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 2191 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x49, 0x6e, 2192 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x69, 2193 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 2194 0x0a, 0x1c, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x69, 0x63, 0x73, 2195 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x03, 2196 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x69, 0x6e, 0x64, 0x75, 0x73, 0x74, 0x72, 0x79, 0x4e, 0x61, 2197 0x69, 0x63, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x4f, 0x66, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x6f, 2198 0x0a, 0x13, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x64, 0x69, 0x73, 2199 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 2200 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 2201 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 2202 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 2203 0x6f, 0x6e, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x12, 0x6d, 0x69, 0x63, 2204 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 2205 0x6d, 0x0a, 0x13, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x65, 0x64, 0x69, 2206 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x67, 2207 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 2208 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 2209 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 2210 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x6f, 0x72, 0x69, 2211 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x73, 2212 0x0a, 0x15, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x76, 0x69, 2213 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 2214 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 2215 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 2216 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 2217 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x13, 2218 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 2219 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 2220 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 2221 0x28, 0x09, 0x52, 0x13, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x76, 2222 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6f, 0x72, 0x69, 0x67, 0x69, 2223 0x6e, 0x61, 0x6c, 0x5f, 0x6d, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 2224 0x01, 0x28, 0x09, 0x52, 0x10, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x69, 0x6d, 2225 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x5f, 0x74, 2226 0x6f, 0x70, 0x69, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 2227 0x6f, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x22, 0xc5, 0x01, 0x0a, 0x0f, 0x49, 0x6e, 0x74, 0x65, 0x72, 2228 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4e, 2229 0x54, 0x45, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 2230 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 2231 0x44, 0x49, 0x53, 0x43, 0x55, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 2232 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x0e, 2233 0x0a, 0x0a, 0x50, 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x10, 0x03, 0x12, 0x0d, 2234 0x0a, 0x09, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x4d, 0x41, 0x49, 0x4c, 0x10, 0x04, 0x12, 0x1b, 0x0a, 2235 0x17, 0x50, 0x52, 0x4f, 0x46, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x4c, 0x59, 0x5f, 2236 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x45, 0x44, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x56, 0x4f, 2237 0x49, 0x43, 0x45, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 2238 0x56, 0x4f, 0x49, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x10, 0x07, 0x12, 2239 0x0d, 0x0a, 0x09, 0x44, 0x49, 0x43, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x22, 0x64, 2240 0x0a, 0x12, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x44, 0x69, 0x73, 0x74, 2241 0x61, 0x6e, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x49, 0x43, 0x52, 0x4f, 0x50, 0x48, 0x4f, 2242 0x4e, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 2243 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x45, 0x41, 2244 0x52, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x49, 0x44, 0x46, 2245 0x49, 0x45, 0x4c, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x41, 0x52, 0x46, 0x49, 0x45, 2246 0x4c, 0x44, 0x10, 0x03, 0x22, 0x4e, 0x0a, 0x11, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 2247 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x4f, 0x52, 0x49, 2248 0x47, 0x49, 0x4e, 0x41, 0x4c, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 2249 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 2250 0x0a, 0x05, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x44, 2251 0x45, 0x4f, 0x10, 0x02, 0x22, 0xa4, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x69, 2252 0x6e, 0x67, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x21, 2253 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 2254 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 2255 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x4d, 0x41, 0x52, 0x54, 0x50, 0x48, 0x4f, 0x4e, 2256 0x45, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x50, 0x43, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 2257 0x48, 0x4f, 0x4e, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x56, 2258 0x45, 0x48, 0x49, 0x43, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x54, 0x48, 0x45, 2259 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x44, 0x4f, 0x4f, 0x52, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 2260 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x44, 0x4f, 2261 0x4f, 0x52, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x10, 0x06, 0x22, 0x29, 0x0a, 0x0d, 0x53, 2262 0x70, 0x65, 0x65, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 2263 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x70, 2264 0x68, 0x72, 0x61, 0x73, 0x65, 0x73, 0x22, 0x52, 0x0a, 0x10, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 2265 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x1a, 0x0a, 0x07, 0x63, 0x6f, 2266 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x63, 2267 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 2268 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x75, 0x72, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x61, 0x75, 2269 0x64, 0x69, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x5e, 0x0a, 0x11, 0x52, 0x65, 2270 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 2271 0x49, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 2272 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 2273 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 2274 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 2275 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x69, 0x0a, 0x1c, 0x4c, 0x6f, 2276 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 2277 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x07, 0x72, 0x65, 2278 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 2279 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 2280 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x67, 2281 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 2282 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xca, 0x01, 0x0a, 0x1c, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 2283 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x4d, 0x65, 2284 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 2285 0x73, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 2286 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 2287 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 2288 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 2289 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 2290 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x10, 2291 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 2292 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2293 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 2294 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 2295 0x6d, 0x65, 0x22, 0xd2, 0x02, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 2296 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2297 0x65, 0x12, 0x28, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 2298 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 2299 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4c, 0x0a, 0x07, 0x72, 2300 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 2301 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 2302 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 2303 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 2304 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x6e, 0x0a, 0x11, 0x73, 0x70, 0x65, 2305 0x65, 0x63, 0x68, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 2306 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 2307 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 2308 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 2309 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x45, 2310 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 2311 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4c, 0x0a, 0x0f, 0x53, 0x70, 0x65, 2312 0x65, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x18, 2313 0x53, 0x50, 0x45, 0x45, 0x43, 0x48, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 2314 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x4e, 2315 0x44, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x55, 0x54, 0x54, 0x45, 2316 0x52, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x01, 0x22, 0xbd, 0x02, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 2317 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 2318 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x58, 0x0a, 0x0c, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 2319 0x61, 0x74, 0x69, 0x76, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 2320 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 2321 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x63, 0x6f, 2322 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 2323 0x76, 0x65, 0x52, 0x0c, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x73, 2324 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 2325 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 2326 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 2327 0x73, 0x74, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x0f, 0x72, 0x65, 0x73, 2328 0x75, 0x6c, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 2329 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2330 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x72, 2331 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 2332 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 2333 0x05, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x61, 0x67, 0x12, 0x28, 0x0a, 2334 0x0d, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 2335 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x6c, 0x61, 0x6e, 0x67, 0x75, 2336 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x94, 0x01, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x65, 2337 0x63, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 2338 0x75, 0x6c, 0x74, 0x12, 0x58, 0x0a, 0x0c, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 2339 0x76, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 2340 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 2341 0x76, 0x31, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 2342 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 2343 0x0c, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x73, 0x12, 0x1f, 0x0a, 2344 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 2345 0x28, 0x05, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x61, 0x67, 0x22, 0x96, 2346 0x01, 0x0a, 0x1c, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 2347 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x12, 2348 0x1e, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x01, 0x20, 2349 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 2350 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 2351 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 2352 0x36, 0x0a, 0x05, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 2353 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 2354 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 2355 0x52, 0x05, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x22, 0xb4, 0x01, 0x0a, 0x08, 0x57, 0x6f, 0x72, 0x64, 2356 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 2357 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 2358 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 2359 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 2360 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 2361 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2362 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x65, 0x6e, 0x64, 2363 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 2364 0x28, 0x09, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x61, 2365 0x6b, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 2366 0x41, 0x03, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x54, 0x61, 0x67, 0x32, 0xd1, 2367 0x04, 0x0a, 0x06, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x12, 0x90, 0x01, 0x0a, 0x09, 0x52, 0x65, 2368 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x12, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2369 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 2370 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2371 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 2372 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x67, 2373 0x6e, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 2374 0xe4, 0x93, 0x02, 0x19, 0x22, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 2375 0x3a, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x0c, 2376 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0xe4, 0x01, 0x0a, 2377 0x14, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 2378 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 2379 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 2380 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 2381 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 2382 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 2383 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x78, 0x82, 0xd3, 0xe4, 0x93, 0x02, 2384 0x24, 0x22, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x3a, 0x6c, 0x6f, 2385 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 2386 0x7a, 0x65, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2c, 0x61, 2387 0x75, 0x64, 0x69, 0x6f, 0xca, 0x41, 0x3c, 0x0a, 0x1c, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 2388 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 2389 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x4c, 0x6f, 0x6e, 0x67, 0x52, 0x75, 0x6e, 0x6e, 0x69, 2390 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 2391 0x61, 0x74, 0x61, 0x12, 0x81, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 2392 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 2393 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 2394 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 2395 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 2396 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 2397 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 2398 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2399 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x1a, 0x49, 0xca, 0x41, 0x15, 0x73, 0x70, 0x65, 0x65, 2400 0x63, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 2401 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 2402 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 2403 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 2404 0x72, 0x6d, 0x42, 0x72, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 2405 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x2e, 0x76, 0x31, 2406 0x42, 0x0b, 0x53, 0x70, 0x65, 0x65, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 2407 0x3c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 2408 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 2409 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x70, 0x65, 2410 0x65, 0x63, 0x68, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0xf8, 0x01, 0x01, 2411 0xa2, 0x02, 0x03, 0x47, 0x43, 0x53, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2412} 2413 2414var ( 2415 file_google_cloud_speech_v1_cloud_speech_proto_rawDescOnce sync.Once 2416 file_google_cloud_speech_v1_cloud_speech_proto_rawDescData = file_google_cloud_speech_v1_cloud_speech_proto_rawDesc 2417) 2418 2419func file_google_cloud_speech_v1_cloud_speech_proto_rawDescGZIP() []byte { 2420 file_google_cloud_speech_v1_cloud_speech_proto_rawDescOnce.Do(func() { 2421 file_google_cloud_speech_v1_cloud_speech_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_speech_v1_cloud_speech_proto_rawDescData) 2422 }) 2423 return file_google_cloud_speech_v1_cloud_speech_proto_rawDescData 2424} 2425 2426var file_google_cloud_speech_v1_cloud_speech_proto_enumTypes = make([]protoimpl.EnumInfo, 6) 2427var file_google_cloud_speech_v1_cloud_speech_proto_msgTypes = make([]protoimpl.MessageInfo, 17) 2428var file_google_cloud_speech_v1_cloud_speech_proto_goTypes = []interface{}{ 2429 (RecognitionConfig_AudioEncoding)(0), // 0: google.cloud.speech.v1.RecognitionConfig.AudioEncoding 2430 (RecognitionMetadata_InteractionType)(0), // 1: google.cloud.speech.v1.RecognitionMetadata.InteractionType 2431 (RecognitionMetadata_MicrophoneDistance)(0), // 2: google.cloud.speech.v1.RecognitionMetadata.MicrophoneDistance 2432 (RecognitionMetadata_OriginalMediaType)(0), // 3: google.cloud.speech.v1.RecognitionMetadata.OriginalMediaType 2433 (RecognitionMetadata_RecordingDeviceType)(0), // 4: google.cloud.speech.v1.RecognitionMetadata.RecordingDeviceType 2434 (StreamingRecognizeResponse_SpeechEventType)(0), // 5: google.cloud.speech.v1.StreamingRecognizeResponse.SpeechEventType 2435 (*RecognizeRequest)(nil), // 6: google.cloud.speech.v1.RecognizeRequest 2436 (*LongRunningRecognizeRequest)(nil), // 7: google.cloud.speech.v1.LongRunningRecognizeRequest 2437 (*StreamingRecognizeRequest)(nil), // 8: google.cloud.speech.v1.StreamingRecognizeRequest 2438 (*StreamingRecognitionConfig)(nil), // 9: google.cloud.speech.v1.StreamingRecognitionConfig 2439 (*RecognitionConfig)(nil), // 10: google.cloud.speech.v1.RecognitionConfig 2440 (*SpeakerDiarizationConfig)(nil), // 11: google.cloud.speech.v1.SpeakerDiarizationConfig 2441 (*RecognitionMetadata)(nil), // 12: google.cloud.speech.v1.RecognitionMetadata 2442 (*SpeechContext)(nil), // 13: google.cloud.speech.v1.SpeechContext 2443 (*RecognitionAudio)(nil), // 14: google.cloud.speech.v1.RecognitionAudio 2444 (*RecognizeResponse)(nil), // 15: google.cloud.speech.v1.RecognizeResponse 2445 (*LongRunningRecognizeResponse)(nil), // 16: google.cloud.speech.v1.LongRunningRecognizeResponse 2446 (*LongRunningRecognizeMetadata)(nil), // 17: google.cloud.speech.v1.LongRunningRecognizeMetadata 2447 (*StreamingRecognizeResponse)(nil), // 18: google.cloud.speech.v1.StreamingRecognizeResponse 2448 (*StreamingRecognitionResult)(nil), // 19: google.cloud.speech.v1.StreamingRecognitionResult 2449 (*SpeechRecognitionResult)(nil), // 20: google.cloud.speech.v1.SpeechRecognitionResult 2450 (*SpeechRecognitionAlternative)(nil), // 21: google.cloud.speech.v1.SpeechRecognitionAlternative 2451 (*WordInfo)(nil), // 22: google.cloud.speech.v1.WordInfo 2452 (*timestamp.Timestamp)(nil), // 23: google.protobuf.Timestamp 2453 (*status.Status)(nil), // 24: google.rpc.Status 2454 (*duration.Duration)(nil), // 25: google.protobuf.Duration 2455 (*longrunning.Operation)(nil), // 26: google.longrunning.Operation 2456} 2457var file_google_cloud_speech_v1_cloud_speech_proto_depIdxs = []int32{ 2458 10, // 0: google.cloud.speech.v1.RecognizeRequest.config:type_name -> google.cloud.speech.v1.RecognitionConfig 2459 14, // 1: google.cloud.speech.v1.RecognizeRequest.audio:type_name -> google.cloud.speech.v1.RecognitionAudio 2460 10, // 2: google.cloud.speech.v1.LongRunningRecognizeRequest.config:type_name -> google.cloud.speech.v1.RecognitionConfig 2461 14, // 3: google.cloud.speech.v1.LongRunningRecognizeRequest.audio:type_name -> google.cloud.speech.v1.RecognitionAudio 2462 9, // 4: google.cloud.speech.v1.StreamingRecognizeRequest.streaming_config:type_name -> google.cloud.speech.v1.StreamingRecognitionConfig 2463 10, // 5: google.cloud.speech.v1.StreamingRecognitionConfig.config:type_name -> google.cloud.speech.v1.RecognitionConfig 2464 0, // 6: google.cloud.speech.v1.RecognitionConfig.encoding:type_name -> google.cloud.speech.v1.RecognitionConfig.AudioEncoding 2465 13, // 7: google.cloud.speech.v1.RecognitionConfig.speech_contexts:type_name -> google.cloud.speech.v1.SpeechContext 2466 11, // 8: google.cloud.speech.v1.RecognitionConfig.diarization_config:type_name -> google.cloud.speech.v1.SpeakerDiarizationConfig 2467 12, // 9: google.cloud.speech.v1.RecognitionConfig.metadata:type_name -> google.cloud.speech.v1.RecognitionMetadata 2468 1, // 10: google.cloud.speech.v1.RecognitionMetadata.interaction_type:type_name -> google.cloud.speech.v1.RecognitionMetadata.InteractionType 2469 2, // 11: google.cloud.speech.v1.RecognitionMetadata.microphone_distance:type_name -> google.cloud.speech.v1.RecognitionMetadata.MicrophoneDistance 2470 3, // 12: google.cloud.speech.v1.RecognitionMetadata.original_media_type:type_name -> google.cloud.speech.v1.RecognitionMetadata.OriginalMediaType 2471 4, // 13: google.cloud.speech.v1.RecognitionMetadata.recording_device_type:type_name -> google.cloud.speech.v1.RecognitionMetadata.RecordingDeviceType 2472 20, // 14: google.cloud.speech.v1.RecognizeResponse.results:type_name -> google.cloud.speech.v1.SpeechRecognitionResult 2473 20, // 15: google.cloud.speech.v1.LongRunningRecognizeResponse.results:type_name -> google.cloud.speech.v1.SpeechRecognitionResult 2474 23, // 16: google.cloud.speech.v1.LongRunningRecognizeMetadata.start_time:type_name -> google.protobuf.Timestamp 2475 23, // 17: google.cloud.speech.v1.LongRunningRecognizeMetadata.last_update_time:type_name -> google.protobuf.Timestamp 2476 24, // 18: google.cloud.speech.v1.StreamingRecognizeResponse.error:type_name -> google.rpc.Status 2477 19, // 19: google.cloud.speech.v1.StreamingRecognizeResponse.results:type_name -> google.cloud.speech.v1.StreamingRecognitionResult 2478 5, // 20: google.cloud.speech.v1.StreamingRecognizeResponse.speech_event_type:type_name -> google.cloud.speech.v1.StreamingRecognizeResponse.SpeechEventType 2479 21, // 21: google.cloud.speech.v1.StreamingRecognitionResult.alternatives:type_name -> google.cloud.speech.v1.SpeechRecognitionAlternative 2480 25, // 22: google.cloud.speech.v1.StreamingRecognitionResult.result_end_time:type_name -> google.protobuf.Duration 2481 21, // 23: google.cloud.speech.v1.SpeechRecognitionResult.alternatives:type_name -> google.cloud.speech.v1.SpeechRecognitionAlternative 2482 22, // 24: google.cloud.speech.v1.SpeechRecognitionAlternative.words:type_name -> google.cloud.speech.v1.WordInfo 2483 25, // 25: google.cloud.speech.v1.WordInfo.start_time:type_name -> google.protobuf.Duration 2484 25, // 26: google.cloud.speech.v1.WordInfo.end_time:type_name -> google.protobuf.Duration 2485 6, // 27: google.cloud.speech.v1.Speech.Recognize:input_type -> google.cloud.speech.v1.RecognizeRequest 2486 7, // 28: google.cloud.speech.v1.Speech.LongRunningRecognize:input_type -> google.cloud.speech.v1.LongRunningRecognizeRequest 2487 8, // 29: google.cloud.speech.v1.Speech.StreamingRecognize:input_type -> google.cloud.speech.v1.StreamingRecognizeRequest 2488 15, // 30: google.cloud.speech.v1.Speech.Recognize:output_type -> google.cloud.speech.v1.RecognizeResponse 2489 26, // 31: google.cloud.speech.v1.Speech.LongRunningRecognize:output_type -> google.longrunning.Operation 2490 18, // 32: google.cloud.speech.v1.Speech.StreamingRecognize:output_type -> google.cloud.speech.v1.StreamingRecognizeResponse 2491 30, // [30:33] is the sub-list for method output_type 2492 27, // [27:30] is the sub-list for method input_type 2493 27, // [27:27] is the sub-list for extension type_name 2494 27, // [27:27] is the sub-list for extension extendee 2495 0, // [0:27] is the sub-list for field type_name 2496} 2497 2498func init() { file_google_cloud_speech_v1_cloud_speech_proto_init() } 2499func file_google_cloud_speech_v1_cloud_speech_proto_init() { 2500 if File_google_cloud_speech_v1_cloud_speech_proto != nil { 2501 return 2502 } 2503 if !protoimpl.UnsafeEnabled { 2504 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2505 switch v := v.(*RecognizeRequest); i { 2506 case 0: 2507 return &v.state 2508 case 1: 2509 return &v.sizeCache 2510 case 2: 2511 return &v.unknownFields 2512 default: 2513 return nil 2514 } 2515 } 2516 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2517 switch v := v.(*LongRunningRecognizeRequest); i { 2518 case 0: 2519 return &v.state 2520 case 1: 2521 return &v.sizeCache 2522 case 2: 2523 return &v.unknownFields 2524 default: 2525 return nil 2526 } 2527 } 2528 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2529 switch v := v.(*StreamingRecognizeRequest); i { 2530 case 0: 2531 return &v.state 2532 case 1: 2533 return &v.sizeCache 2534 case 2: 2535 return &v.unknownFields 2536 default: 2537 return nil 2538 } 2539 } 2540 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2541 switch v := v.(*StreamingRecognitionConfig); i { 2542 case 0: 2543 return &v.state 2544 case 1: 2545 return &v.sizeCache 2546 case 2: 2547 return &v.unknownFields 2548 default: 2549 return nil 2550 } 2551 } 2552 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2553 switch v := v.(*RecognitionConfig); i { 2554 case 0: 2555 return &v.state 2556 case 1: 2557 return &v.sizeCache 2558 case 2: 2559 return &v.unknownFields 2560 default: 2561 return nil 2562 } 2563 } 2564 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2565 switch v := v.(*SpeakerDiarizationConfig); i { 2566 case 0: 2567 return &v.state 2568 case 1: 2569 return &v.sizeCache 2570 case 2: 2571 return &v.unknownFields 2572 default: 2573 return nil 2574 } 2575 } 2576 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2577 switch v := v.(*RecognitionMetadata); i { 2578 case 0: 2579 return &v.state 2580 case 1: 2581 return &v.sizeCache 2582 case 2: 2583 return &v.unknownFields 2584 default: 2585 return nil 2586 } 2587 } 2588 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2589 switch v := v.(*SpeechContext); i { 2590 case 0: 2591 return &v.state 2592 case 1: 2593 return &v.sizeCache 2594 case 2: 2595 return &v.unknownFields 2596 default: 2597 return nil 2598 } 2599 } 2600 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2601 switch v := v.(*RecognitionAudio); i { 2602 case 0: 2603 return &v.state 2604 case 1: 2605 return &v.sizeCache 2606 case 2: 2607 return &v.unknownFields 2608 default: 2609 return nil 2610 } 2611 } 2612 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2613 switch v := v.(*RecognizeResponse); i { 2614 case 0: 2615 return &v.state 2616 case 1: 2617 return &v.sizeCache 2618 case 2: 2619 return &v.unknownFields 2620 default: 2621 return nil 2622 } 2623 } 2624 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2625 switch v := v.(*LongRunningRecognizeResponse); i { 2626 case 0: 2627 return &v.state 2628 case 1: 2629 return &v.sizeCache 2630 case 2: 2631 return &v.unknownFields 2632 default: 2633 return nil 2634 } 2635 } 2636 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2637 switch v := v.(*LongRunningRecognizeMetadata); i { 2638 case 0: 2639 return &v.state 2640 case 1: 2641 return &v.sizeCache 2642 case 2: 2643 return &v.unknownFields 2644 default: 2645 return nil 2646 } 2647 } 2648 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2649 switch v := v.(*StreamingRecognizeResponse); i { 2650 case 0: 2651 return &v.state 2652 case 1: 2653 return &v.sizeCache 2654 case 2: 2655 return &v.unknownFields 2656 default: 2657 return nil 2658 } 2659 } 2660 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2661 switch v := v.(*StreamingRecognitionResult); i { 2662 case 0: 2663 return &v.state 2664 case 1: 2665 return &v.sizeCache 2666 case 2: 2667 return &v.unknownFields 2668 default: 2669 return nil 2670 } 2671 } 2672 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2673 switch v := v.(*SpeechRecognitionResult); i { 2674 case 0: 2675 return &v.state 2676 case 1: 2677 return &v.sizeCache 2678 case 2: 2679 return &v.unknownFields 2680 default: 2681 return nil 2682 } 2683 } 2684 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2685 switch v := v.(*SpeechRecognitionAlternative); i { 2686 case 0: 2687 return &v.state 2688 case 1: 2689 return &v.sizeCache 2690 case 2: 2691 return &v.unknownFields 2692 default: 2693 return nil 2694 } 2695 } 2696 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2697 switch v := v.(*WordInfo); i { 2698 case 0: 2699 return &v.state 2700 case 1: 2701 return &v.sizeCache 2702 case 2: 2703 return &v.unknownFields 2704 default: 2705 return nil 2706 } 2707 } 2708 } 2709 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[2].OneofWrappers = []interface{}{ 2710 (*StreamingRecognizeRequest_StreamingConfig)(nil), 2711 (*StreamingRecognizeRequest_AudioContent)(nil), 2712 } 2713 file_google_cloud_speech_v1_cloud_speech_proto_msgTypes[8].OneofWrappers = []interface{}{ 2714 (*RecognitionAudio_Content)(nil), 2715 (*RecognitionAudio_Uri)(nil), 2716 } 2717 type x struct{} 2718 out := protoimpl.TypeBuilder{ 2719 File: protoimpl.DescBuilder{ 2720 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2721 RawDescriptor: file_google_cloud_speech_v1_cloud_speech_proto_rawDesc, 2722 NumEnums: 6, 2723 NumMessages: 17, 2724 NumExtensions: 0, 2725 NumServices: 1, 2726 }, 2727 GoTypes: file_google_cloud_speech_v1_cloud_speech_proto_goTypes, 2728 DependencyIndexes: file_google_cloud_speech_v1_cloud_speech_proto_depIdxs, 2729 EnumInfos: file_google_cloud_speech_v1_cloud_speech_proto_enumTypes, 2730 MessageInfos: file_google_cloud_speech_v1_cloud_speech_proto_msgTypes, 2731 }.Build() 2732 File_google_cloud_speech_v1_cloud_speech_proto = out.File 2733 file_google_cloud_speech_v1_cloud_speech_proto_rawDesc = nil 2734 file_google_cloud_speech_v1_cloud_speech_proto_goTypes = nil 2735 file_google_cloud_speech_v1_cloud_speech_proto_depIdxs = nil 2736} 2737 2738// Reference imports to suppress errors if they are not otherwise used. 2739var _ context.Context 2740var _ grpc.ClientConnInterface 2741 2742// This is a compile-time assertion to ensure that this generated file 2743// is compatible with the grpc package it is being compiled against. 2744const _ = grpc.SupportPackageIsVersion6 2745 2746// SpeechClient is the client API for Speech service. 2747// 2748// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 2749type SpeechClient interface { 2750 // Performs synchronous speech recognition: receive results after all audio 2751 // has been sent and processed. 2752 Recognize(ctx context.Context, in *RecognizeRequest, opts ...grpc.CallOption) (*RecognizeResponse, error) 2753 // Performs asynchronous speech recognition: receive results via the 2754 // google.longrunning.Operations interface. Returns either an 2755 // `Operation.error` or an `Operation.response` which contains 2756 // a `LongRunningRecognizeResponse` message. 2757 // For more information on asynchronous speech recognition, see the 2758 // [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize). 2759 LongRunningRecognize(ctx context.Context, in *LongRunningRecognizeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) 2760 // Performs bidirectional streaming speech recognition: receive results while 2761 // sending audio. This method is only available via the gRPC API (not REST). 2762 StreamingRecognize(ctx context.Context, opts ...grpc.CallOption) (Speech_StreamingRecognizeClient, error) 2763} 2764 2765type speechClient struct { 2766 cc grpc.ClientConnInterface 2767} 2768 2769func NewSpeechClient(cc grpc.ClientConnInterface) SpeechClient { 2770 return &speechClient{cc} 2771} 2772 2773func (c *speechClient) Recognize(ctx context.Context, in *RecognizeRequest, opts ...grpc.CallOption) (*RecognizeResponse, error) { 2774 out := new(RecognizeResponse) 2775 err := c.cc.Invoke(ctx, "/google.cloud.speech.v1.Speech/Recognize", in, out, opts...) 2776 if err != nil { 2777 return nil, err 2778 } 2779 return out, nil 2780} 2781 2782func (c *speechClient) LongRunningRecognize(ctx context.Context, in *LongRunningRecognizeRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { 2783 out := new(longrunning.Operation) 2784 err := c.cc.Invoke(ctx, "/google.cloud.speech.v1.Speech/LongRunningRecognize", in, out, opts...) 2785 if err != nil { 2786 return nil, err 2787 } 2788 return out, nil 2789} 2790 2791func (c *speechClient) StreamingRecognize(ctx context.Context, opts ...grpc.CallOption) (Speech_StreamingRecognizeClient, error) { 2792 stream, err := c.cc.NewStream(ctx, &_Speech_serviceDesc.Streams[0], "/google.cloud.speech.v1.Speech/StreamingRecognize", opts...) 2793 if err != nil { 2794 return nil, err 2795 } 2796 x := &speechStreamingRecognizeClient{stream} 2797 return x, nil 2798} 2799 2800type Speech_StreamingRecognizeClient interface { 2801 Send(*StreamingRecognizeRequest) error 2802 Recv() (*StreamingRecognizeResponse, error) 2803 grpc.ClientStream 2804} 2805 2806type speechStreamingRecognizeClient struct { 2807 grpc.ClientStream 2808} 2809 2810func (x *speechStreamingRecognizeClient) Send(m *StreamingRecognizeRequest) error { 2811 return x.ClientStream.SendMsg(m) 2812} 2813 2814func (x *speechStreamingRecognizeClient) Recv() (*StreamingRecognizeResponse, error) { 2815 m := new(StreamingRecognizeResponse) 2816 if err := x.ClientStream.RecvMsg(m); err != nil { 2817 return nil, err 2818 } 2819 return m, nil 2820} 2821 2822// SpeechServer is the server API for Speech service. 2823type SpeechServer interface { 2824 // Performs synchronous speech recognition: receive results after all audio 2825 // has been sent and processed. 2826 Recognize(context.Context, *RecognizeRequest) (*RecognizeResponse, error) 2827 // Performs asynchronous speech recognition: receive results via the 2828 // google.longrunning.Operations interface. Returns either an 2829 // `Operation.error` or an `Operation.response` which contains 2830 // a `LongRunningRecognizeResponse` message. 2831 // For more information on asynchronous speech recognition, see the 2832 // [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize). 2833 LongRunningRecognize(context.Context, *LongRunningRecognizeRequest) (*longrunning.Operation, error) 2834 // Performs bidirectional streaming speech recognition: receive results while 2835 // sending audio. This method is only available via the gRPC API (not REST). 2836 StreamingRecognize(Speech_StreamingRecognizeServer) error 2837} 2838 2839// UnimplementedSpeechServer can be embedded to have forward compatible implementations. 2840type UnimplementedSpeechServer struct { 2841} 2842 2843func (*UnimplementedSpeechServer) Recognize(context.Context, *RecognizeRequest) (*RecognizeResponse, error) { 2844 return nil, status1.Errorf(codes.Unimplemented, "method Recognize not implemented") 2845} 2846func (*UnimplementedSpeechServer) LongRunningRecognize(context.Context, *LongRunningRecognizeRequest) (*longrunning.Operation, error) { 2847 return nil, status1.Errorf(codes.Unimplemented, "method LongRunningRecognize not implemented") 2848} 2849func (*UnimplementedSpeechServer) StreamingRecognize(Speech_StreamingRecognizeServer) error { 2850 return status1.Errorf(codes.Unimplemented, "method StreamingRecognize not implemented") 2851} 2852 2853func RegisterSpeechServer(s *grpc.Server, srv SpeechServer) { 2854 s.RegisterService(&_Speech_serviceDesc, srv) 2855} 2856 2857func _Speech_Recognize_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2858 in := new(RecognizeRequest) 2859 if err := dec(in); err != nil { 2860 return nil, err 2861 } 2862 if interceptor == nil { 2863 return srv.(SpeechServer).Recognize(ctx, in) 2864 } 2865 info := &grpc.UnaryServerInfo{ 2866 Server: srv, 2867 FullMethod: "/google.cloud.speech.v1.Speech/Recognize", 2868 } 2869 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2870 return srv.(SpeechServer).Recognize(ctx, req.(*RecognizeRequest)) 2871 } 2872 return interceptor(ctx, in, info, handler) 2873} 2874 2875func _Speech_LongRunningRecognize_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 2876 in := new(LongRunningRecognizeRequest) 2877 if err := dec(in); err != nil { 2878 return nil, err 2879 } 2880 if interceptor == nil { 2881 return srv.(SpeechServer).LongRunningRecognize(ctx, in) 2882 } 2883 info := &grpc.UnaryServerInfo{ 2884 Server: srv, 2885 FullMethod: "/google.cloud.speech.v1.Speech/LongRunningRecognize", 2886 } 2887 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 2888 return srv.(SpeechServer).LongRunningRecognize(ctx, req.(*LongRunningRecognizeRequest)) 2889 } 2890 return interceptor(ctx, in, info, handler) 2891} 2892 2893func _Speech_StreamingRecognize_Handler(srv interface{}, stream grpc.ServerStream) error { 2894 return srv.(SpeechServer).StreamingRecognize(&speechStreamingRecognizeServer{stream}) 2895} 2896 2897type Speech_StreamingRecognizeServer interface { 2898 Send(*StreamingRecognizeResponse) error 2899 Recv() (*StreamingRecognizeRequest, error) 2900 grpc.ServerStream 2901} 2902 2903type speechStreamingRecognizeServer struct { 2904 grpc.ServerStream 2905} 2906 2907func (x *speechStreamingRecognizeServer) Send(m *StreamingRecognizeResponse) error { 2908 return x.ServerStream.SendMsg(m) 2909} 2910 2911func (x *speechStreamingRecognizeServer) Recv() (*StreamingRecognizeRequest, error) { 2912 m := new(StreamingRecognizeRequest) 2913 if err := x.ServerStream.RecvMsg(m); err != nil { 2914 return nil, err 2915 } 2916 return m, nil 2917} 2918 2919var _Speech_serviceDesc = grpc.ServiceDesc{ 2920 ServiceName: "google.cloud.speech.v1.Speech", 2921 HandlerType: (*SpeechServer)(nil), 2922 Methods: []grpc.MethodDesc{ 2923 { 2924 MethodName: "Recognize", 2925 Handler: _Speech_Recognize_Handler, 2926 }, 2927 { 2928 MethodName: "LongRunningRecognize", 2929 Handler: _Speech_LongRunningRecognize_Handler, 2930 }, 2931 }, 2932 Streams: []grpc.StreamDesc{ 2933 { 2934 StreamName: "StreamingRecognize", 2935 Handler: _Speech_StreamingRecognize_Handler, 2936 ServerStreams: true, 2937 ClientStreams: true, 2938 }, 2939 }, 2940 Metadata: "google/cloud/speech/v1/cloud_speech.proto", 2941} 2942