assemblyai 1.0.0.pre.beta
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/assemblyai/files/client.rb +63 -0
- data/lib/assemblyai/files/types/uploaded_file.rb +47 -0
- data/lib/assemblyai/lemur/client.rb +390 -0
- data/lib/assemblyai/lemur/types/lemur_action_items_response.rb +52 -0
- data/lib/assemblyai/lemur/types/lemur_base_params.rb +99 -0
- data/lib/assemblyai/lemur/types/lemur_base_params_context.rb +75 -0
- data/lib/assemblyai/lemur/types/lemur_base_response.rb +47 -0
- data/lib/assemblyai/lemur/types/lemur_model.rb +13 -0
- data/lib/assemblyai/lemur/types/lemur_question.rb +74 -0
- data/lib/assemblyai/lemur/types/lemur_question_answer.rb +53 -0
- data/lib/assemblyai/lemur/types/lemur_question_answer_response.rb +56 -0
- data/lib/assemblyai/lemur/types/lemur_question_context.rb +75 -0
- data/lib/assemblyai/lemur/types/lemur_summary_response.rb +52 -0
- data/lib/assemblyai/lemur/types/lemur_task_response.rb +52 -0
- data/lib/assemblyai/lemur/types/purge_lemur_request_data_response.rb +58 -0
- data/lib/assemblyai/realtime/client.rb +61 -0
- data/lib/assemblyai/realtime/types/audio_data.rb +7 -0
- data/lib/assemblyai/realtime/types/audio_encoding.rb +8 -0
- data/lib/assemblyai/realtime/types/final_transcript.rb +107 -0
- data/lib/assemblyai/realtime/types/message_type.rb +13 -0
- data/lib/assemblyai/realtime/types/partial_transcript.rb +94 -0
- data/lib/assemblyai/realtime/types/realtime_base_message.rb +48 -0
- data/lib/assemblyai/realtime/types/realtime_base_transcript.rb +87 -0
- data/lib/assemblyai/realtime/types/realtime_error.rb +47 -0
- data/lib/assemblyai/realtime/types/realtime_message.rb +115 -0
- data/lib/assemblyai/realtime/types/realtime_temporary_token_response.rb +47 -0
- data/lib/assemblyai/realtime/types/realtime_transcript.rb +76 -0
- data/lib/assemblyai/realtime/types/realtime_transcript_type.rb +8 -0
- data/lib/assemblyai/realtime/types/session_begins.rb +58 -0
- data/lib/assemblyai/realtime/types/session_terminated.rb +47 -0
- data/lib/assemblyai/realtime/types/terminate_session.rb +56 -0
- data/lib/assemblyai/realtime/types/word.rb +62 -0
- data/lib/assemblyai/transcripts/client.rb +525 -0
- data/lib/assemblyai/transcripts/polling_client.rb +173 -0
- data/lib/assemblyai/transcripts/types/audio_intelligence_model_status.rb +8 -0
- data/lib/assemblyai/transcripts/types/auto_highlight_result.rb +66 -0
- data/lib/assemblyai/transcripts/types/auto_highlights_result.rb +53 -0
- data/lib/assemblyai/transcripts/types/chapter.rb +68 -0
- data/lib/assemblyai/transcripts/types/content_safety_label.rb +57 -0
- data/lib/assemblyai/transcripts/types/content_safety_label_result.rb +84 -0
- data/lib/assemblyai/transcripts/types/content_safety_labels_result.rb +75 -0
- data/lib/assemblyai/transcripts/types/entity.rb +69 -0
- data/lib/assemblyai/transcripts/types/entity_type.rb +38 -0
- data/lib/assemblyai/transcripts/types/page_details.rb +74 -0
- data/lib/assemblyai/transcripts/types/paragraphs_response.rb +67 -0
- data/lib/assemblyai/transcripts/types/pii_policy.rb +36 -0
- data/lib/assemblyai/transcripts/types/polling_options.rb +21 -0
- data/lib/assemblyai/transcripts/types/redact_pii_audio_quality.rb +8 -0
- data/lib/assemblyai/transcripts/types/redacted_audio_response.rb +53 -0
- data/lib/assemblyai/transcripts/types/redacted_audio_status.rb +7 -0
- data/lib/assemblyai/transcripts/types/sentences_response.rb +67 -0
- data/lib/assemblyai/transcripts/types/sentiment.rb +8 -0
- data/lib/assemblyai/transcripts/types/sentiment_analysis_result.rb +82 -0
- data/lib/assemblyai/transcripts/types/severity_score_summary.rb +57 -0
- data/lib/assemblyai/transcripts/types/speech_model.rb +7 -0
- data/lib/assemblyai/transcripts/types/substitution_policy.rb +8 -0
- data/lib/assemblyai/transcripts/types/subtitle_format.rb +8 -0
- data/lib/assemblyai/transcripts/types/summary_model.rb +8 -0
- data/lib/assemblyai/transcripts/types/summary_type.rb +14 -0
- data/lib/assemblyai/transcripts/types/timestamp.rb +53 -0
- data/lib/assemblyai/transcripts/types/topic_detection_model_result.rb +68 -0
- data/lib/assemblyai/transcripts/types/topic_detection_result.rb +68 -0
- data/lib/assemblyai/transcripts/types/topic_detection_result_labels_item.rb +52 -0
- data/lib/assemblyai/transcripts/types/transcript.rb +454 -0
- data/lib/assemblyai/transcripts/types/transcript_boost_param.rb +8 -0
- data/lib/assemblyai/transcripts/types/transcript_custom_spelling.rb +53 -0
- data/lib/assemblyai/transcripts/types/transcript_language_code.rb +29 -0
- data/lib/assemblyai/transcripts/types/transcript_list.rb +62 -0
- data/lib/assemblyai/transcripts/types/transcript_list_item.rb +82 -0
- data/lib/assemblyai/transcripts/types/transcript_optional_params.rb +280 -0
- data/lib/assemblyai/transcripts/types/transcript_paragraph.rb +84 -0
- data/lib/assemblyai/transcripts/types/transcript_sentence.rb +84 -0
- data/lib/assemblyai/transcripts/types/transcript_status.rb +8 -0
- data/lib/assemblyai/transcripts/types/transcript_utterance.rb +84 -0
- data/lib/assemblyai/transcripts/types/transcript_word.rb +68 -0
- data/lib/assemblyai/transcripts/types/word_search_match.rb +63 -0
- data/lib/assemblyai/transcripts/types/word_search_response.rb +61 -0
- data/lib/assemblyai/transcripts/types/word_search_timestamp.rb +7 -0
- data/lib/assemblyai/types/error.rb +50 -0
- data/lib/assemblyai.rb +48 -0
- data/lib/environment.rb +7 -0
- data/lib/gemconfig.rb +14 -0
- data/lib/requests.rb +87 -0
- data/lib/types_export.rb +75 -0
- metadata +170 -0
@@ -0,0 +1,454 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "speech_model"
|
4
|
+
require_relative "transcript_status"
|
5
|
+
require_relative "transcript_language_code"
|
6
|
+
require_relative "transcript_word"
|
7
|
+
require_relative "transcript_utterance"
|
8
|
+
require_relative "auto_highlights_result"
|
9
|
+
require_relative "redact_pii_audio_quality"
|
10
|
+
require_relative "pii_policy"
|
11
|
+
require_relative "substitution_policy"
|
12
|
+
require_relative "content_safety_labels_result"
|
13
|
+
require_relative "topic_detection_model_result"
|
14
|
+
require_relative "transcript_custom_spelling"
|
15
|
+
require_relative "chapter"
|
16
|
+
require_relative "sentiment_analysis_result"
|
17
|
+
require_relative "entity"
|
18
|
+
require "json"
|
19
|
+
|
20
|
+
module AssemblyAI
|
21
|
+
class Transcripts
|
22
|
+
# A transcript object
|
23
|
+
class Transcript
|
24
|
+
attr_reader :id, :speech_model, :language_model, :acoustic_model, :status, :language_code, :audio_url, :text,
|
25
|
+
:words, :utterances, :confidence, :audio_duration, :punctuate, :format_text, :dual_channel, :webhook_url, :webhook_status_code, :webhook_auth, :webhook_auth_header_name, :speed_boost, :auto_highlights, :auto_highlights_result, :audio_start_from, :audio_end_at, :word_boost, :boost_param, :filter_profanity, :redact_pii, :redact_pii_audio, :redact_pii_audio_quality, :redact_pii_policies, :redact_pii_sub, :speaker_labels, :speakers_expected, :content_safety, :content_safety_labels, :iab_categories, :iab_categories_result, :language_detection, :custom_spelling, :auto_chapters, :chapters, :summarization, :summary_type, :summary_model, :summary, :custom_topics, :topics, :disfluencies, :sentiment_analysis, :sentiment_analysis_results, :entity_detection, :entities, :speech_threshold, :throttled, :error, :additional_properties
|
26
|
+
|
27
|
+
# @param id [String] The unique identifier of your transcript
|
28
|
+
# @param speech_model [Transcripts::SPEECH_MODEL]
|
29
|
+
# @param language_model [String] The language model that was used for the transcript
|
30
|
+
# @param acoustic_model [String] The acoustic model that was used for the transcript
|
31
|
+
# @param status [TRANSCRIPT_STATUS] The status of your transcript. Possible values are queued, processing, completed, or error.
|
32
|
+
# @param language_code [TRANSCRIPT_LANGUAGE_CODE] The language of your audio file.
|
33
|
+
# Possible values are found in [Supported Languages](https://www.assemblyai.com/docs/concepts/supported-languages).
|
34
|
+
# The default value is 'en_us'.
|
35
|
+
# @param audio_url [String] The URL of the media that was transcribed
|
36
|
+
# @param text [String] The textual transcript of your media file
|
37
|
+
# @param words [Array<Transcripts::TranscriptWord>] An array of temporally-sequential word objects, one for each word in the transcript.
|
38
|
+
# See [Speech recognition](https://www.assemblyai.com/docs/models/speech-recognition) for more information.
|
39
|
+
# @param utterances [Array<Transcripts::TranscriptUtterance>] When dual_channel or speaker_labels is enabled, a list of turn-by-turn utterance objects.
|
40
|
+
# See [Speaker diarization](https://www.assemblyai.com/docs/models/speaker-diarization) for more information.
|
41
|
+
# @param confidence [Float] The confidence score for the transcript, between 0.0 (low confidence) and 1.0 (high confidence)
|
42
|
+
# @param audio_duration [Float] The duration of this transcript object's media file, in seconds
|
43
|
+
# @param punctuate [Boolean] Whether Automatic Punctuation is enabled, either true or false
|
44
|
+
# @param format_text [Boolean] Whether Text Formatting is enabled, either true or false
|
45
|
+
# @param dual_channel [Boolean] Whether [Dual channel transcription](https://www.assemblyai.com/docs/models/speech-recognition#dual-channel-transcription) was enabled in the transcription request, either true or false
|
46
|
+
# @param webhook_url [String] The URL to which we send webhooks upon trancription completion
|
47
|
+
# @param webhook_status_code [Integer] The status code we received from your server when delivering your webhook, if a webhook URL was provided
|
48
|
+
# @param webhook_auth [Boolean] Whether webhook authentication details were provided
|
49
|
+
# @param webhook_auth_header_name [String] The header name which should be sent back with webhook calls
|
50
|
+
# @param speed_boost [Boolean] Whether speed boost is enabled
|
51
|
+
# @param auto_highlights [Boolean] Whether Key Phrases is enabled, either true or false
|
52
|
+
# @param auto_highlights_result [Transcripts::AutoHighlightsResult]
|
53
|
+
# @param audio_start_from [Integer] The point in time, in milliseconds, in the file at which the transcription was started
|
54
|
+
# @param audio_end_at [Integer] The point in time, in milliseconds, in the file at which the transcription was terminated
|
55
|
+
# @param word_boost [Array<String>] The list of custom vocabulary to boost transcription probability for
|
56
|
+
# @param boost_param [String] The word boost parameter value
|
57
|
+
# @param filter_profanity [Boolean] Whether [Profanity Filtering](https://www.assemblyai.com/docs/models/speech-recognition#profanity-filtering) is enabled, either true or false
|
58
|
+
# @param redact_pii [Boolean] Whether [PII Redaction](https://www.assemblyai.com/docs/models/pii-redaction) is enabled, either true or false
|
59
|
+
# @param redact_pii_audio [Boolean] Whether a redacted version of the audio file was generated,
|
60
|
+
# either true or false. See [PII redaction](https://www.assemblyai.com/docs/models/pii-redaction) for more information.
|
61
|
+
# @param redact_pii_audio_quality [REDACT_PII_AUDIO_QUALITY]
|
62
|
+
# @param redact_pii_policies [Array<Transcripts::PII_POLICY>] The list of PII Redaction policies that were enabled, if PII Redaction is enabled.
|
63
|
+
# See [PII redaction](https://www.assemblyai.com/docs/models/pii-redaction) for more information.
|
64
|
+
# @param redact_pii_sub [SUBSTITUTION_POLICY] The replacement logic for detected PII, can be "entity_type" or "hash". See [PII redaction](https://www.assemblyai.com/docs/models/pii-redaction) for more details.
|
65
|
+
# @param speaker_labels [Boolean] Whether [Speaker diarization](https://www.assemblyai.com/docs/models/speaker-diarization) is enabled, can be true or false
|
66
|
+
# @param speakers_expected [Integer] Tell the speaker label model how many speakers it should attempt to identify, up to 10. See [Speaker diarization](https://www.assemblyai.com/docs/models/speaker-diarization) for more details.
|
67
|
+
# @param content_safety [Boolean] Whether [Content Moderation](https://www.assemblyai.com/docs/models/content-moderation) is enabled, can be true or false
|
68
|
+
# @param content_safety_labels [Transcripts::ContentSafetyLabelsResult]
|
69
|
+
# @param iab_categories [Boolean] Whether [Topic Detection](https://www.assemblyai.com/docs/models/topic-detection) is enabled, can be true or false
|
70
|
+
# @param iab_categories_result [Transcripts::TopicDetectionModelResult]
|
71
|
+
# @param language_detection [Boolean] Whether [Automatic language detection](https://www.assemblyai.com/docs/models/speech-recognition#automatic-language-detection) is enabled, either true or false
|
72
|
+
# @param custom_spelling [Array<Transcripts::TranscriptCustomSpelling>] Customize how words are spelled and formatted using to and from values
|
73
|
+
# @param auto_chapters [Boolean] Whether [Auto Chapters](https://www.assemblyai.com/docs/models/auto-chapters) is enabled, can be true or false
|
74
|
+
# @param chapters [Array<Transcripts::Chapter>] An array of temporally sequential chapters for the audio file
|
75
|
+
# @param summarization [Boolean] Whether [Summarization](https://www.assemblyai.com/docs/models/summarization) is enabled, either true or false
|
76
|
+
# @param summary_type [String] The type of summary generated, if [Summarization](https://www.assemblyai.com/docs/models/summarization) is enabled
|
77
|
+
# @param summary_model [String] The Summarization model used to generate the summary,
|
78
|
+
# if [Summarization](https://www.assemblyai.com/docs/models/summarization) is enabled
|
79
|
+
# @param summary [String] The generated summary of the media file, if [Summarization](https://www.assemblyai.com/docs/models/summarization) is enabled
|
80
|
+
# @param custom_topics [Boolean] Whether custom topics is enabled, either true or false
|
81
|
+
# @param topics [Array<String>] The list of custom topics provided if custom topics is enabled
|
82
|
+
# @param disfluencies [Boolean] Transcribe Filler Words, like "umm", in your media file; can be true or false
|
83
|
+
# @param sentiment_analysis [Boolean] Whether [Sentiment Analysis](https://www.assemblyai.com/docs/models/sentiment-analysis) is enabled, can be true or false
|
84
|
+
# @param sentiment_analysis_results [Array<Transcripts::SentimentAnalysisResult>] An array of results for the Sentiment Analysis model, if it is enabled.
|
85
|
+
# See [Sentiment analysis](https://www.assemblyai.com/docs/models/sentiment-analysis) for more information.
|
86
|
+
# @param entity_detection [Boolean] Whether [Entity Detection](https://www.assemblyai.com/docs/models/entity-detection) is enabled, can be true or false
|
87
|
+
# @param entities [Array<Transcripts::Entity>] An array of results for the Entity Detection model, if it is enabled.
|
88
|
+
# See [Entity detection](https://www.assemblyai.com/docs/models/entity-detection) for more information.
|
89
|
+
# @param speech_threshold [Float] Defaults to null. Reject audio files that contain less than this fraction of speech.
|
90
|
+
# Valid values are in the range [0, 1] inclusive.
|
91
|
+
# @param throttled [Boolean] True while a request is throttled and false when a request is no longer throttled
|
92
|
+
# @param error [String] Error message of why the transcript failed
|
93
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
94
|
+
# @return [Transcripts::Transcript]
|
95
|
+
def initialize(id:, language_model:, acoustic_model:, status:, audio_url:, webhook_auth:, auto_highlights:, redact_pii:, summarization:, speech_model: nil, language_code: nil,
|
96
|
+
text: nil, words: nil, utterances: nil, confidence: nil, audio_duration: nil, punctuate: nil, format_text: nil, dual_channel: nil, webhook_url: nil, webhook_status_code: nil, webhook_auth_header_name: nil, speed_boost: nil, auto_highlights_result: nil, audio_start_from: nil, audio_end_at: nil, word_boost: nil, boost_param: nil, filter_profanity: nil, redact_pii_audio: nil, redact_pii_audio_quality: nil, redact_pii_policies: nil, redact_pii_sub: nil, speaker_labels: nil, speakers_expected: nil, content_safety: nil, content_safety_labels: nil, iab_categories: nil, iab_categories_result: nil, language_detection: nil, custom_spelling: nil, auto_chapters: nil, chapters: nil, summary_type: nil, summary_model: nil, summary: nil, custom_topics: nil, topics: nil, disfluencies: nil, sentiment_analysis: nil, sentiment_analysis_results: nil, entity_detection: nil, entities: nil, speech_threshold: nil, throttled: nil, error: nil, additional_properties: nil)
|
97
|
+
# @type [String] The unique identifier of your transcript
|
98
|
+
@id = id
|
99
|
+
# @type [Transcripts::SPEECH_MODEL]
|
100
|
+
@speech_model = speech_model
|
101
|
+
# @type [String] The language model that was used for the transcript
|
102
|
+
@language_model = language_model
|
103
|
+
# @type [String] The acoustic model that was used for the transcript
|
104
|
+
@acoustic_model = acoustic_model
|
105
|
+
# @type [TRANSCRIPT_STATUS] The status of your transcript. Possible values are queued, processing, completed, or error.
|
106
|
+
@status = status
|
107
|
+
# @type [TRANSCRIPT_LANGUAGE_CODE] The language of your audio file.
|
108
|
+
# Possible values are found in [Supported Languages](https://www.assemblyai.com/docs/concepts/supported-languages).
|
109
|
+
# The default value is 'en_us'.
|
110
|
+
@language_code = language_code
|
111
|
+
# @type [String] The URL of the media that was transcribed
|
112
|
+
@audio_url = audio_url
|
113
|
+
# @type [String] The textual transcript of your media file
|
114
|
+
@text = text
|
115
|
+
# @type [Array<Transcripts::TranscriptWord>] An array of temporally-sequential word objects, one for each word in the transcript.
|
116
|
+
# See [Speech recognition](https://www.assemblyai.com/docs/models/speech-recognition) for more information.
|
117
|
+
@words = words
|
118
|
+
# @type [Array<Transcripts::TranscriptUtterance>] When dual_channel or speaker_labels is enabled, a list of turn-by-turn utterance objects.
|
119
|
+
# See [Speaker diarization](https://www.assemblyai.com/docs/models/speaker-diarization) for more information.
|
120
|
+
@utterances = utterances
|
121
|
+
# @type [Float] The confidence score for the transcript, between 0.0 (low confidence) and 1.0 (high confidence)
|
122
|
+
@confidence = confidence
|
123
|
+
# @type [Float] The duration of this transcript object's media file, in seconds
|
124
|
+
@audio_duration = audio_duration
|
125
|
+
# @type [Boolean] Whether Automatic Punctuation is enabled, either true or false
|
126
|
+
@punctuate = punctuate
|
127
|
+
# @type [Boolean] Whether Text Formatting is enabled, either true or false
|
128
|
+
@format_text = format_text
|
129
|
+
# @type [Boolean] Whether [Dual channel transcription](https://www.assemblyai.com/docs/models/speech-recognition#dual-channel-transcription) was enabled in the transcription request, either true or false
|
130
|
+
@dual_channel = dual_channel
|
131
|
+
# @type [String] The URL to which we send webhooks upon trancription completion
|
132
|
+
@webhook_url = webhook_url
|
133
|
+
# @type [Integer] The status code we received from your server when delivering your webhook, if a webhook URL was provided
|
134
|
+
@webhook_status_code = webhook_status_code
|
135
|
+
# @type [Boolean] Whether webhook authentication details were provided
|
136
|
+
@webhook_auth = webhook_auth
|
137
|
+
# @type [String] The header name which should be sent back with webhook calls
|
138
|
+
@webhook_auth_header_name = webhook_auth_header_name
|
139
|
+
# @type [Boolean] Whether speed boost is enabled
|
140
|
+
@speed_boost = speed_boost
|
141
|
+
# @type [Boolean] Whether Key Phrases is enabled, either true or false
|
142
|
+
@auto_highlights = auto_highlights
|
143
|
+
# @type [Transcripts::AutoHighlightsResult]
|
144
|
+
@auto_highlights_result = auto_highlights_result
|
145
|
+
# @type [Integer] The point in time, in milliseconds, in the file at which the transcription was started
|
146
|
+
@audio_start_from = audio_start_from
|
147
|
+
# @type [Integer] The point in time, in milliseconds, in the file at which the transcription was terminated
|
148
|
+
@audio_end_at = audio_end_at
|
149
|
+
# @type [Array<String>] The list of custom vocabulary to boost transcription probability for
|
150
|
+
@word_boost = word_boost
|
151
|
+
# @type [String] The word boost parameter value
|
152
|
+
@boost_param = boost_param
|
153
|
+
# @type [Boolean] Whether [Profanity Filtering](https://www.assemblyai.com/docs/models/speech-recognition#profanity-filtering) is enabled, either true or false
|
154
|
+
@filter_profanity = filter_profanity
|
155
|
+
# @type [Boolean] Whether [PII Redaction](https://www.assemblyai.com/docs/models/pii-redaction) is enabled, either true or false
|
156
|
+
@redact_pii = redact_pii
|
157
|
+
# @type [Boolean] Whether a redacted version of the audio file was generated,
|
158
|
+
# either true or false. See [PII redaction](https://www.assemblyai.com/docs/models/pii-redaction) for more information.
|
159
|
+
@redact_pii_audio = redact_pii_audio
|
160
|
+
# @type [REDACT_PII_AUDIO_QUALITY]
|
161
|
+
@redact_pii_audio_quality = redact_pii_audio_quality
|
162
|
+
# @type [Array<Transcripts::PII_POLICY>] The list of PII Redaction policies that were enabled, if PII Redaction is enabled.
|
163
|
+
# See [PII redaction](https://www.assemblyai.com/docs/models/pii-redaction) for more information.
|
164
|
+
@redact_pii_policies = redact_pii_policies
|
165
|
+
# @type [SUBSTITUTION_POLICY] The replacement logic for detected PII, can be "entity_type" or "hash". See [PII redaction](https://www.assemblyai.com/docs/models/pii-redaction) for more details.
|
166
|
+
@redact_pii_sub = redact_pii_sub
|
167
|
+
# @type [Boolean] Whether [Speaker diarization](https://www.assemblyai.com/docs/models/speaker-diarization) is enabled, can be true or false
|
168
|
+
@speaker_labels = speaker_labels
|
169
|
+
# @type [Integer] Tell the speaker label model how many speakers it should attempt to identify, up to 10. See [Speaker diarization](https://www.assemblyai.com/docs/models/speaker-diarization) for more details.
|
170
|
+
@speakers_expected = speakers_expected
|
171
|
+
# @type [Boolean] Whether [Content Moderation](https://www.assemblyai.com/docs/models/content-moderation) is enabled, can be true or false
|
172
|
+
@content_safety = content_safety
|
173
|
+
# @type [Transcripts::ContentSafetyLabelsResult]
|
174
|
+
@content_safety_labels = content_safety_labels
|
175
|
+
# @type [Boolean] Whether [Topic Detection](https://www.assemblyai.com/docs/models/topic-detection) is enabled, can be true or false
|
176
|
+
@iab_categories = iab_categories
|
177
|
+
# @type [Transcripts::TopicDetectionModelResult]
|
178
|
+
@iab_categories_result = iab_categories_result
|
179
|
+
# @type [Boolean] Whether [Automatic language detection](https://www.assemblyai.com/docs/models/speech-recognition#automatic-language-detection) is enabled, either true or false
|
180
|
+
@language_detection = language_detection
|
181
|
+
# @type [Array<Transcripts::TranscriptCustomSpelling>] Customize how words are spelled and formatted using to and from values
|
182
|
+
@custom_spelling = custom_spelling
|
183
|
+
# @type [Boolean] Whether [Auto Chapters](https://www.assemblyai.com/docs/models/auto-chapters) is enabled, can be true or false
|
184
|
+
@auto_chapters = auto_chapters
|
185
|
+
# @type [Array<Transcripts::Chapter>] An array of temporally sequential chapters for the audio file
|
186
|
+
@chapters = chapters
|
187
|
+
# @type [Boolean] Whether [Summarization](https://www.assemblyai.com/docs/models/summarization) is enabled, either true or false
|
188
|
+
@summarization = summarization
|
189
|
+
# @type [String] The type of summary generated, if [Summarization](https://www.assemblyai.com/docs/models/summarization) is enabled
|
190
|
+
@summary_type = summary_type
|
191
|
+
# @type [String] The Summarization model used to generate the summary,
|
192
|
+
# if [Summarization](https://www.assemblyai.com/docs/models/summarization) is enabled
|
193
|
+
@summary_model = summary_model
|
194
|
+
# @type [String] The generated summary of the media file, if [Summarization](https://www.assemblyai.com/docs/models/summarization) is enabled
|
195
|
+
@summary = summary
|
196
|
+
# @type [Boolean] Whether custom topics is enabled, either true or false
|
197
|
+
@custom_topics = custom_topics
|
198
|
+
# @type [Array<String>] The list of custom topics provided if custom topics is enabled
|
199
|
+
@topics = topics
|
200
|
+
# @type [Boolean] Transcribe Filler Words, like "umm", in your media file; can be true or false
|
201
|
+
@disfluencies = disfluencies
|
202
|
+
# @type [Boolean] Whether [Sentiment Analysis](https://www.assemblyai.com/docs/models/sentiment-analysis) is enabled, can be true or false
|
203
|
+
@sentiment_analysis = sentiment_analysis
|
204
|
+
# @type [Array<Transcripts::SentimentAnalysisResult>] An array of results for the Sentiment Analysis model, if it is enabled.
|
205
|
+
# See [Sentiment analysis](https://www.assemblyai.com/docs/models/sentiment-analysis) for more information.
|
206
|
+
@sentiment_analysis_results = sentiment_analysis_results
|
207
|
+
# @type [Boolean] Whether [Entity Detection](https://www.assemblyai.com/docs/models/entity-detection) is enabled, can be true or false
|
208
|
+
@entity_detection = entity_detection
|
209
|
+
# @type [Array<Transcripts::Entity>] An array of results for the Entity Detection model, if it is enabled.
|
210
|
+
# See [Entity detection](https://www.assemblyai.com/docs/models/entity-detection) for more information.
|
211
|
+
@entities = entities
|
212
|
+
# @type [Float] Defaults to null. Reject audio files that contain less than this fraction of speech.
|
213
|
+
# Valid values are in the range [0, 1] inclusive.
|
214
|
+
@speech_threshold = speech_threshold
|
215
|
+
# @type [Boolean] True while a request is throttled and false when a request is no longer throttled
|
216
|
+
@throttled = throttled
|
217
|
+
# @type [String] Error message of why the transcript failed
|
218
|
+
@error = error
|
219
|
+
# @type [OpenStruct] Additional properties unmapped to the current class definition
|
220
|
+
@additional_properties = additional_properties
|
221
|
+
end
|
222
|
+
|
223
|
+
# Deserialize a JSON object to an instance of Transcript
|
224
|
+
#
|
225
|
+
# @param json_object [JSON]
|
226
|
+
# @return [Transcripts::Transcript]
|
227
|
+
def self.from_json(json_object:)
|
228
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
229
|
+
parsed_json = JSON.parse(json_object)
|
230
|
+
id = struct.id
|
231
|
+
speech_model = struct.speech_model
|
232
|
+
language_model = struct.language_model
|
233
|
+
acoustic_model = struct.acoustic_model
|
234
|
+
status = Transcripts::TRANSCRIPT_STATUS.key(parsed_json["status"]) || parsed_json["status"]
|
235
|
+
language_code = Transcripts::TRANSCRIPT_LANGUAGE_CODE.key(parsed_json["language_code"]) || parsed_json["language_code"]
|
236
|
+
audio_url = struct.audio_url
|
237
|
+
text = struct.text
|
238
|
+
words = parsed_json["words"]&.map do |v|
|
239
|
+
v = v.to_json
|
240
|
+
Transcripts::TranscriptWord.from_json(json_object: v)
|
241
|
+
end
|
242
|
+
utterances = parsed_json["utterances"]&.map do |v|
|
243
|
+
v = v.to_json
|
244
|
+
Transcripts::TranscriptUtterance.from_json(json_object: v)
|
245
|
+
end
|
246
|
+
confidence = struct.confidence
|
247
|
+
audio_duration = struct.audio_duration
|
248
|
+
punctuate = struct.punctuate
|
249
|
+
format_text = struct.format_text
|
250
|
+
dual_channel = struct.dual_channel
|
251
|
+
webhook_url = struct.webhook_url
|
252
|
+
webhook_status_code = struct.webhook_status_code
|
253
|
+
webhook_auth = struct.webhook_auth
|
254
|
+
webhook_auth_header_name = struct.webhook_auth_header_name
|
255
|
+
speed_boost = struct.speed_boost
|
256
|
+
auto_highlights = struct.auto_highlights
|
257
|
+
if parsed_json["auto_highlights_result"].nil?
|
258
|
+
auto_highlights_result = nil
|
259
|
+
else
|
260
|
+
auto_highlights_result = parsed_json["auto_highlights_result"].to_json
|
261
|
+
auto_highlights_result = Transcripts::AutoHighlightsResult.from_json(json_object: auto_highlights_result)
|
262
|
+
end
|
263
|
+
audio_start_from = struct.audio_start_from
|
264
|
+
audio_end_at = struct.audio_end_at
|
265
|
+
word_boost = struct.word_boost
|
266
|
+
boost_param = struct.boost_param
|
267
|
+
filter_profanity = struct.filter_profanity
|
268
|
+
redact_pii = struct.redact_pii
|
269
|
+
redact_pii_audio = struct.redact_pii_audio
|
270
|
+
redact_pii_audio_quality = Transcripts::REDACT_PII_AUDIO_QUALITY.key(parsed_json["redact_pii_audio_quality"]) || parsed_json["redact_pii_audio_quality"]
|
271
|
+
redact_pii_policies = parsed_json["redact_pii_policies"]&.map do |v|
|
272
|
+
v = v.to_json
|
273
|
+
Transcripts::PII_POLICY.key(v) || v
|
274
|
+
end
|
275
|
+
redact_pii_sub = Transcripts::SUBSTITUTION_POLICY.key(parsed_json["redact_pii_sub"]) || parsed_json["redact_pii_sub"]
|
276
|
+
speaker_labels = struct.speaker_labels
|
277
|
+
speakers_expected = struct.speakers_expected
|
278
|
+
content_safety = struct.content_safety
|
279
|
+
if parsed_json["content_safety_labels"].nil?
|
280
|
+
content_safety_labels = nil
|
281
|
+
else
|
282
|
+
content_safety_labels = parsed_json["content_safety_labels"].to_json
|
283
|
+
content_safety_labels = Transcripts::ContentSafetyLabelsResult.from_json(json_object: content_safety_labels)
|
284
|
+
end
|
285
|
+
iab_categories = struct.iab_categories
|
286
|
+
if parsed_json["iab_categories_result"].nil?
|
287
|
+
iab_categories_result = nil
|
288
|
+
else
|
289
|
+
iab_categories_result = parsed_json["iab_categories_result"].to_json
|
290
|
+
iab_categories_result = Transcripts::TopicDetectionModelResult.from_json(json_object: iab_categories_result)
|
291
|
+
end
|
292
|
+
language_detection = struct.language_detection
|
293
|
+
custom_spelling = parsed_json["custom_spelling"]&.map do |v|
|
294
|
+
v = v.to_json
|
295
|
+
Transcripts::TranscriptCustomSpelling.from_json(json_object: v)
|
296
|
+
end
|
297
|
+
auto_chapters = struct.auto_chapters
|
298
|
+
chapters = parsed_json["chapters"]&.map do |v|
|
299
|
+
v = v.to_json
|
300
|
+
Transcripts::Chapter.from_json(json_object: v)
|
301
|
+
end
|
302
|
+
summarization = struct.summarization
|
303
|
+
summary_type = struct.summary_type
|
304
|
+
summary_model = struct.summary_model
|
305
|
+
summary = struct.summary
|
306
|
+
custom_topics = struct.custom_topics
|
307
|
+
topics = struct.topics
|
308
|
+
disfluencies = struct.disfluencies
|
309
|
+
sentiment_analysis = struct.sentiment_analysis
|
310
|
+
sentiment_analysis_results = parsed_json["sentiment_analysis_results"]&.map do |v|
|
311
|
+
v = v.to_json
|
312
|
+
Transcripts::SentimentAnalysisResult.from_json(json_object: v)
|
313
|
+
end
|
314
|
+
entity_detection = struct.entity_detection
|
315
|
+
entities = parsed_json["entities"]&.map do |v|
|
316
|
+
v = v.to_json
|
317
|
+
Transcripts::Entity.from_json(json_object: v)
|
318
|
+
end
|
319
|
+
speech_threshold = struct.speech_threshold
|
320
|
+
throttled = struct.throttled
|
321
|
+
error = struct.error
|
322
|
+
new(id: id, speech_model: speech_model, language_model: language_model, acoustic_model: acoustic_model,
|
323
|
+
status: status, language_code: language_code, audio_url: audio_url, text: text, words: words, utterances: utterances, confidence: confidence, audio_duration: audio_duration, punctuate: punctuate, format_text: format_text, dual_channel: dual_channel, webhook_url: webhook_url, webhook_status_code: webhook_status_code, webhook_auth: webhook_auth, webhook_auth_header_name: webhook_auth_header_name, speed_boost: speed_boost, auto_highlights: auto_highlights, auto_highlights_result: auto_highlights_result, audio_start_from: audio_start_from, audio_end_at: audio_end_at, word_boost: word_boost, boost_param: boost_param, filter_profanity: filter_profanity, redact_pii: redact_pii, redact_pii_audio: redact_pii_audio, redact_pii_audio_quality: redact_pii_audio_quality, redact_pii_policies: redact_pii_policies, redact_pii_sub: redact_pii_sub, speaker_labels: speaker_labels, speakers_expected: speakers_expected, content_safety: content_safety, content_safety_labels: content_safety_labels, iab_categories: iab_categories, iab_categories_result: iab_categories_result, language_detection: language_detection, custom_spelling: custom_spelling, auto_chapters: auto_chapters, chapters: chapters, summarization: summarization, summary_type: summary_type, summary_model: summary_model, summary: summary, custom_topics: custom_topics, topics: topics, disfluencies: disfluencies, sentiment_analysis: sentiment_analysis, sentiment_analysis_results: sentiment_analysis_results, entity_detection: entity_detection, entities: entities, speech_threshold: speech_threshold, throttled: throttled, error: error, additional_properties: struct)
|
324
|
+
end
|
325
|
+
|
326
|
+
# Serialize an instance of Transcript to a JSON object
|
327
|
+
#
|
328
|
+
# @return [JSON]
|
329
|
+
def to_json(*_args)
|
330
|
+
{
|
331
|
+
"id": @id,
|
332
|
+
"speech_model": @speech_model,
|
333
|
+
"language_model": @language_model,
|
334
|
+
"acoustic_model": @acoustic_model,
|
335
|
+
"status": Transcripts::TRANSCRIPT_STATUS[@status] || @status,
|
336
|
+
"language_code": Transcripts::TRANSCRIPT_LANGUAGE_CODE[@language_code] || @language_code,
|
337
|
+
"audio_url": @audio_url,
|
338
|
+
"text": @text,
|
339
|
+
"words": @words,
|
340
|
+
"utterances": @utterances,
|
341
|
+
"confidence": @confidence,
|
342
|
+
"audio_duration": @audio_duration,
|
343
|
+
"punctuate": @punctuate,
|
344
|
+
"format_text": @format_text,
|
345
|
+
"dual_channel": @dual_channel,
|
346
|
+
"webhook_url": @webhook_url,
|
347
|
+
"webhook_status_code": @webhook_status_code,
|
348
|
+
"webhook_auth": @webhook_auth,
|
349
|
+
"webhook_auth_header_name": @webhook_auth_header_name,
|
350
|
+
"speed_boost": @speed_boost,
|
351
|
+
"auto_highlights": @auto_highlights,
|
352
|
+
"auto_highlights_result": @auto_highlights_result,
|
353
|
+
"audio_start_from": @audio_start_from,
|
354
|
+
"audio_end_at": @audio_end_at,
|
355
|
+
"word_boost": @word_boost,
|
356
|
+
"boost_param": @boost_param,
|
357
|
+
"filter_profanity": @filter_profanity,
|
358
|
+
"redact_pii": @redact_pii,
|
359
|
+
"redact_pii_audio": @redact_pii_audio,
|
360
|
+
"redact_pii_audio_quality": Transcripts::REDACT_PII_AUDIO_QUALITY[@redact_pii_audio_quality] || @redact_pii_audio_quality,
|
361
|
+
"redact_pii_policies": @redact_pii_policies,
|
362
|
+
"redact_pii_sub": Transcripts::SUBSTITUTION_POLICY[@redact_pii_sub] || @redact_pii_sub,
|
363
|
+
"speaker_labels": @speaker_labels,
|
364
|
+
"speakers_expected": @speakers_expected,
|
365
|
+
"content_safety": @content_safety,
|
366
|
+
"content_safety_labels": @content_safety_labels,
|
367
|
+
"iab_categories": @iab_categories,
|
368
|
+
"iab_categories_result": @iab_categories_result,
|
369
|
+
"language_detection": @language_detection,
|
370
|
+
"custom_spelling": @custom_spelling,
|
371
|
+
"auto_chapters": @auto_chapters,
|
372
|
+
"chapters": @chapters,
|
373
|
+
"summarization": @summarization,
|
374
|
+
"summary_type": @summary_type,
|
375
|
+
"summary_model": @summary_model,
|
376
|
+
"summary": @summary,
|
377
|
+
"custom_topics": @custom_topics,
|
378
|
+
"topics": @topics,
|
379
|
+
"disfluencies": @disfluencies,
|
380
|
+
"sentiment_analysis": @sentiment_analysis,
|
381
|
+
"sentiment_analysis_results": @sentiment_analysis_results,
|
382
|
+
"entity_detection": @entity_detection,
|
383
|
+
"entities": @entities,
|
384
|
+
"speech_threshold": @speech_threshold,
|
385
|
+
"throttled": @throttled,
|
386
|
+
"error": @error
|
387
|
+
}.to_json
|
388
|
+
end
|
389
|
+
|
390
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
|
391
|
+
#
|
392
|
+
# @param obj [Object]
|
393
|
+
# @return [Void]
|
394
|
+
def self.validate_raw(obj:)
|
395
|
+
obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
|
396
|
+
obj.speech_model&.is_a?(String) != false || raise("Passed value for field obj.speech_model is not the expected type, validation failed.")
|
397
|
+
obj.language_model.is_a?(String) != false || raise("Passed value for field obj.language_model is not the expected type, validation failed.")
|
398
|
+
obj.acoustic_model.is_a?(String) != false || raise("Passed value for field obj.acoustic_model is not the expected type, validation failed.")
|
399
|
+
obj.status.is_a?(Transcripts::TRANSCRIPT_STATUS) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
|
400
|
+
obj.language_code&.is_a?(Transcripts::TRANSCRIPT_LANGUAGE_CODE) != false || raise("Passed value for field obj.language_code is not the expected type, validation failed.")
|
401
|
+
obj.audio_url.is_a?(String) != false || raise("Passed value for field obj.audio_url is not the expected type, validation failed.")
|
402
|
+
obj.text&.is_a?(String) != false || raise("Passed value for field obj.text is not the expected type, validation failed.")
|
403
|
+
obj.words&.is_a?(Array) != false || raise("Passed value for field obj.words is not the expected type, validation failed.")
|
404
|
+
obj.utterances&.is_a?(Array) != false || raise("Passed value for field obj.utterances is not the expected type, validation failed.")
|
405
|
+
obj.confidence&.is_a?(Float) != false || raise("Passed value for field obj.confidence is not the expected type, validation failed.")
|
406
|
+
obj.audio_duration&.is_a?(Float) != false || raise("Passed value for field obj.audio_duration is not the expected type, validation failed.")
|
407
|
+
obj.punctuate&.is_a?(Boolean) != false || raise("Passed value for field obj.punctuate is not the expected type, validation failed.")
|
408
|
+
obj.format_text&.is_a?(Boolean) != false || raise("Passed value for field obj.format_text is not the expected type, validation failed.")
|
409
|
+
obj.dual_channel&.is_a?(Boolean) != false || raise("Passed value for field obj.dual_channel is not the expected type, validation failed.")
|
410
|
+
obj.webhook_url&.is_a?(String) != false || raise("Passed value for field obj.webhook_url is not the expected type, validation failed.")
|
411
|
+
obj.webhook_status_code&.is_a?(Integer) != false || raise("Passed value for field obj.webhook_status_code is not the expected type, validation failed.")
|
412
|
+
obj.webhook_auth.is_a?(Boolean) != false || raise("Passed value for field obj.webhook_auth is not the expected type, validation failed.")
|
413
|
+
obj.webhook_auth_header_name&.is_a?(String) != false || raise("Passed value for field obj.webhook_auth_header_name is not the expected type, validation failed.")
|
414
|
+
obj.speed_boost&.is_a?(Boolean) != false || raise("Passed value for field obj.speed_boost is not the expected type, validation failed.")
|
415
|
+
obj.auto_highlights.is_a?(Boolean) != false || raise("Passed value for field obj.auto_highlights is not the expected type, validation failed.")
|
416
|
+
obj.auto_highlights_result.nil? || Transcripts::AutoHighlightsResult.validate_raw(obj: obj.auto_highlights_result)
|
417
|
+
obj.audio_start_from&.is_a?(Integer) != false || raise("Passed value for field obj.audio_start_from is not the expected type, validation failed.")
|
418
|
+
obj.audio_end_at&.is_a?(Integer) != false || raise("Passed value for field obj.audio_end_at is not the expected type, validation failed.")
|
419
|
+
obj.word_boost&.is_a?(Array) != false || raise("Passed value for field obj.word_boost is not the expected type, validation failed.")
|
420
|
+
obj.boost_param&.is_a?(String) != false || raise("Passed value for field obj.boost_param is not the expected type, validation failed.")
|
421
|
+
obj.filter_profanity&.is_a?(Boolean) != false || raise("Passed value for field obj.filter_profanity is not the expected type, validation failed.")
|
422
|
+
obj.redact_pii.is_a?(Boolean) != false || raise("Passed value for field obj.redact_pii is not the expected type, validation failed.")
|
423
|
+
obj.redact_pii_audio&.is_a?(Boolean) != false || raise("Passed value for field obj.redact_pii_audio is not the expected type, validation failed.")
|
424
|
+
obj.redact_pii_audio_quality&.is_a?(Transcripts::REDACT_PII_AUDIO_QUALITY) != false || raise("Passed value for field obj.redact_pii_audio_quality is not the expected type, validation failed.")
|
425
|
+
obj.redact_pii_policies&.is_a?(Array) != false || raise("Passed value for field obj.redact_pii_policies is not the expected type, validation failed.")
|
426
|
+
obj.redact_pii_sub&.is_a?(Transcripts::SUBSTITUTION_POLICY) != false || raise("Passed value for field obj.redact_pii_sub is not the expected type, validation failed.")
|
427
|
+
obj.speaker_labels&.is_a?(Boolean) != false || raise("Passed value for field obj.speaker_labels is not the expected type, validation failed.")
|
428
|
+
obj.speakers_expected&.is_a?(Integer) != false || raise("Passed value for field obj.speakers_expected is not the expected type, validation failed.")
|
429
|
+
obj.content_safety&.is_a?(Boolean) != false || raise("Passed value for field obj.content_safety is not the expected type, validation failed.")
|
430
|
+
obj.content_safety_labels.nil? || Transcripts::ContentSafetyLabelsResult.validate_raw(obj: obj.content_safety_labels)
|
431
|
+
obj.iab_categories&.is_a?(Boolean) != false || raise("Passed value for field obj.iab_categories is not the expected type, validation failed.")
|
432
|
+
obj.iab_categories_result.nil? || Transcripts::TopicDetectionModelResult.validate_raw(obj: obj.iab_categories_result)
|
433
|
+
obj.language_detection&.is_a?(Boolean) != false || raise("Passed value for field obj.language_detection is not the expected type, validation failed.")
|
434
|
+
obj.custom_spelling&.is_a?(Array) != false || raise("Passed value for field obj.custom_spelling is not the expected type, validation failed.")
|
435
|
+
obj.auto_chapters&.is_a?(Boolean) != false || raise("Passed value for field obj.auto_chapters is not the expected type, validation failed.")
|
436
|
+
obj.chapters&.is_a?(Array) != false || raise("Passed value for field obj.chapters is not the expected type, validation failed.")
|
437
|
+
obj.summarization.is_a?(Boolean) != false || raise("Passed value for field obj.summarization is not the expected type, validation failed.")
|
438
|
+
obj.summary_type&.is_a?(String) != false || raise("Passed value for field obj.summary_type is not the expected type, validation failed.")
|
439
|
+
obj.summary_model&.is_a?(String) != false || raise("Passed value for field obj.summary_model is not the expected type, validation failed.")
|
440
|
+
obj.summary&.is_a?(String) != false || raise("Passed value for field obj.summary is not the expected type, validation failed.")
|
441
|
+
obj.custom_topics&.is_a?(Boolean) != false || raise("Passed value for field obj.custom_topics is not the expected type, validation failed.")
|
442
|
+
obj.topics&.is_a?(Array) != false || raise("Passed value for field obj.topics is not the expected type, validation failed.")
|
443
|
+
obj.disfluencies&.is_a?(Boolean) != false || raise("Passed value for field obj.disfluencies is not the expected type, validation failed.")
|
444
|
+
obj.sentiment_analysis&.is_a?(Boolean) != false || raise("Passed value for field obj.sentiment_analysis is not the expected type, validation failed.")
|
445
|
+
obj.sentiment_analysis_results&.is_a?(Array) != false || raise("Passed value for field obj.sentiment_analysis_results is not the expected type, validation failed.")
|
446
|
+
obj.entity_detection&.is_a?(Boolean) != false || raise("Passed value for field obj.entity_detection is not the expected type, validation failed.")
|
447
|
+
obj.entities&.is_a?(Array) != false || raise("Passed value for field obj.entities is not the expected type, validation failed.")
|
448
|
+
obj.speech_threshold&.is_a?(Float) != false || raise("Passed value for field obj.speech_threshold is not the expected type, validation failed.")
|
449
|
+
obj.throttled&.is_a?(Boolean) != false || raise("Passed value for field obj.throttled is not the expected type, validation failed.")
|
450
|
+
obj.error&.is_a?(String) != false || raise("Passed value for field obj.error is not the expected type, validation failed.")
|
451
|
+
end
|
452
|
+
end
|
453
|
+
end
|
454
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "json"
|
4
|
+
|
5
|
+
module AssemblyAI
|
6
|
+
class Transcripts
|
7
|
+
# Object containing words or phrases to replace, and the word or phrase to replace with
|
8
|
+
class TranscriptCustomSpelling
|
9
|
+
attr_reader :from, :to, :additional_properties
|
10
|
+
|
11
|
+
# @param from [Array<String>] Words or phrases to replace
|
12
|
+
# @param to [String] Word or phrase to replace with
|
13
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
14
|
+
# @return [Transcripts::TranscriptCustomSpelling]
|
15
|
+
def initialize(from:, to:, additional_properties: nil)
|
16
|
+
# @type [Array<String>] Words or phrases to replace
|
17
|
+
@from = from
|
18
|
+
# @type [String] Word or phrase to replace with
|
19
|
+
@to = to
|
20
|
+
# @type [OpenStruct] Additional properties unmapped to the current class definition
|
21
|
+
@additional_properties = additional_properties
|
22
|
+
end
|
23
|
+
|
24
|
+
# Deserialize a JSON object to an instance of TranscriptCustomSpelling
|
25
|
+
#
|
26
|
+
# @param json_object [JSON]
|
27
|
+
# @return [Transcripts::TranscriptCustomSpelling]
|
28
|
+
def self.from_json(json_object:)
|
29
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
30
|
+
JSON.parse(json_object)
|
31
|
+
from = struct.from
|
32
|
+
to = struct.to
|
33
|
+
new(from: from, to: to, additional_properties: struct)
|
34
|
+
end
|
35
|
+
|
36
|
+
# Serialize an instance of TranscriptCustomSpelling to a JSON object
|
37
|
+
#
|
38
|
+
# @return [JSON]
|
39
|
+
def to_json(*_args)
|
40
|
+
{ "from": @from, "to": @to }.to_json
|
41
|
+
end
|
42
|
+
|
43
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
|
44
|
+
#
|
45
|
+
# @param obj [Object]
|
46
|
+
# @return [Void]
|
47
|
+
def self.validate_raw(obj:)
|
48
|
+
obj.from.is_a?(Array) != false || raise("Passed value for field obj.from is not the expected type, validation failed.")
|
49
|
+
obj.to.is_a?(String) != false || raise("Passed value for field obj.to is not the expected type, validation failed.")
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AssemblyAI
|
4
|
+
class Transcripts
|
5
|
+
# @type [TRANSCRIPT_LANGUAGE_CODE]
|
6
|
+
TRANSCRIPT_LANGUAGE_CODE = {
|
7
|
+
en: "en",
|
8
|
+
en_au: "en_au",
|
9
|
+
en_uk: "en_uk",
|
10
|
+
en_us: "en_us",
|
11
|
+
es: "es",
|
12
|
+
fr: "fr",
|
13
|
+
de: "de",
|
14
|
+
it: "it",
|
15
|
+
pt: "pt",
|
16
|
+
nl: "nl",
|
17
|
+
hi: "hi",
|
18
|
+
ja: "ja",
|
19
|
+
zh: "zh",
|
20
|
+
fi: "fi",
|
21
|
+
ko: "ko",
|
22
|
+
pl: "pl",
|
23
|
+
ru: "ru",
|
24
|
+
tr: "tr",
|
25
|
+
uk: "uk",
|
26
|
+
vi: "vi"
|
27
|
+
}.freeze
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "page_details"
|
4
|
+
require_relative "transcript_list_item"
|
5
|
+
require "json"
|
6
|
+
|
7
|
+
module AssemblyAI
|
8
|
+
class Transcripts
|
9
|
+
class TranscriptList
|
10
|
+
attr_reader :page_details, :transcripts, :additional_properties
|
11
|
+
|
12
|
+
# @param page_details [Transcripts::PageDetails]
|
13
|
+
# @param transcripts [Array<Transcripts::TranscriptListItem>]
|
14
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
15
|
+
# @return [Transcripts::TranscriptList]
|
16
|
+
def initialize(page_details:, transcripts:, additional_properties: nil)
|
17
|
+
# @type [Transcripts::PageDetails]
|
18
|
+
@page_details = page_details
|
19
|
+
# @type [Array<Transcripts::TranscriptListItem>]
|
20
|
+
@transcripts = transcripts
|
21
|
+
# @type [OpenStruct] Additional properties unmapped to the current class definition
|
22
|
+
@additional_properties = additional_properties
|
23
|
+
end
|
24
|
+
|
25
|
+
# Deserialize a JSON object to an instance of TranscriptList
|
26
|
+
#
|
27
|
+
# @param json_object [JSON]
|
28
|
+
# @return [Transcripts::TranscriptList]
|
29
|
+
def self.from_json(json_object:)
|
30
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
31
|
+
parsed_json = JSON.parse(json_object)
|
32
|
+
if parsed_json["page_details"].nil?
|
33
|
+
page_details = nil
|
34
|
+
else
|
35
|
+
page_details = parsed_json["page_details"].to_json
|
36
|
+
page_details = Transcripts::PageDetails.from_json(json_object: page_details)
|
37
|
+
end
|
38
|
+
transcripts = parsed_json["transcripts"]&.map do |v|
|
39
|
+
v = v.to_json
|
40
|
+
Transcripts::TranscriptListItem.from_json(json_object: v)
|
41
|
+
end
|
42
|
+
new(page_details: page_details, transcripts: transcripts, additional_properties: struct)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Serialize an instance of TranscriptList to a JSON object
|
46
|
+
#
|
47
|
+
# @return [JSON]
|
48
|
+
def to_json(*_args)
|
49
|
+
{ "page_details": @page_details, "transcripts": @transcripts }.to_json
|
50
|
+
end
|
51
|
+
|
52
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
|
53
|
+
#
|
54
|
+
# @param obj [Object]
|
55
|
+
# @return [Void]
|
56
|
+
def self.validate_raw(obj:)
|
57
|
+
Transcripts::PageDetails.validate_raw(obj: obj.page_details)
|
58
|
+
obj.transcripts.is_a?(Array) != false || raise("Passed value for field obj.transcripts is not the expected type, validation failed.")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|