Class: AssemblyAI::TranscriptsClient

Inherits:
Object
  • Object
show all
Defined in:
lib/assemblyai/transcripts/polling_client.rb,
lib/assemblyai/transcripts/client.rb,
lib/assemblyai/transcripts/list_by_url_client.rb

Overview

:nodoc:

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request_client:) ⇒ AssemblyAI::TranscriptsClient

Parameters:



30
31
32
# File 'lib/assemblyai/transcripts/client.rb', line 30

def initialize(request_client:)
  @request_client = request_client
end

Instance Attribute Details

#request_clientAssemblyAI::RequestClient (readonly)



26
27
28
# File 'lib/assemblyai/transcripts/client.rb', line 26

def request_client
  @request_client
end

Instance Method Details

#delete(transcript_id:, request_options: nil) ⇒ AssemblyAI::Transcripts::Transcript

Remove the data from the transcript and mark it as deleted.

Examples:

api = AssemblyAI::Client.new(
  environment: AssemblyAI::Environment::DEFAULT,
  base_url: "https://api.example.com",
  api_key: "YOUR_API_KEY"
)
api.transcripts.delete(transcript_id: "{transcript_id}")

Parameters:

Returns:



252
253
254
255
256
257
258
259
260
# File 'lib/assemblyai/transcripts/client.rb', line 252

def delete(transcript_id:, request_options: nil)
  response = @request_client.conn.delete do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.url "#{@request_client.get_url(request_options: request_options)}/v2/transcript/#{transcript_id}"
  end
  AssemblyAI::Transcripts::Transcript.from_json(json_object: response.body)
end

#get(transcript_id:, request_options: nil) ⇒ AssemblyAI::Transcripts::Transcript

Get the transcript resource. The transcript is ready when the “status” is

"completed".

Examples:

api = AssemblyAI::Client.new(
  environment: AssemblyAI::Environment::DEFAULT,
  base_url: "https://api.example.com",
  api_key: "YOUR_API_KEY"
)
api.transcripts.get(transcript_id: "transcript_id")

Parameters:

Returns:



230
231
232
233
234
235
236
237
238
# File 'lib/assemblyai/transcripts/client.rb', line 230

def get(transcript_id:, request_options: nil)
  response = @request_client.conn.get do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.url "#{@request_client.get_url(request_options: request_options)}/v2/transcript/#{transcript_id}"
  end
  AssemblyAI::Transcripts::Transcript.from_json(json_object: response.body)
end

#get_paragraphs(transcript_id:, request_options: nil) ⇒ AssemblyAI::Transcripts::ParagraphsResponse

Get the transcript split by paragraphs. The API will attempt to semantically

segment your transcript into paragraphs to create more reader-friendly
transcripts.

Examples:

api = AssemblyAI::Client.new(
  environment: AssemblyAI::Environment::DEFAULT,
  base_url: "https://api.example.com",
  api_key: "YOUR_API_KEY"
)
api.transcripts.get_paragraphs(transcript_id: "transcript_id")

Parameters:

Returns:



322
323
324
325
326
327
328
329
330
# File 'lib/assemblyai/transcripts/client.rb', line 322

def get_paragraphs(transcript_id:, request_options: nil)
  response = @request_client.conn.get do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.url "#{@request_client.get_url(request_options: request_options)}/v2/transcript/#{transcript_id}/paragraphs"
  end
  AssemblyAI::Transcripts::ParagraphsResponse.from_json(json_object: response.body)
end

#get_redacted_audio(transcript_id:, request_options: nil) ⇒ AssemblyAI::Transcripts::RedactedAudioResponse

Retrieve the redacted audio object containing the status and URL to the redacted

audio.

Examples:

api = AssemblyAI::Client.new(
  environment: AssemblyAI::Environment::DEFAULT,
  base_url: "https://api.example.com",
  api_key: "YOUR_API_KEY"
)
api.transcripts.get_redacted_audio(transcript_id: "transcript_id")

Parameters:

Returns:



363
364
365
366
367
368
369
370
371
# File 'lib/assemblyai/transcripts/client.rb', line 363

