module SpeechToText::AmazonS2T

Public Class Methods

checkstatus(transcription_job_name) click to toggle source
# File lib/speech_to_text/amazon.rb, line 47
def self.checkstatus(transcription_job_name)
  client = Aws::TranscribeService::Client.new
  resp = client.get_transcription_job({
    transcription_job_name: transcription_job_name
  })

  status = resp['transcription_job']['transcription_job_status']
  return status
end
create_amazon_array(data) click to toggle source
# File lib/speech_to_text/amazon.rb, line 73
def self.create_amazon_array(data) # rubocop:disable Metrics/AbcSize
  if data.nil?
    puts "no json data found"
    return
  end

  i = 0
  myarray = []
  while (i < data['results']['items'].length)
    unless data['results']['items'][i]['start_time'].nil?
      myarray.push(data['results']['items'][i]['start_time'].to_f)
      myarray.push(data['results']['items'][i]['end_time'].to_f)
      myarray.push(data['results']['items'][i]['alternatives'][0]['content'])
    end
    i = i + 1
  end
  return myarray
end
create_job(transcription_job_name, language_code, audio_format, s3_audio_uri) click to toggle source
# File lib/speech_to_text/amazon.rb, line 35
def self.create_job(transcription_job_name, language_code, audio_format, s3_audio_uri)
  client = Aws::TranscribeService::Client.new
  resp = client.start_transcription_job({
    transcription_job_name: transcription_job_name,
    language_code: language_code,
    media_format: audio_format,
    media: {
      media_file_uri: s3_audio_uri
    }
  })
end
delete_audio(bucket_name, s3_audio_name, transcription_job_name) click to toggle source
# File lib/speech_to_text/amazon.rb, line 92
def self.delete_audio(bucket_name, s3_audio_name, transcription_job_name)
  s3 = Aws::S3::Resource.new
  obj = s3.bucket(bucket_name).object(s3_audio_name)
  obj.delete

  client = Aws::TranscribeService::Client.new
  resp = client.delete_transcription_job({
    transcription_job_name: transcription_job_name
  })
end
get_words(transcription_job_name, json_file) click to toggle source
# File lib/speech_to_text/amazon.rb, line 57
def self.get_words(transcription_job_name, json_file)
  client = Aws::TranscribeService::Client.new
  resp = client.get_transcription_job({
    transcription_job_name: transcription_job_name
  })

  uri = resp['transcription_job']['transcript']['transcript_file_uri']
  File.open(json_file, 'wb') do |file|
     file.write open(uri).read
  end

  file = File.open(json_file,'r')
  data = JSON.load file
  return data
end
set_credentials(aws_key, aws_secret) click to toggle source
# File lib/speech_to_text/amazon.rb, line 22
def self.set_credentials(aws_key, aws_secret)
  Aws.config.update({
    region: 'us-east-2',
    credentials: Aws::Credentials.new(aws_key, aws_secret)
  })
end
upload_audio(bucket_name, s3_audio_name, audio_file) click to toggle source
# File lib/speech_to_text/amazon.rb, line 29
def self.upload_audio(bucket_name, s3_audio_name, audio_file)
  s3 = Aws::S3::Resource.new
  obj = s3.bucket(bucket_name).object(s3_audio_name)
  obj.upload_file(audio_file)
end