google-cloud-speech-v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,193 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: google/cloud/speech/v1/cloud_speech.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ require 'google/api/annotations_pb'
7
+ require 'google/api/client_pb'
8
+ require 'google/api/field_behavior_pb'
9
+ require 'google/longrunning/operations_pb'
10
+ require 'google/protobuf/any_pb'
11
+ require 'google/protobuf/duration_pb'
12
+ require 'google/protobuf/timestamp_pb'
13
+ require 'google/rpc/status_pb'
14
+ Google::Protobuf::DescriptorPool.generated_pool.build do
15
+ add_file("google/cloud/speech/v1/cloud_speech.proto", :syntax => :proto3) do
16
+ add_message "google.cloud.speech.v1.RecognizeRequest" do
17
+ optional :config, :message, 1, "google.cloud.speech.v1.RecognitionConfig"
18
+ optional :audio, :message, 2, "google.cloud.speech.v1.RecognitionAudio"
19
+ end
20
+ add_message "google.cloud.speech.v1.LongRunningRecognizeRequest" do
21
+ optional :config, :message, 1, "google.cloud.speech.v1.RecognitionConfig"
22
+ optional :audio, :message, 2, "google.cloud.speech.v1.RecognitionAudio"
23
+ end
24
+ add_message "google.cloud.speech.v1.StreamingRecognizeRequest" do
25
+ oneof :streaming_request do
26
+ optional :streaming_config, :message, 1, "google.cloud.speech.v1.StreamingRecognitionConfig"
27
+ optional :audio_content, :bytes, 2
28
+ end
29
+ end
30
+ add_message "google.cloud.speech.v1.StreamingRecognitionConfig" do
31
+ optional :config, :message, 1, "google.cloud.speech.v1.RecognitionConfig"
32
+ optional :single_utterance, :bool, 2
33
+ optional :interim_results, :bool, 3
34
+ end
35
+ add_message "google.cloud.speech.v1.RecognitionConfig" do
36
+ optional :encoding, :enum, 1, "google.cloud.speech.v1.RecognitionConfig.AudioEncoding"
37
+ optional :sample_rate_hertz, :int32, 2
38
+ optional :audio_channel_count, :int32, 7
39
+ optional :enable_separate_recognition_per_channel, :bool, 12
40
+ optional :language_code, :string, 3
41
+ optional :max_alternatives, :int32, 4
42
+ optional :profanity_filter, :bool, 5
43
+ repeated :speech_contexts, :message, 6, "google.cloud.speech.v1.SpeechContext"
44
+ optional :enable_word_time_offsets, :bool, 8
45
+ optional :enable_automatic_punctuation, :bool, 11
46
+ optional :diarization_config, :message, 19, "google.cloud.speech.v1.SpeakerDiarizationConfig"
47
+ optional :metadata, :message, 9, "google.cloud.speech.v1.RecognitionMetadata"
48
+ optional :model, :string, 13
49
+ optional :use_enhanced, :bool, 14
50
+ end
51
+ add_enum "google.cloud.speech.v1.RecognitionConfig.AudioEncoding" do
52
+ value :ENCODING_UNSPECIFIED, 0
53
+ value :LINEAR16, 1
54
+ value :FLAC, 2
55
+ value :MULAW, 3
56
+ value :AMR, 4
57
+ value :AMR_WB, 5
58
+ value :OGG_OPUS, 6
59
+ value :SPEEX_WITH_HEADER_BYTE, 7
60
+ end
61
+ add_message "google.cloud.speech.v1.SpeakerDiarizationConfig" do
62
+ optional :enable_speaker_diarization, :bool, 1
63
+ optional :min_speaker_count, :int32, 2
64
+ optional :max_speaker_count, :int32, 3
65
+ optional :speaker_tag, :int32, 5
66
+ end
67
+ add_message "google.cloud.speech.v1.RecognitionMetadata" do
68
+ optional :interaction_type, :enum, 1, "google.cloud.speech.v1.RecognitionMetadata.InteractionType"
69
+ optional :industry_naics_code_of_audio, :uint32, 3
70
+ optional :microphone_distance, :enum, 4, "google.cloud.speech.v1.RecognitionMetadata.MicrophoneDistance"
71
+ optional :original_media_type, :enum, 5, "google.cloud.speech.v1.RecognitionMetadata.OriginalMediaType"
72
+ optional :recording_device_type, :enum, 6, "google.cloud.speech.v1.RecognitionMetadata.RecordingDeviceType"
73
+ optional :recording_device_name, :string, 7
74
+ optional :original_mime_type, :string, 8
75
+ optional :audio_topic, :string, 10
76
+ end
77
+ add_enum "google.cloud.speech.v1.RecognitionMetadata.InteractionType" do
78
+ value :INTERACTION_TYPE_UNSPECIFIED, 0
79
+ value :DISCUSSION, 1
80
+ value :PRESENTATION, 2
81
+ value :PHONE_CALL, 3
82
+ value :VOICEMAIL, 4
83
+ value :PROFESSIONALLY_PRODUCED, 5
84
+ value :VOICE_SEARCH, 6
85
+ value :VOICE_COMMAND, 7
86
+ value :DICTATION, 8
87
+ end
88
+ add_enum "google.cloud.speech.v1.RecognitionMetadata.MicrophoneDistance" do
89
+ value :MICROPHONE_DISTANCE_UNSPECIFIED, 0
90
+ value :NEARFIELD, 1
91
+ value :MIDFIELD, 2
92
+ value :FARFIELD, 3
93
+ end
94
+ add_enum "google.cloud.speech.v1.RecognitionMetadata.OriginalMediaType" do
95
+ value :ORIGINAL_MEDIA_TYPE_UNSPECIFIED, 0
96
+ value :AUDIO, 1
97
+ value :VIDEO, 2
98
+ end
99
+ add_enum "google.cloud.speech.v1.RecognitionMetadata.RecordingDeviceType" do
100
+ value :RECORDING_DEVICE_TYPE_UNSPECIFIED, 0
101
+ value :SMARTPHONE, 1
102
+ value :PC, 2
103
+ value :PHONE_LINE, 3
104
+ value :VEHICLE, 4
105
+ value :OTHER_OUTDOOR_DEVICE, 5
106
+ value :OTHER_INDOOR_DEVICE, 6
107
+ end
108
+ add_message "google.cloud.speech.v1.SpeechContext" do
109
+ repeated :phrases, :string, 1
110
+ end
111
+ add_message "google.cloud.speech.v1.RecognitionAudio" do
112
+ oneof :audio_source do
113
+ optional :content, :bytes, 1
114
+ optional :uri, :string, 2
115
+ end
116
+ end
117
+ add_message "google.cloud.speech.v1.RecognizeResponse" do
118
+ repeated :results, :message, 2, "google.cloud.speech.v1.SpeechRecognitionResult"
119
+ end
120
+ add_message "google.cloud.speech.v1.LongRunningRecognizeResponse" do
121
+ repeated :results, :message, 2, "google.cloud.speech.v1.SpeechRecognitionResult"
122
+ end
123
+ add_message "google.cloud.speech.v1.LongRunningRecognizeMetadata" do
124
+ optional :progress_percent, :int32, 1
125
+ optional :start_time, :message, 2, "google.protobuf.Timestamp"
126
+ optional :last_update_time, :message, 3, "google.protobuf.Timestamp"
127
+ end
128
+ add_message "google.cloud.speech.v1.StreamingRecognizeResponse" do
129
+ optional :error, :message, 1, "google.rpc.Status"
130
+ repeated :results, :message, 2, "google.cloud.speech.v1.StreamingRecognitionResult"
131
+ optional :speech_event_type, :enum, 4, "google.cloud.speech.v1.StreamingRecognizeResponse.SpeechEventType"
132
+ end
133
+ add_enum "google.cloud.speech.v1.StreamingRecognizeResponse.SpeechEventType" do
134
+ value :SPEECH_EVENT_UNSPECIFIED, 0
135
+ value :END_OF_SINGLE_UTTERANCE, 1
136
+ end
137
+ add_message "google.cloud.speech.v1.StreamingRecognitionResult" do
138
+ repeated :alternatives, :message, 1, "google.cloud.speech.v1.SpeechRecognitionAlternative"
139
+ optional :is_final, :bool, 2
140
+ optional :stability, :float, 3
141
+ optional :result_end_time, :message, 4, "google.protobuf.Duration"
142
+ optional :channel_tag, :int32, 5
143
+ optional :language_code, :string, 6
144
+ end
145
+ add_message "google.cloud.speech.v1.SpeechRecognitionResult" do
146
+ repeated :alternatives, :message, 1, "google.cloud.speech.v1.SpeechRecognitionAlternative"
147
+ optional :channel_tag, :int32, 2
148
+ end
149
+ add_message "google.cloud.speech.v1.SpeechRecognitionAlternative" do
150
+ optional :transcript, :string, 1
151
+ optional :confidence, :float, 2
152
+ repeated :words, :message, 3, "google.cloud.speech.v1.WordInfo"
153
+ end
154
+ add_message "google.cloud.speech.v1.WordInfo" do
155
+ optional :start_time, :message, 1, "google.protobuf.Duration"
156
+ optional :end_time, :message, 2, "google.protobuf.Duration"
157
+ optional :word, :string, 3
158
+ optional :speaker_tag, :int32, 5
159
+ end
160
+ end
161
+ end
162
+
163
+ module Google
164
+ module Cloud
165
+ module Speech
166
+ module V1
167
+ RecognizeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.RecognizeRequest").msgclass
168
+ LongRunningRecognizeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.LongRunningRecognizeRequest").msgclass
169
+ StreamingRecognizeRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.StreamingRecognizeRequest").msgclass
170
+ StreamingRecognitionConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.StreamingRecognitionConfig").msgclass
171
+ RecognitionConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.RecognitionConfig").msgclass
172
+ RecognitionConfig::AudioEncoding = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.RecognitionConfig.AudioEncoding").enummodule
173
+ SpeakerDiarizationConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.SpeakerDiarizationConfig").msgclass
174
+ RecognitionMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.RecognitionMetadata").msgclass
175
+ RecognitionMetadata::InteractionType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.RecognitionMetadata.InteractionType").enummodule
176
+ RecognitionMetadata::MicrophoneDistance = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.RecognitionMetadata.MicrophoneDistance").enummodule
177
+ RecognitionMetadata::OriginalMediaType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.RecognitionMetadata.OriginalMediaType").enummodule
178
+ RecognitionMetadata::RecordingDeviceType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.RecognitionMetadata.RecordingDeviceType").enummodule
179
+ SpeechContext = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.SpeechContext").msgclass
180
+ RecognitionAudio = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.RecognitionAudio").msgclass
181
+ RecognizeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.RecognizeResponse").msgclass
182
+ LongRunningRecognizeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.LongRunningRecognizeResponse").msgclass
183
+ LongRunningRecognizeMetadata = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.LongRunningRecognizeMetadata").msgclass
184
+ StreamingRecognizeResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.StreamingRecognizeResponse").msgclass
185
+ StreamingRecognizeResponse::SpeechEventType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.StreamingRecognizeResponse.SpeechEventType").enummodule
186
+ StreamingRecognitionResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.StreamingRecognitionResult").msgclass
187
+ SpeechRecognitionResult = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.SpeechRecognitionResult").msgclass
188
+ SpeechRecognitionAlternative = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.SpeechRecognitionAlternative").msgclass
189
+ WordInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.speech.v1.WordInfo").msgclass
190
+ end
191
+ end
192
+ end
193
+ end
@@ -0,0 +1,57 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: google/cloud/speech/v1/cloud_speech.proto for package 'google.cloud.speech.v1'
3
+ # Original file comments:
4
+ # Copyright 2019 Google LLC.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ #
19
+
20
+ require 'grpc'
21
+ require 'google/cloud/speech/v1/cloud_speech_pb'
22
+
23
+ module Google
24
+ module Cloud
25
+ module Speech
26
+ module V1
27
+ module Speech
28
+ # Service that implements Google Cloud Speech API.
29
+ class Service
30
+
31
+ include GRPC::GenericService
32
+
33
+ self.marshal_class_method = :encode
34
+ self.unmarshal_class_method = :decode
35
+ self.service_name = 'google.cloud.speech.v1.Speech'
36
+
37
+ # Performs synchronous speech recognition: receive results after all audio
38
+ # has been sent and processed.
39
+ rpc :Recognize, RecognizeRequest, RecognizeResponse
40
+ # Performs asynchronous speech recognition: receive results via the
41
+ # google.longrunning.Operations interface. Returns either an
42
+ # `Operation.error` or an `Operation.response` which contains
43
+ # a `LongRunningRecognizeResponse` message.
44
+ # For more information on asynchronous speech recognition, see the
45
+ # [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize).
46
+ rpc :LongRunningRecognize, LongRunningRecognizeRequest, Google::Longrunning::Operation
47
+ # Performs bidirectional streaming speech recognition: receive results while
48
+ # sending audio. This method is only available via the gRPC API (not REST).
49
+ rpc :StreamingRecognize, stream(StreamingRecognizeRequest), stream(StreamingRecognizeResponse)
50
+ end
51
+
52
+ Stub = Service.rpc_stub_class
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "google/cloud/speech/v1/speech/client"
20
+ require "google/cloud/speech/v1/speech/operations"
21
+ require "google/cloud/speech/v1/speech/credentials"
@@ -0,0 +1,527 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2020 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+ require "gapic/common"
20
+ require "gapic/config"
21
+ require "gapic/config/method"
22
+
23
+ require "google/cloud/errors"
24
+ require "google/cloud/speech/v1/version"
25
+ require "google/cloud/speech/v1/cloud_speech_pb"
26
+ require "google/cloud/speech/v1/speech/credentials"
27
+ require "google/cloud/speech/v1/speech/operations"
28
+
29
+ module Google
30
+ module Cloud
31
+ module Speech
32
+ module V1
33
+ module Speech
34
+ ##
35
+ # Client for the Speech service.
36
+ #
37
+ # Service that implements Google Cloud Speech API.
38
+ #
39
+ class Client
40
+ # @private
41
+ attr_reader :speech_stub
42
+
43
+ ##
44
+ # Configure the Speech Client class.
45
+ #
46
+ # See {Google::Cloud::Speech::V1::Speech::Client::Configuration}
47
+ # for a description of the configuration fields.
48
+ #
49
+ # ## Example
50
+ #
51
+ # To modify the configuration for all Speech clients:
52
+ #
53
+ # Google::Cloud::Speech::V1::Speech::Client.configure do |config|
54
+ # config.timeout = 10_000
55
+ # end
56
+ #
57
+ # @yield [config] Configure the Client client.
58
+ # @yieldparam config [Client::Configuration]
59
+ #
60
+ # @return [Client::Configuration]
61
+ #
62
+ def self.configure
63
+ @configure ||= begin
64
+ namespace = ["Google", "Cloud", "Speech", "V1"]
65
+ parent_config = while namespace.any?
66
+ parent_name = namespace.join "::"
67
+ parent_const = const_get parent_name
68
+ break parent_const.configure if parent_const&.respond_to? :configure
69
+ namespace.pop
70
+ end
71
+ default_config = Client::Configuration.new parent_config
72
+
73
+ default_config.rpcs.recognize.timeout = 5000.0
74
+ default_config.rpcs.recognize.retry_policy = {
75
+ initial_delay: 0.1,
76
+ max_delay: 60.0,
77
+ multiplier: 1.3,
78
+ retry_codes: ["UNAVAILABLE", "DEADLINE_EXCEEDED"]
79
+ }
80
+
81
+ default_config.rpcs.long_running_recognize.timeout = 5000.0
82
+
83
+ default_config.rpcs.streaming_recognize.timeout = 5000.0
84
+ default_config.rpcs.streaming_recognize.retry_policy = {
85
+ initial_delay: 0.1,
86
+ max_delay: 60.0,
87
+ multiplier: 1.3,
88
+ retry_codes: ["UNAVAILABLE", "DEADLINE_EXCEEDED"]
89
+ }
90
+
91
+ default_config
92
+ end
93
+ yield @configure if block_given?
94
+ @configure
95
+ end
96
+
97
+ ##
98
+ # Configure the Speech Client instance.
99
+ #
100
+ # The configuration is set to the derived mode, meaning that values can be changed,
101
+ # but structural changes (adding new fields, etc.) are not allowed. Structural changes
102
+ # should be made on {Client.configure}.
103
+ #
104
+ # See {Google::Cloud::Speech::V1::Speech::Client::Configuration}
105
+ # for a description of the configuration fields.
106
+ #
107
+ # @yield [config] Configure the Client client.
108
+ # @yieldparam config [Client::Configuration]
109
+ #
110
+ # @return [Client::Configuration]
111
+ #
112
+ def configure
113
+ yield @config if block_given?
114
+ @config
115
+ end
116
+
117
+ ##
118
+ # Create a new Speech client object.
119
+ #
120
+ # ## Examples
121
+ #
122
+ # To create a new Speech client with the default
123
+ # configuration:
124
+ #
125
+ # client = Google::Cloud::Speech::V1::Speech::Client.new
126
+ #
127
+ # To create a new Speech client with a custom
128
+ # configuration:
129
+ #
130
+ # client = Google::Cloud::Speech::V1::Speech::Client.new do |config|
131
+ # config.timeout = 10_000
132
+ # end
133
+ #
134
+ # @yield [config] Configure the Speech client.
135
+ # @yieldparam config [Client::Configuration]
136
+ #
137
+ def initialize
138
+ # These require statements are intentionally placed here to initialize
139
+ # the gRPC module only when it's required.
140
+ # See https://github.com/googleapis/toolkit/issues/446
141
+ require "gapic/grpc"
142
+ require "google/cloud/speech/v1/cloud_speech_services_pb"
143
+
144
+ # Create the configuration object
145
+ @config = Configuration.new Client.configure
146
+
147
+ # Yield the configuration if needed
148
+ yield @config if block_given?
149
+
150
+ # Create credentials
151
+ credentials = @config.credentials
152
+ credentials ||= Credentials.default scope: @config.scope
153
+ if credentials.is_a?(String) || credentials.is_a?(Hash)
154
+ credentials = Credentials.new credentials, scope: @config.scope
155
+ end
156
+ @quota_project_id = credentials.respond_to?(:quota_project_id) ? credentials.quota_project_id : nil
157
+
158
+ @operations_client = Operations.new do |config|
159
+ config.credentials = credentials
160
+ end
161
+
162
+ @speech_stub = Gapic::ServiceStub.new(
163
+ Google::Cloud::Speech::V1::Speech::Stub,
164
+ credentials: credentials,
165
+ endpoint: @config.endpoint,
166
+ channel_args: @config.channel_args,
167
+ interceptors: @config.interceptors
168
+ )
169
+ end
170
+
171
+ # Service calls
172
+
173
+ ##
174
+ # Performs synchronous speech recognition: receive results after all audio
175
+ # has been sent and processed.
176
+ #
177
+ # @overload recognize(request, options = nil)
178
+ # @param request [Google::Cloud::Speech::V1::RecognizeRequest | Hash]
179
+ # Performs synchronous speech recognition: receive results after all audio
180
+ # has been sent and processed.
181
+ # @param options [Gapic::CallOptions, Hash]
182
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
183
+ #
184
+ # @overload recognize(config: nil, audio: nil)
185
+ # @param config [Google::Cloud::Speech::V1::RecognitionConfig | Hash]
186
+ # Required. Provides information to the recognizer that specifies how to
187
+ # process the request.
188
+ # @param audio [Google::Cloud::Speech::V1::RecognitionAudio | Hash]
189
+ # Required. The audio data to be recognized.
190
+ #
191
+ #
192
+ # @yield [response, operation] Access the result along with the RPC operation
193
+ # @yieldparam response [Google::Cloud::Speech::V1::RecognizeResponse]
194
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
195
+ #
196
+ # @return [Google::Cloud::Speech::V1::RecognizeResponse]
197
+ #
198
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
199
+ #
200
+ def recognize request, options = nil
201
+ raise ArgumentError, "request must be provided" if request.nil?
202
+
203
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::Speech::V1::RecognizeRequest
204
+
205
+ # Converts hash and nil to an options object
206
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
207
+
208
+ # Customize the options with defaults
209
+ metadata = @config.rpcs.recognize.metadata.to_h
210
+
211
+ # Set x-goog-api-client and x-goog-user-project headers
212
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
213
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
214
+ gapic_version: ::Google::Cloud::Speech::V1::VERSION
215
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
216
+
217
+ options.apply_defaults timeout: @config.rpcs.recognize.timeout,
218
+ metadata: metadata,
219
+ retry_policy: @config.rpcs.recognize.retry_policy
220
+ options.apply_defaults metadata: @config.metadata,
221
+ retry_policy: @config.retry_policy
222
+
223
+ @speech_stub.call_rpc :recognize, request, options: options do |response, operation|
224
+ yield response, operation if block_given?
225
+ return response
226
+ end
227
+ rescue GRPC::BadStatus => e
228
+ raise Google::Cloud::Error.from_error(e)
229
+ end
230
+
231
+ ##
232
+ # Performs asynchronous speech recognition: receive results via the
233
+ # google.longrunning.Operations interface. Returns either an
234
+ # `Operation.error` or an `Operation.response` which contains
235
+ # a `LongRunningRecognizeResponse` message.
236
+ # For more information on asynchronous speech recognition, see the
237
+ # [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize).
238
+ #
239
+ # @overload long_running_recognize(request, options = nil)
240
+ # @param request [Google::Cloud::Speech::V1::LongRunningRecognizeRequest | Hash]
241
+ # Performs asynchronous speech recognition: receive results via the
242
+ # google.longrunning.Operations interface. Returns either an
243
+ # `Operation.error` or an `Operation.response` which contains
244
+ # a `LongRunningRecognizeResponse` message.
245
+ # For more information on asynchronous speech recognition, see the
246
+ # [how-to](https://cloud.google.com/speech-to-text/docs/async-recognize).
247
+ # @param options [Gapic::CallOptions, Hash]
248
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
249
+ #
250
+ # @overload long_running_recognize(config: nil, audio: nil)
251
+ # @param config [Google::Cloud::Speech::V1::RecognitionConfig | Hash]
252
+ # Required. Provides information to the recognizer that specifies how to
253
+ # process the request.
254
+ # @param audio [Google::Cloud::Speech::V1::RecognitionAudio | Hash]
255
+ # Required. The audio data to be recognized.
256
+ #
257
+ #
258
+ # @yield [response, operation] Access the result along with the RPC operation
259
+ # @yieldparam response [Gapic::Operation]
260
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
261
+ #
262
+ # @return [Gapic::Operation]
263
+ #
264
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
265
+ #
266
+ def long_running_recognize request, options = nil
267
+ raise ArgumentError, "request must be provided" if request.nil?
268
+
269
+ request = Gapic::Protobuf.coerce request, to: Google::Cloud::Speech::V1::LongRunningRecognizeRequest
270
+
271
+ # Converts hash and nil to an options object
272
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
273
+
274
+ # Customize the options with defaults
275
+ metadata = @config.rpcs.long_running_recognize.metadata.to_h
276
+
277
+ # Set x-goog-api-client and x-goog-user-project headers
278
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
279
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
280
+ gapic_version: ::Google::Cloud::Speech::V1::VERSION
281
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
282
+
283
+ options.apply_defaults timeout: @config.rpcs.long_running_recognize.timeout,
284
+ metadata: metadata,
285
+ retry_policy: @config.rpcs.long_running_recognize.retry_policy
286
+ options.apply_defaults metadata: @config.metadata,
287
+ retry_policy: @config.retry_policy
288
+
289
+ @speech_stub.call_rpc :long_running_recognize, request, options: options do |response, operation|
290
+ response = Gapic::Operation.new response, @operations_client, options: options
291
+ yield response, operation if block_given?
292
+ return response
293
+ end
294
+ rescue GRPC::BadStatus => e
295
+ raise Google::Cloud::Error.from_error(e)
296
+ end
297
+
298
+ ##
299
+ # Performs bidirectional streaming speech recognition: receive results while
300
+ # sending audio. This method is only available via the gRPC API (not REST).
301
+ #
302
+ # @param request [Gapic::StreamInput, Enumerable<Google::Cloud::Speech::V1::StreamingRecognizeRequest | Hash>]
303
+ # An enumerable of {Google::Cloud::Speech::V1::StreamingRecognizeRequest} instances.
304
+ # @param options [Gapic::CallOptions, Hash]
305
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
306
+ #
307
+ # @yield [response, operation] Access the result along with the RPC operation
308
+ # @yieldparam response [Enumerable<Google::Cloud::Speech::V1::StreamingRecognizeResponse>]
309
+ # @yieldparam operation [GRPC::ActiveCall::Operation]
310
+ #
311
+ # @return [Enumerable<Google::Cloud::Speech::V1::StreamingRecognizeResponse>]
312
+ #
313
+ # @raise [Google::Cloud::Error] if the RPC is aborted.
314
+ #
315
+ def streaming_recognize request, options = nil
316
+ unless request.is_a? Enumerable
317
+ raise ArgumentError, "request must be an Enumerable" unless request.respond_to? :to_enum
318
+ request = request.to_enum
319
+ end
320
+
321
+ request = request.lazy.map do |req|
322
+ Gapic::Protobuf.coerce req, to: Google::Cloud::Speech::V1::StreamingRecognizeRequest
323
+ end
324
+
325
+ # Converts hash and nil to an options object
326
+ options = Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
327
+
328
+ # Customize the options with defaults
329
+ metadata = @config.rpcs.streaming_recognize.metadata.to_h
330
+
331
+ # Set x-goog-api-client and x-goog-user-project headers
332
+ metadata[:"x-goog-api-client"] ||= Gapic::Headers.x_goog_api_client \
333
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
334
+ gapic_version: ::Google::Cloud::Speech::V1::VERSION
335
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
336
+
337
+ options.apply_defaults timeout: @config.rpcs.streaming_recognize.timeout,
338
+ metadata: metadata,
339
+ retry_policy: @config.rpcs.streaming_recognize.retry_policy
340
+ options.apply_defaults metadata: @config.metadata,
341
+ retry_policy: @config.retry_policy
342
+
343
+ @speech_stub.call_rpc :streaming_recognize, request, options: options do |response, operation|
344
+ yield response, operation if block_given?
345
+ return response
346
+ end
347
+ rescue GRPC::BadStatus => e
348
+ raise Google::Cloud::Error.from_error(e)
349
+ end
350
+
351
+ ##
352
+ # Configuration class for the Speech API.
353
+ #
354
+ # This class represents the configuration for Speech,
355
+ # providing control over timeouts, retry behavior, logging, transport
356
+ # parameters, and other low-level controls. Certain parameters can also be
357
+ # applied individually to specific RPCs. See
358
+ # {Google::Cloud::Speech::V1::Speech::Client::Configuration::Rpcs}
359
+ # for a list of RPCs that can be configured independently.
360
+ #
361
+ # Configuration can be applied globally to all clients, or to a single client
362
+ # on construction.
363
+ #
364
+ # # Examples
365
+ #
366
+ # To modify the global config, setting the timeout for recognize
367
+ # to 20 seconds, and all remaining timeouts to 10 seconds:
368
+ #
369
+ # Google::Cloud::Speech::V1::Speech::Client.configure do |config|
370
+ # config.timeout = 10_000
371
+ # config.rpcs.recognize.timeout = 20_000
372
+ # end
373
+ #
374
+ # To apply the above configuration only to a new client:
375
+ #
376
+ # client = Google::Cloud::Speech::V1::Speech::Client.new do |config|
377
+ # config.timeout = 10_000
378
+ # config.rpcs.recognize.timeout = 20_000
379
+ # end
380
+ #
381
+ # @!attribute [rw] endpoint
382
+ # The hostname or hostname:port of the service endpoint.
383
+ # Defaults to `"speech.googleapis.com"`.
384
+ # @return [String]
385
+ # @!attribute [rw] credentials
386
+ # Credentials to send with calls. You may provide any of the following types:
387
+ # * (`String`) The path to a service account key file in JSON format
388
+ # * (`Hash`) A service account key as a Hash
389
+ # * (`Google::Auth::Credentials`) A googleauth credentials object
390
+ # (see the [googleauth docs](https://googleapis.dev/ruby/googleauth/latest/index.html))
391
+ # * (`Signet::OAuth2::Client`) A signet oauth2 client object
392
+ # (see the [signet docs](https://googleapis.dev/ruby/signet/latest/Signet/OAuth2/Client.html))
393
+ # * (`GRPC::Core::Channel`) a gRPC channel with included credentials
394
+ # * (`GRPC::Core::ChannelCredentials`) a gRPC credentails object
395
+ # * (`nil`) indicating no credentials
396
+ # @return [Object]
397
+ # @!attribute [rw] scope
398
+ # The OAuth scopes
399
+ # @return [Array<String>]
400
+ # @!attribute [rw] lib_name
401
+ # The library name as recorded in instrumentation and logging
402
+ # @return [String]
403
+ # @!attribute [rw] lib_version
404
+ # The library version as recorded in instrumentation and logging
405
+ # @return [String]
406
+ # @!attribute [rw] channel_args
407
+ # Extra parameters passed to the gRPC channel. Note: this is ignored if a
408
+ # `GRPC::Core::Channel` object is provided as the credential.
409
+ # @return [Hash]
410
+ # @!attribute [rw] interceptors
411
+ # An array of interceptors that are run before calls are executed.
412
+ # @return [Array<GRPC::ClientInterceptor>]
413
+ # @!attribute [rw] timeout
414
+ # The call timeout in milliseconds.
415
+ # @return [Numeric]
416
+ # @!attribute [rw] metadata
417
+ # Additional gRPC headers to be sent with the call.
418
+ # @return [Hash{Symbol=>String}]
419
+ # @!attribute [rw] retry_policy
420
+ # The retry policy. The value is a hash with the following keys:
421
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
422
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
423
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
424
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
425
+ # trigger a retry.
426
+ # @return [Hash]
427
+ #
428
+ class Configuration
429
+ extend Gapic::Config
430
+
431
+ config_attr :endpoint, "speech.googleapis.com", String
432
+ config_attr :credentials, nil do |value|
433
+ allowed = [::String, ::Hash, ::Proc, ::Google::Auth::Credentials, ::Signet::OAuth2::Client, nil]
434
+ allowed += [::GRPC::Core::Channel, ::GRPC::Core::ChannelCredentials] if defined? ::GRPC
435
+ allowed.any? { |klass| klass === value }
436
+ end
437
+ config_attr :scope, nil, String, Array, nil
438
+ config_attr :lib_name, nil, String, nil
439
+ config_attr :lib_version, nil, String, nil
440
+ config_attr(:channel_args, { "grpc.service_config_disable_resolution"=>1 }, Hash, nil)
441
+ config_attr :interceptors, nil, Array, nil
442
+ config_attr :timeout, nil, Numeric, nil
443
+ config_attr :metadata, nil, Hash, nil
444
+ config_attr :retry_policy, nil, Hash, Proc, nil
445
+
446
+ # @private
447
+ def initialize parent_config = nil
448
+ @parent_config = parent_config unless parent_config.nil?
449
+
450
+ yield self if block_given?
451
+ end
452
+
453
+ ##
454
+ # Configurations for individual RPCs
455
+ # @return [Rpcs]
456
+ #
457
+ def rpcs
458
+ @rpcs ||= begin
459
+ parent_rpcs = nil
460
+ parent_rpcs = @parent_config.rpcs if @parent_config&.respond_to? :rpcs
461
+ Rpcs.new parent_rpcs
462
+ end
463
+ end
464
+
465
+ ##
466
+ # Configuration RPC class for the Speech API.
467
+ #
468
+ # Includes fields providing the configuration for each RPC in this service.
469
+ # Each configuration object is of type `Gapic::Config::Method` and includes
470
+ # the following configuration fields:
471
+ #
472
+ # * `timeout` (*type:* `Numeric`) - The call timeout in milliseconds
473
+ # * `metadata` (*type:* `Hash{Symbol=>String}`) - Additional gRPC headers
474
+ # * `retry_policy (*type:* `Hash`) - The retry policy. The policy fields
475
+ # include the following keys:
476
+ # * `:initial_delay` (*type:* `Numeric`) - The initial delay in seconds.
477
+ # * `:max_delay` (*type:* `Numeric`) - The max delay in seconds.
478
+ # * `:multiplier` (*type:* `Numeric`) - The incremental backoff multiplier.
479
+ # * `:retry_codes` (*type:* `Array<String>`) - The error codes that should
480
+ # trigger a retry.
481
+ #
482
+ class Rpcs
483
+ ##
484
+ # RPC-specific configuration for `recognize`
485
+ # @return [Gapic::Config::Method]
486
+ #
487
+ attr_reader :recognize
488
+ ##
489
+ # RPC-specific configuration for `long_running_recognize`
490
+ # @return [Gapic::Config::Method]
491
+ #
492
+ attr_reader :long_running_recognize
493
+ ##
494
+ # RPC-specific configuration for `streaming_recognize`
495
+ # @return [Gapic::Config::Method]
496
+ #
497
+ attr_reader :streaming_recognize
498
+
499
+ # @private
500
+ def initialize parent_rpcs = nil
501
+ recognize_config = parent_rpcs&.recognize if parent_rpcs&.respond_to? :recognize
502
+ @recognize = Gapic::Config::Method.new recognize_config
503
+ long_running_recognize_config = parent_rpcs&.long_running_recognize if parent_rpcs&.respond_to? :long_running_recognize
504
+ @long_running_recognize = Gapic::Config::Method.new long_running_recognize_config
505
+ streaming_recognize_config = parent_rpcs&.streaming_recognize if parent_rpcs&.respond_to? :streaming_recognize
506
+ @streaming_recognize = Gapic::Config::Method.new streaming_recognize_config
507
+
508
+ yield self if block_given?
509
+ end
510
+ end
511
+ end
512
+ end
513
+ end
514
+ end
515
+ end
516
+ end
517
+ end
518
+
519
+ # rubocop:disable Lint/HandleExceptions
520
+
521
+ # Once client is loaded, load helpers.rb if it exists.
522
+ begin
523
+ require "google/cloud/speech/v1/speech/helpers"
524
+ rescue LoadError
525
+ end
526
+
527
+ # rubocop:enable Lint/HandleExceptions