def get_redacted_audio(transcript_id:, request_options: nil)
  response = @request_client.conn.get do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.url "#{@request_client.get_url(request_options: request_options)}/v2/transcript/#{transcript_id}/redacted-audio"
  end
  AssemblyAI::Transcripts::RedactedAudioResponse.from_json(json_object: response.body)
end

#get_sentences(transcript_id:, request_options: nil) ⇒ AssemblyAI::Transcripts::SentencesResponse

Get the transcript split by sentences. The API will attempt to semantically

segment the transcript into sentences to create more reader-friendly
transcripts.

Examples:

api = AssemblyAI::Client.new(
  environment: AssemblyAI::Environment::DEFAULT,
  base_url: "https://api.example.com",
  api_key: "YOUR_API_KEY"
)
api.transcripts.get_sentences(transcript_id: "transcript_id")

Parameters:

Returns:



298
299
300
301
302
303
304
305
306
# File 'lib/assemblyai/transcripts/client.rb', line 298

def get_sentences(transcript_id:, request_options: nil)
  response = @request_client.conn.get do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.url "#{@request_client.get_url(request_options: request_options)}/v2/transcript/#{transcript_id}/sentences"
  end
  AssemblyAI::Transcripts::SentencesResponse.from_json(json_object: response.body)
end

#get_subtitles(transcript_id:, subtitle_format:, chars_per_caption: nil, request_options: nil) ⇒ String

Export your transcript in SRT or VTT format to use with a video player for

subtitles and closed captions.

Parameters:

Returns:

  • (String)


270
271
272
273
274
275
276
277
278
279
280
281
282
# File 'lib/assemblyai/transcripts/client.rb', line 270

def get_subtitles(transcript_id:, subtitle_format:, chars_per_caption: nil, request_options: nil)
  response = @request_client.conn.get do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.params = {
      **(request_options&.additional_query_parameters || {}),
      "chars_per_caption": chars_per_caption
    }.compact
    req.url "#{@request_client.get_url(request_options: request_options)}/v2/transcript/#{transcript_id}/#{subtitle_format}"
  end
  response.body
end

#list(limit: nil, status: nil, created_on: nil, before_id: nil, after_id: nil, throttled_only: nil, request_options: nil) ⇒ AssemblyAI::Transcripts::TranscriptList

Retrieve a list of transcripts you created.

Transcripts are sorted from newest to oldest. The previous URL always points to
a page with older transcripts.

Examples:

api = AssemblyAI::Client.new(
  environment: AssemblyAI::Environment::DEFAULT,
  base_url: "https://api.example.com",
  api_key: "YOUR_API_KEY"
)
api.transcripts.list

Parameters:

  • limit (Integer) (defaults to: nil)

    Maximum amount of transcripts to retrieve

  • status (AssemblyAI::Transcripts::TranscriptStatus) (defaults to: nil)

    Filter by transcript status

  • created_on (String) (defaults to: nil)

    Only get transcripts created on this date

  • before_id (String) (defaults to: nil)

    Get transcripts that were created before this transcript ID

  • after_id (String) (defaults to: nil)

    Get transcripts that were created after this transcript ID

  • throttled_only (Boolean) (defaults to: nil)

    Only get throttled transcripts, overrides the status filter

  • request_options (AssemblyAI::RequestOptions) (defaults to: nil)

Returns:



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/assemblyai/transcripts/client.rb', line 53

def list(limit: nil, status: nil, created_on: nil, before_id: nil, after_id: nil, throttled_only: nil,
         request_options: nil)
  response = @request_client.conn.get do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.params = {
      **(request_options&.additional_query_parameters || {}),
      "limit": limit,
      "status": status,
      "created_on": created_on,
      "before_id": before_id,
      "after_id": after_id,
      "throttled_only": throttled_only
    }.compact
    req.url "#{@request_client.get_url(request_options: request_options)}/v2/transcript"
  end
  AssemblyAI::Transcripts::TranscriptList.from_json(json_object: response.body)
end

#list_by_url(url: nil, request_options: nil) ⇒ Transcripts::TranscriptList

Retrieve a list of transcripts you created, this is used for pagination to easily retrieve the next page of transcripts

Examples:

Retrieve the next page of results

