Class: Google::Cloud::Speech::Stream
- Inherits:
-
Object
- Object
- Google::Cloud::Speech::Stream
- Includes:
- MonitorMixin
- Defined in:
- lib/google/cloud/speech/stream.rb
Overview
Stream
A resource that represents the streaming requests and responses.
Instance Method Summary collapse
-
#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_speech_end {|callback| ... } ⇒ Object
Register to be notified when speech has ceased to be detected in the audio stream.
-
#on_speech_start {|callback| ... } ⇒ Object
Register to be notified when speech has been detected in the audio stream.
-
#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.
Instance Method Details
#on_complete {|callback| ... } ⇒ Object
Register to be notified when the end of the audio stream has been reached.
381 382 383 384 385 |
# File 'lib/google/cloud/speech/stream.rb', line 381 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.
470 471 472 473 474 |
# File 'lib/google/cloud/speech/stream.rb', line 470 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.
208 209 210 211 212 |
# File 'lib/google/cloud/speech/stream.rb', line 208 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.
250 251 252 253 254 |
# File 'lib/google/cloud/speech/stream.rb', line 250 def on_result &block synchronize do @callbacks[:result] << block end end |
#on_speech_end {|callback| ... } ⇒ Object
Register to be notified when speech has ceased to be detected in the audio stream.
340 341 342 343 344 |
# File 'lib/google/cloud/speech/stream.rb', line 340 def on_speech_end &block synchronize do @callbacks[:speech_end] << block end end |
#on_speech_start {|callback| ... } ⇒ Object
Register to be notified when speech has been detected in the audio stream.
299 300 301 302 303 |
# File 'lib/google/cloud/speech/stream.rb', line 299 def on_speech_start &block synchronize do @callbacks[:speech_start] << 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
.
429 430 431 432 433 |
# File 'lib/google/cloud/speech/stream.rb', line 429 def on_utterance &block synchronize do @callbacks[:utterance] << block end end |
#results ⇒ Array<Result>
The speech recognition results for the audio.
172 173 174 175 176 |
# File 'lib/google/cloud/speech/stream.rb', line 172 def results synchronize do @results end end |
#send(bytes) ⇒ Object
Sends audio content to the server.
115 116 117 118 119 120 121 122 123 |
# File 'lib/google/cloud/speech/stream.rb', line 115 def send bytes start # lazily call start if the stream wasn't started yet # TODO: do not send if stopped? synchronize do req = V1beta1::StreamingRecognizeRequest.new( audio_content: bytes.encode("ASCII-8BIT")) @request_queue.push req end end |
#start ⇒ Object
Starts the stream. The stream will be started in the first #send call.
67 68 69 70 71 72 73 |
# File 'lib/google/cloud/speech/stream.rb', line 67 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.
79 80 81 82 83 |
# File 'lib/google/cloud/speech/stream.rb', line 79 def started? synchronize do !(!@request_queue) end end |
#stop ⇒ Object
Stops the stream. Signals to the server that no more data will be sent.
128 129 130 131 132 133 134 |
# File 'lib/google/cloud/speech/stream.rb', line 128 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.
140 141 142 143 144 |
# File 'lib/google/cloud/speech/stream.rb', line 140 def stopped? synchronize do @stopped end end |