Class: Google::Cloud::Speech::V1::Stream
- Inherits:
-
Object
- Object
- Google::Cloud::Speech::V1::Stream
- Includes:
- MonitorMixin
- Defined in:
- lib/google/cloud/speech/v1/stream.rb
Overview
Stream
A resource that represents the streaming requests and responses.
Instance Method Summary collapse
-
#complete? ⇒ Boolean
Whether all speech recognition results have been returned.
-
#on_complete {|callback| ... } ⇒ Object
Register to be notified when the end of the audio stream has been reached.
-
#on_error {|callback| ... } ⇒ Object
Register to be notified of an error received during the stream.
-
#on_interim {|callback| ... } ⇒ Object
Register to be notified on the reception of an interim result.
-
#on_result {|callback| ... } ⇒ Object
Register to be notified on the reception of a final result.
-
#on_utterance {|callback| ... } ⇒ Object
Register to be notified when the server has detected the end of the user's speech utterance and expects no additional speech.
-
#results ⇒ Array<Result>
The speech recognition results for the audio.
-
#send(bytes) ⇒ Object
Sends audio content to the server.
-
#start ⇒ Object
Starts the stream.
-
#started? ⇒ boolean
Checks if the stream has been started.
-
#stop ⇒ Object
Stops the stream.
-
#stopped? ⇒ boolean
Checks if the stream has been stopped.
-
#wait_until_complete! ⇒ Object
Blocks until all speech recognition results have been returned.
Instance Method Details
#complete? ⇒ Boolean
Whether all speech recognition results have been returned.
234 235 236 237 238 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 234 def complete? synchronize do @complete end end |
#on_complete {|callback| ... } ⇒ Object
Register to be notified when the end of the audio stream has been reached.
425 426 427 428 429 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 425 def on_complete &block synchronize do @callbacks[:complete] << block end end |
#on_error {|callback| ... } ⇒ Object
Register to be notified of an error received during the stream.
526 527 528 529 530 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 526 def on_error &block synchronize do @callbacks[:error] << block end end |
#on_interim {|callback| ... } ⇒ Object
Register to be notified on the reception of an interim result.
322 323 324 325 326 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 322 def on_interim &block synchronize do @callbacks[:interim] << block end end |
#on_result {|callback| ... } ⇒ Object
Register to be notified on the reception of a final result.
377 378 379 380 381 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 377 def on_result &block synchronize do @callbacks[:result] << block end end |
#on_utterance {|callback| ... } ⇒ Object
Register to be notified when the server has detected the end of the
user's speech utterance and expects no additional speech. Therefore,
the server will not process additional audio. The client should stop
sending additional audio data. This event only occurs when utterance
is true
.
478 479 480 481 482 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 478 def on_utterance &block synchronize do @callbacks[:utterance] << block end end |
#results ⇒ Array<Result>
The speech recognition results for the audio.
191 192 193 194 195 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 191 def results synchronize do @results end end |
#send(bytes) ⇒ Object
Sends audio content to the server.
125 126 127 128 129 130 131 132 133 134 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 125 def send bytes start # lazily call start if the stream wasn't started yet # TODO: do not send if stopped? synchronize do req = V1::StreamingRecognizeRequest.new( audio_content: bytes.encode(Encoding::ASCII_8BIT) ) @request_queue.push req end end |
#start ⇒ Object
Starts the stream. The stream will be started in the first #send call.
74 75 76 77 78 79 80 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 74 def start return if @request_queue @request_queue = EnumeratorQueue.new(self) @request_queue.push @streaming_recognize_request Thread.new { background_run } end |
#started? ⇒ boolean
Checks if the stream has been started.
86 87 88 89 90 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 86 def started? synchronize do !(!@request_queue) end end |
#stop ⇒ Object
Stops the stream. Signals to the server that no more data will be sent.
139 140 141 142 143 144 145 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 139 def stop synchronize do return if @request_queue.nil? @request_queue.push self @stopped = true end end |
#stopped? ⇒ boolean
Checks if the stream has been stopped.
151 152 153 154 155 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 151 def stopped? synchronize do @stopped end end |
#wait_until_complete! ⇒ Object
Blocks until all speech recognition results have been returned.
275 276 277 278 279 280 281 282 |
# File 'lib/google/cloud/speech/v1/stream.rb', line 275 def wait_until_complete! complete_check = nil synchronize { complete_check = @complete } while complete_check.nil? sleep 1 synchronize { complete_check = @complete } end end |