client = AssemblyAI::Client.new(api_key: "YOUR_API_KEY")
transcript_list = client.transcripts.list(limit: 1)
client.transcripts.list_by_url(url: transcript_list.page_details.next_url)

Parameters:

  • url (String) (defaults to: nil)

    The URL to retrieve the transcript list from

  • request_options (RequestOptions) (defaults to: nil)

Returns:



20
21
22
23
24
25
26
27
28
29
# File 'lib/assemblyai/transcripts/list_by_url_client.rb', line 20

def list_by_url(url: nil, request_options: nil)
  url = "#{@request_client.get_url(request_options: request_options)}/v2/transcript" if url.nil?
  response = @request_client.conn.get do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.url url
  end
  Transcripts::TranscriptList.from_json(json_object: response.body)
end

#submit(audio_url:, language_code: nil, language_detection: nil, language_confidence_threshold: nil, speech_model: nil, punctuate: nil, format_text: nil, disfluencies: nil, multichannel: nil, dual_channel: nil, webhook_url: nil, webhook_auth_header_name: nil, webhook_auth_header_value: nil, auto_highlights: nil, audio_start_from: nil, audio_end_at: nil, word_boost: nil, boost_param: nil, filter_profanity: nil, redact_pii: 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_confidence: nil, iab_categories: nil, custom_spelling: nil, sentiment_analysis: nil, auto_chapters: nil, entity_detection: nil, speech_threshold: nil, summarization: nil, summary_model: nil, summary_type: nil, custom_topics: nil, topics: nil, request_options: nil) ⇒ AssemblyAI::Transcripts::Transcript

Create a transcript from a media file that is accessible via a URL.

Examples:

api = AssemblyAI::Client.new(
  environment: AssemblyAI::Environment::DEFAULT,
  base_url: "https://api.example.com",
  api_key: "YOUR_API_KEY"
)
api.transcripts.submit(audio_url: "https://assembly.ai/wildfires.mp3")

