1 - nguyenminhtuanfit/tutorials GitHub Wiki
package com.amazonaws.transcribestreaming;
import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List;
import org.apache.http.HttpResponse; import org.apache.http.ParseException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils;
import com.amazonaws.ClientConfiguration; import com.amazonaws.auth.DefaultAWSCredentialsProviderChain; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.transcribe.AmazonTranscribe; import com.amazonaws.services.transcribe.AmazonTranscribeClient; import com.amazonaws.services.transcribe.model.CreateVocabularyRequest; import com.amazonaws.services.transcribe.model.GetTranscriptionJobRequest; import com.amazonaws.services.transcribe.model.GetVocabularyRequest; import com.amazonaws.services.transcribe.model.LanguageCode; import com.amazonaws.services.transcribe.model.Media; import com.amazonaws.services.transcribe.model.Settings; import com.amazonaws.services.transcribe.model.StartTranscriptionJobRequest; import com.amazonaws.services.transcribe.model.TranscriptionJob; import com.amazonaws.services.transcribe.model.TranscriptionJobStatus; import com.google.api.client.util.Sleeper;
import software.amazon.awssdk.core.exception.SdkClientException; import software.amazon.awssdk.regions.Region;
public class Demo { static { System.setProperty("aws.accessKeyId", "x"); System.setProperty("aws.secretKey", "y"); }
private static Region getRegion() {
Region region;
try {
// region = new DefaultAwsRegionProviderChain().getRegion();
region = Region.US_WEST_2;
} catch (SdkClientException e) {
region = Region.US_WEST_2;
}
return region;
}
private static String download(String uri, String fileName) throws ParseException, IOException {
HttpClient client = HttpClientBuilder.create().build();
HttpResponse response = client.execute(new HttpGet(uri));
int statusCode = response.getStatusLine().getStatusCode();
String responseBody = EntityUtils.toString(response.getEntity());
return responseBody;
}
public static void main(String[] args) throws ParseException, IOException {
AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion("ap-southeast-1")
.withClientConfiguration(new ClientConfiguration())
.withCredentials(new DefaultAWSCredentialsProviderChain()).build();
AmazonTranscribe client = AmazonTranscribeClient.builder().withRegion("ap-southeast-1").build();
s3.putObject("tuannmvn", "hello.wav", new File("/Users/admin/Desktop/hello.wav"));
StartTranscriptionJobRequest request = new StartTranscriptionJobRequest();
request.withLanguageCode(LanguageCode.EnUS);
Media media = new Media();
media.setMediaFileUri(s3.getUrl("tuannmvn", "hello.wav").toString());
request.withMedia(media).withMediaSampleRateHertz(16000);
String transcriptionJobName = "job7";
request.setTranscriptionJobName(transcriptionJobName);
request.withMediaFormat("wav");
CreateVocabularyRequest createVocReq = new CreateVocabularyRequest();
createVocReq.setLanguageCode("en-US");
createVocReq.setVocabularyName("phone_call2");
List<String> phrases = new ArrayList();
phrases.add("hello");
phrases.add("vincom");
createVocReq.setPhrases(phrases);
client.createVocabulary(createVocReq);
// GetVocabularyRequest getVocabularyRequest = new GetVocabularyRequest(); // getVocabularyRequest.setVocabularyName("phone_call");
Settings settings = new Settings();
settings.setVocabularyName("phone_call2");
request.setSettings(settings);
client.startTranscriptionJob(request);
GetTranscriptionJobRequest jobRequest = new GetTranscriptionJobRequest();
jobRequest.setTranscriptionJobName(transcriptionJobName);
TranscriptionJob transcriptionJob;
while (true) {
try {
Thread.sleep(9000);
transcriptionJob = client.getTranscriptionJob(jobRequest).getTranscriptionJob();
System.out.println(transcriptionJob);
} catch (Exception e) {
transcriptionJob = client.getTranscriptionJob(jobRequest).getTranscriptionJob();
System.out.println(transcriptionJob);
}
transcriptionJob = client.getTranscriptionJob(jobRequest).getTranscriptionJob();
if (transcriptionJob.getTranscriptionJobStatus().equals(TranscriptionJobStatus.COMPLETED.name())) {
String transcription = download(transcriptionJob.getTranscript().getTranscriptFileUri(), "hello.wav");
System.out.println("transcription: >>> " + transcription);
break;
} else if (transcriptionJob.getTranscriptionJobStatus().equals(TranscriptionJobStatus.FAILED.name())) {
break;
}
// synchronized (this) { // try { // this.wait(50); // } catch (InterruptedException e) { // } // }
}
}
}