Class: Telnyx::Lib::WebSocket::SttServerEvent

Inherits:
Object
  • Object
show all
Defined in:
lib/telnyx/lib/websocket/stt_server_event.rb

Overview

Server event types for Speech-to-Text WebSocket streaming.

These events are received from the Telnyx STT WebSocket API during real-time audio transcription.

Example usage:

ws.on(:transcript) do |event|
  puts "Transcript: #{event.transcript}" if event.is_final
end

ws.on(:error) do |event|
  puts "Error: #{event.error}"
end

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#confidenceFloat?

Returns Confidence score (0.0 to 1.0).

Returns:

  • (Float, nil)

    Confidence score (0.0 to 1.0)



32
33
34
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 32

def confidence
  @confidence
end

#durationFloat?

Returns Duration in seconds.

Returns:

  • (Float, nil)

    Duration in seconds



41
42
43
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 41

def duration
  @duration
end

#errorString?

Returns Error message if type is “error”.

Returns:

  • (String, nil)

    Error message if type is “error”



35
36
37
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 35

def error
  @error
end

#is_finalBoolean?

Returns Whether this is a final transcript.

Returns:

  • (Boolean, nil)

    Whether this is a final transcript



29
30
31
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 29

def is_final
  @is_final
end

#languageString?

Returns Detected language code.

Returns:

  • (String, nil)

    Detected language code



47
48
49
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 47

def language
  @language
end

#rawHash?

Returns Original raw event data.

Returns:

  • (Hash, nil)

    Original raw event data



53
54
55
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 53

def raw
  @raw
end

#speakerString?

Returns Speaker identifier for diarization.

Returns:

  • (String, nil)

    Speaker identifier for diarization



50
51
52
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 50

def speaker
  @speaker
end

#startFloat?

Returns Start time offset in seconds.

Returns:

  • (Float, nil)

    Start time offset in seconds



38
39
40
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 38

def start
  @start
end

#transcriptString?

Returns The transcribed text.

Returns:

  • (String, nil)

    The transcribed text



26
27
28
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 26

def transcript
  @transcript
end

#typeString

Returns The event type (“transcript” or “error”).

Returns:

  • (String)

    The event type (“transcript” or “error”)



23
24
25
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 23

def type
  @type
end

#wordsArray<Hash>?

Returns Word-level timing information.

Returns:

  • (Array<Hash>, nil)

    Word-level timing information



44
45
46
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 44

def words
  @words
end

Class Method Details

.from_hash(data) ⇒ SttServerEvent

Create an SttServerEvent from a parsed JSON hash

Parameters:

  • data (Hash)

    The parsed JSON event data

Returns:



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 59

def self.from_hash(data)
  event = new
  event.raw = data
  event.type = data["type"]
  event.transcript = data["transcript"]
  event.is_final = data["is_final"]
  event.confidence = data["confidence"]
  event.error = data["error"]
  event.start = data["start"]
  event.duration = data["duration"]
  event.words = data["words"]
  event.language = data["language"]
  event.speaker = data["speaker"]
  event
end

Instance Method Details

#error?Boolean

Check if this is an error event

Returns:

  • (Boolean)


85
86
87
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 85

def error?
  type == "error"
end

#final?Boolean

Check if this is a final transcript

Returns:

  • (Boolean)


78
79
80
# File 'lib/telnyx/lib/websocket/stt_server_event.rb', line 78

def final?
  is_final == true
end