Skip to content

Commit 35c905d

Browse files
mamoonrajagermanattanasio
authored andcommitted
feat(SpeechToText): add support to disable ssl in STT websockets
1 parent a804ff0 commit 35c905d

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

lib/ibm_watson/speech_to_text_v1.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -533,7 +533,7 @@ def recognize_using_websocket(
533533
"redaction" => redaction
534534
}
535535
options.delete_if { |_, v| v.nil? }
536-
WebSocketClient.new(audio: audio, chunk_data: chunk_data, options: options, recognize_callback: recognize_callback, url: url, headers: headers)
536+
WebSocketClient.new(audio: audio, chunk_data: chunk_data, options: options, recognize_callback: recognize_callback, url: url, headers: headers, disable_ssl: @disable_ssl)
537537
end
538538

539539
# :nocov:

lib/ibm_watson/websocket/speech_to_text_websocket_listener.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
# Class for interacting with the WebSocket API
1313
class WebSocketClient
14-
def initialize(audio: nil, chunk_data:, options:, recognize_callback:, url:, headers:)
14+
def initialize(audio: nil, chunk_data:, options:, recognize_callback:, url:, headers:, disable_ssl: false)
1515
@audio = audio
1616
@options = options
1717
@callback = recognize_callback
@@ -24,6 +24,7 @@ def initialize(audio: nil, chunk_data:, options:, recognize_callback:, url:, hea
2424
@mic_running = false
2525
@data_size = audio.nil? ? 0 : @audio.size
2626
@queue = Queue.new
27+
@disable_ssl = disable_ssl
2728
end
2829

2930
def start
@@ -77,6 +78,12 @@ def start
7778

7879
EM&.reactor_thread&.join
7980
EM.run do
81+
if @disable_ssl
82+
@url = @url.sub("wss:", "ws:")
83+
@client = Faye::WebSocket::Client.new(@url, nil, tls: { verify_peer: false, fail_if_no_peer_cert: false }, headers: @headers)
84+
else
85+
@client = Faye::WebSocket::Client.new(@url, nil, headers: @headers)
86+
end
8087
@client = Faye::WebSocket::Client.new(@url, nil, headers: @headers)
8188
@client.onclose = on_close
8289
@client.onerror = on_error

test/integration/test_speech_to_text_v1.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,8 @@ def test_acoustic_model
162162

163163
def test_recognize_websocket_as_chunks
164164
audio_file = File.open(Dir.getwd + "/resources/speech.wav")
165-
mycallback = MyRecognizeCallback.new
165+
atomic_boolean = Concurrent::AtomicBoolean.new
166+
mycallback = MyRecognizeCallback.new(atomic_boolean: atomic_boolean)
166167
speech = @service.recognize_using_websocket(
167168
chunk_data: true,
168169
recognize_callback: mycallback,
@@ -186,7 +187,8 @@ def test_recognize_websocket_as_chunks
186187

187188
def test_recognize_websocket
188189
audio_file = File.open(Dir.getwd + "/resources/speech.wav")
189-
mycallback = MyRecognizeCallback.new
190+
atomic_boolean = Concurrent::AtomicBoolean.new
191+
mycallback = MyRecognizeCallback.new(atomic_boolean: atomic_boolean)
190192
speech = @service.recognize_using_websocket(
191193
audio: audio_file,
192194
recognize_callback: mycallback,

0 commit comments

Comments
 (0)