Parameters:

  • language_code (AssemblyAI::Transcripts::TranscriptLanguageCode) (defaults to: nil)
  • language_detection (Boolean) (defaults to: nil)

    Enable [Automatic language www.assemblyai.com/docs/models/speech-recognition#automatic-language-detection), either true or false.

  • language_confidence_threshold (Float) (defaults to: nil)

    The confidence threshold for the automatically detected language. An error will be returned if the language confidence is below this threshold. Defaults to 0.

  • speech_model (AssemblyAI::Transcripts::SpeechModel) (defaults to: nil)
  • punctuate (Boolean) (defaults to: nil)

    Enable Automatic Punctuation, can be true or false

  • format_text (Boolean) (defaults to: nil)

    Enable Text Formatting, can be true or false

  • disfluencies (Boolean) (defaults to: nil)

    Transcribe Filler Words, like “umm”, in your media file; can be true or false

  • multichannel (Boolean) (defaults to: nil)
  • dual_channel (Boolean) (defaults to: nil)

    Enable [Dual ://www.assemblyai.com/docs/models/speech-recognition#dual-channel-transcription) transcription, can be true or false.

  • webhook_url (String) (defaults to: nil)

    The URL to which we send webhook requests. We sends two different types of webhook requests. One request when a transcript is completed or failed, and one request when the redacted audio is ready if redact_pii_audio is enabled.

  • webhook_auth_header_name (String) (defaults to: nil)

    The header name to be sent with the transcript completed or failed webhook requests

  • webhook_auth_header_value (String) (defaults to: nil)

    The header value to send back with the transcript completed or failed webhook requests for added security

  • auto_highlights (Boolean) (defaults to: nil)

    Enable Key Phrases, either true or false

  • audio_start_from (Integer) (defaults to: nil)

    The point in time, in milliseconds, to begin transcribing in your media file

  • audio_end_at (Integer) (defaults to: nil)

    The point in time, in milliseconds, to stop transcribing in your media file

  • word_boost (Array<String>) (defaults to: nil)

    The list of custom vocabulary to boost transcription probability for

  • boost_param (AssemblyAI::Transcripts::TranscriptBoostParam) (defaults to: nil)

    How much to boost specified words

  • filter_profanity (Boolean) (defaults to: nil)

    Filter profanity from the transcribed text, can be true or false

  • redact_pii (Boolean) (defaults to: nil)

    Redact PII from the transcribed text using the Redact PII model, can be true or false

  • redact_pii_audio (Boolean) (defaults to: nil)

    Generate a copy of the original media file with spoken PII “beeped” out, can be true or false. See [PII redaction](www.assemblyai.com/docs/models/pii-redaction) for more details.

  • redact_pii_audio_quality (AssemblyAI::Transcripts::RedactPiiAudioQuality) (defaults to: nil)

    Controls the filetype of the audio created by redact_pii_audio. Currently supports mp3 (default) and wav. See [PII redaction](www.assemblyai.com/docs/models/pii-redaction) for more details.

  • redact_pii_policies (Array<AssemblyAI::Transcripts::PiiPolicy>) (defaults to: nil)

    The list of PII Redaction policies to enable. See [PII redaction](www.assemblyai.com/docs/models/pii-redaction) for more details.

  • redact_pii_sub (AssemblyAI::Transcripts::SubstitutionPolicy) (defaults to: nil)
  • speaker_labels (Boolean) (defaults to: nil)

    Enable [Speaker diarization](www.assemblyai.com/docs/models/speaker-diarization), can be true or false

  • speakers_expected (Integer) (defaults to: nil)

    Tells the speaker label model how many speakers it should attempt to identify, up to 10. See [Speaker diarization](www.assemblyai.com/docs/models/speaker-diarization) for more details.

  • content_safety (Boolean) (defaults to: nil)

    Enable [Content Moderation](www.assemblyai.com/docs/models/content-moderation), can be true or false

  • content_safety_confidence (Integer) (defaults to: nil)

    The confidence threshold for the Content Moderation model. Values must be between 25 and 100.

  • iab_categories (Boolean) (defaults to: nil)

    Enable [Topic Detection](www.assemblyai.com/docs/models/topic-detection), can be true or false

  • custom_spelling (Array<Hash>) (defaults to: nil)

    Customize how words are spelled and formatted using to and from valuesRequest of type Array<AssemblyAI::Transcripts::TranscriptCustomSpelling>, as a Hash

    • :from (Array<String>)

    • :to (String)

  • sentiment_analysis (Boolean) (defaults to: nil)

    Enable [Sentiment Analysis](www.assemblyai.com/docs/models/sentiment-analysis), can be true or false

  • auto_chapters (Boolean) (defaults to: nil)

    Enable [Auto Chapters](www.assemblyai.com/docs/models/auto-chapters), can be true or false

  • entity_detection (Boolean) (defaults to: nil)

    Enable [Entity Detection](www.assemblyai.com/docs/models/entity-detection), can be true or false

  • speech_threshold (Float) (defaults to: nil)

    Reject audio files that contain less than this fraction of speech. Valid values are in the range [0, 1] inclusive.

  • summarization (Boolean) (defaults to: nil)

    Enable [Summarization](www.assemblyai.com/docs/models/summarization), can be true or false

  • summary_model (AssemblyAI::Transcripts::SummaryModel) (defaults to: nil)

    The model to summarize the transcript

  • summary_type (AssemblyAI::Transcripts::SummaryType) (defaults to: nil)

    The type of summary

  • custom_topics (Boolean) (defaults to: nil)

    Enable custom topics, either true or false

  • topics (Array<String>) (defaults to: nil)

    The list of custom topics

  • audio_url (String)

    The URL of the audio or video file to transcribe.

  • request_options (AssemblyAI::RequestOptions) (defaults to: nil)

Returns:



164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
# File 'lib/assemblyai/transcripts/client.rb', line 164

def submit(audio_url:, language_code: nil, language_detection: nil, language_confidence_threshold: nil, speech_model: nil,
           punctuate: nil, format_text: nil, disfluencies: nil, multichannel: nil, dual_channel: nil, webhook_url: nil, webhook_auth_header_name: nil, webhook_auth_header_value: nil, auto_highlights: nil, audio_start_from: nil, audio_end_at: nil, word_boost: nil, boost_param: nil, filter_profanity: nil, redact_pii: 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_confidence: nil, iab_categories: nil, custom_spelling: nil, sentiment_analysis: nil, auto_chapters: nil, entity_detection: nil, speech_threshold: nil, summarization: nil, summary_model: nil, summary_type: nil, custom_topics: nil, topics: nil, request_options: nil)
  response = @request_client.conn.post do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.body = {
      **(request_options&.additional_body_parameters || {}),
      language_code: language_code,
      language_detection: language_detection,
      language_confidence_threshold: language_confidence_threshold,
      speech_model: speech_model,
      punctuate: punctuate,
      format_text: format_text,
      disfluencies: disfluencies,
      multichannel: multichannel,
      dual_channel: dual_channel,
      webhook_url: webhook_url,
      webhook_auth_header_name: webhook_auth_header_name,
      webhook_auth_header_value: webhook_auth_header_value,
      auto_highlights: auto_highlights,
      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_confidence: content_safety_confidence,
      iab_categories: iab_categories,
      custom_spelling: custom_spelling,
      sentiment_analysis: sentiment_analysis,
      auto_chapters: auto_chapters,
      entity_detection: entity_detection,
      speech_threshold: speech_threshold,
      summarization: summarization,
      summary_model: summary_model,
      summary_type: summary_type,
      custom_topics: custom_topics,
      topics: topics,
      audio_url: audio_url
    }.compact
    req.url "#{@request_client.get_url(request_options: request_options)}/v2/transcript"
  end
  AssemblyAI::Transcripts::Transcript.from_json(json_object: response.body)
end

#transcribe(audio_url:, language_code: nil, language_detection: nil, language_confidence_threshold: nil, speech_model: nil, punctuate: nil, format_text: nil, disfluencies: nil, multichannel: nil, dual_channel: nil, webhook_url: nil, webhook_auth_header_name: nil, webhook_auth_header_value: nil, auto_highlights: nil, audio_start_from: nil, audio_end_at: nil, word_boost: nil, boost_param: nil, filter_profanity: nil, redact_pii: 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_confidence: nil, iab_categories: nil, custom_spelling: nil, sentiment_analysis: nil, auto_chapters: nil, entity_detection: nil, speech_threshold: nil, summarization: nil, summary_model: nil, summary_type: nil, custom_topics: nil, topics: nil, request_options: nil, polling_options: Transcripts::PollingOptions.new) ⇒ Transcripts::Transcript

Create a transcript from an audio or video file that is accessible via a URL. .transcribe polls for completion of the transcription, while the .submit function does not.

Parameters:

  • language_code (AssemblyAI::Transcripts::TranscriptLanguageCode) (defaults to: nil)
  • language_detection (Boolean) (defaults to: nil)

    Enable [Automatic language www.assemblyai.com/docs/models/speech-recognition#automatic-language-detection), either true or false.

  • language_confidence_threshold (Float) (defaults to: nil)

    The confidence threshold for the automatically detected language. An error will be returned if the language confidence is below this threshold. Defaults to 0.

  • speech_model (AssemblyAI::Transcripts::SpeechModel) (defaults to: nil)
  • punctuate (Boolean) (defaults to: nil)

    Enable Automatic Punctuation, can be true or false

  • format_text (Boolean) (defaults to: nil)

    Enable Text Formatting, can be true or false

  • disfluencies (Boolean) (defaults to: nil)

    Transcribe Filler Words, like “umm”, in your media file; can be true or false

  • multichannel (Boolean) (defaults to: nil)
  • dual_channel (Boolean) (defaults to: nil)

    Enable [Dual ://www.assemblyai.com/docs/models/speech-recognition#dual-channel-transcription) transcription, can be true or false.

  • webhook_url (String) (defaults to: nil)

    The URL to which we send webhook requests. We sends two different types of webhook requests. One request when a transcript is completed or failed, and one request when the redacted audio is ready if redact_pii_audio is enabled.

  • webhook_auth_header_name (String) (defaults to: nil)

    The header name to be sent with the transcript completed or failed webhook requests

  • webhook_auth_header_value (String) (defaults to: nil)

    The header value to send back with the transcript completed or failed webhook requests for added security

  • auto_highlights (Boolean) (defaults to: nil)

    Enable Key Phrases, either true or false

  • audio_start_from (Integer) (defaults to: nil)

    The point in time, in milliseconds, to begin transcribing in your media file

  • audio_end_at (Integer) (defaults to: nil)

    The point in time, in milliseconds, to stop transcribing in your media file

  • word_boost (Array<String>) (defaults to: nil)

    The list of custom vocabulary to boost transcription probability for

  • boost_param (AssemblyAI::Transcripts::TranscriptBoostParam) (defaults to: nil)

    How much to boost specified words

  • filter_profanity (Boolean) (defaults to: nil)

    Filter profanity from the transcribed text, can be true or false

  • redact_pii (Boolean) (defaults to: nil)

    Redact PII from the transcribed text using the Redact PII model, can be true or false

  • redact_pii_audio (Boolean) (defaults to: nil)

    Generate a copy of the original media file with spoken PII “beeped” out, can be true or false. See [PII redaction](www.assemblyai.com/docs/models/pii-redaction) for more details.

  • redact_pii_audio_quality (AssemblyAI::Transcripts::RedactPiiAudioQuality) (defaults to: nil)

    Controls the filetype of the audio created by redact_pii_audio. Currently supports mp3 (default) and wav. See [PII redaction](www.assemblyai.com/docs/models/pii-redaction) for more details.

  • redact_pii_policies (Array<AssemblyAI::Transcripts::PiiPolicy>) (defaults to: nil)

    The list of PII Redaction policies to enable. See [PII redaction](www.assemblyai.com/docs/models/pii-redaction) for more details.

  • redact_pii_sub (AssemblyAI::Transcripts::SubstitutionPolicy) (defaults to: nil)
  • speaker_labels (Boolean) (defaults to: nil)

    Enable [Speaker diarization](www.assemblyai.com/docs/models/speaker-diarization), can be true or false

  • speakers_expected (Integer) (defaults to: nil)

    Tells the speaker label model how many speakers it should attempt to identify, up to 10. See [Speaker diarization](www.assemblyai.com/docs/models/speaker-diarization) for more details.

  • content_safety (Boolean) (defaults to: nil)

    Enable [Content Moderation](www.assemblyai.com/docs/models/content-moderation), can be true or false

  • content_safety_confidence (Integer) (defaults to: nil)

    The confidence threshold for the Content Moderation model. Values must be between 25 and 100.

  • iab_categories (Boolean) (defaults to: nil)

    Enable [Topic Detection](www.assemblyai.com/docs/models/topic-detection), can be true or false

  • custom_spelling (Array<Hash>) (defaults to: nil)

    Customize how words are spelled and formatted using to and from valuesRequest of type Array<AssemblyAI::Transcripts::TranscriptCustomSpelling>, as a Hash

    • :from (Array<String>)

    • :to (String)

  • sentiment_analysis (Boolean) (defaults to: nil)

    Enable [Sentiment Analysis](www.assemblyai.com/docs/models/sentiment-analysis), can be true or false

  • auto_chapters (Boolean) (defaults to: nil)

    Enable [Auto Chapters](www.assemblyai.com/docs/models/auto-chapters), can be true or false

  • entity_detection (Boolean) (defaults to: nil)

    Enable [Entity Detection](www.assemblyai.com/docs/models/entity-detection), can be true or false

  • speech_threshold (Float) (defaults to: nil)

    Reject audio files that contain less than this fraction of speech. Valid values are in the range [0, 1] inclusive.

  • summarization (Boolean) (defaults to: nil)

    Enable [Summarization](www.assemblyai.com/docs/models/summarization), can be true or false

  • summary_model (AssemblyAI::Transcripts::SummaryModel) (defaults to: nil)

    The model to summarize the transcript

  • summary_type (AssemblyAI::Transcripts::SummaryType) (defaults to: nil)

    The type of summary

  • custom_topics (Boolean) (defaults to: nil)

    Enable custom topics, either true or false

  • topics (Array<String>) (defaults to: nil)

    The list of custom topics

  • audio_url (String)

    The URL of the audio or video file to transcribe.

  • request_options (AssemblyAI::RequestOptions) (defaults to: nil)
  • polling_options (Transcripts::PollingOptions) (defaults to: Transcripts::PollingOptions.new)

    Configuration options for polling requests.

Returns:



112
113
114
115
116
117
# File 'lib/assemblyai/transcripts/polling_client.rb', line 112

def transcribe(audio_url:, language_code: nil, language_detection: nil, language_confidence_threshold: nil, speech_model: nil,
               punctuate: nil, format_text: nil, disfluencies: nil, multichannel: nil, dual_channel: nil, webhook_url: nil, webhook_auth_header_name: nil, webhook_auth_header_value: nil, auto_highlights: nil, audio_start_from: nil, audio_end_at: nil, word_boost: nil, boost_param: nil, filter_profanity: nil, redact_pii: 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_confidence: nil, iab_categories: nil, custom_spelling: nil, sentiment_analysis: nil, auto_chapters: nil, entity_detection: nil, speech_threshold: nil, summarization: nil, summary_model: nil, summary_type: nil, custom_topics: nil, topics: nil, request_options: nil, polling_options: Transcripts::PollingOptions.new)
  transcript = submit(audio_url: audio_url, speech_model: speech_model, language_code: language_code, punctuate: punctuate, format_text: format_text, dual_channel: dual_channel,
                      webhook_url: webhook_url, webhook_auth_header_name: webhook_auth_header_name, webhook_auth_header_value: webhook_auth_header_value, auto_highlights: auto_highlights, 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_confidence: content_safety_confidence, iab_categories: iab_categories, language_detection: language_detection, language_confidence_threshold: language_confidence_threshold, custom_spelling: custom_spelling, disfluencies: disfluencies, multichannel: multichannel, sentiment_analysis: sentiment_analysis, auto_chapters: auto_chapters, entity_detection: entity_detection, speech_threshold: speech_threshold, summarization: summarization, summary_model: summary_model, summary_type: summary_type, custom_topics: custom_topics, topics: topics, request_options: request_options)
  wait_until_ready(transcript_id: transcript.id, polling_options: polling_options)
end

#wait_until_ready(transcript_id:, polling_options: Transcripts::PollingOptions.new) ⇒ Transcripts::Transcript

Wait until the transcript is ready. The transcript is ready when the “status” is “completed”.

Parameters:

  • transcript_id (String)

    ID of the transcript

  • polling_options (PollingOptions) (defaults to: Transcripts::PollingOptions.new)

Returns:



124
125
126
127
128
129
130
131
132
133
134
135
136
137
# File 'lib/assemblyai/transcripts/polling_client.rb', line 124

def wait_until_ready(transcript_id:, polling_options: Transcripts::PollingOptions.new)
  start_time = Time.now
  timeout_in_seconds = polling_options.timeout / 1000 if polling_options.timeout.positive?
  loop do
    transcript = get(transcript_id: transcript_id)
    if transcript.status == Transcripts::TranscriptStatus::COMPLETED || transcript.status == Transcripts::TranscriptStatus::ERROR
      return transcript
    elsif polling_options.timeout.positive? && Time.now - start_time > timeout_in_seconds
      raise StandardError, "Polling timeout"
    end

    sleep polling_options.interval / 1000
  end
end

#word_search(transcript_id:, words: nil, request_options: nil) ⇒ AssemblyAI::Transcripts::WordSearchResponse

Search through the transcript for keywords. You can search for individual words,

numbers, or phrases containing up to five words or numbers.

Parameters:

  • transcript_id (String)

    ID of the transcript

  • words (String) (defaults to: nil)

    Keywords to search for

  • request_options (AssemblyAI::RequestOptions) (defaults to: nil)

Returns:



339
340
341
342
343
344
345
346
347
348
# File 'lib/assemblyai/transcripts/client.rb', line 339

def word_search(transcript_id:, words: nil, request_options: nil)
  response = @request_client.conn.get do |req|
    req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
    req.headers["Authorization"] = request_options.api_key unless request_options&.api_key.nil?
    req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
    req.params = { **(request_options&.additional_query_parameters || {}), "words": words }.compact
    req.url "#{@request_client.get_url(request_options: request_options)}/v2/transcript/#{transcript_id}/word-search"
  end
  AssemblyAI::Transcripts::WordSearchResponse.from_json(json_object: response.body)
end