Skip to content

Commit 1b655ff

Browse files
authored
AISDK-194: Language id should be supported in java sdk (#50)
1 parent aae9a60 commit 1b655ff

File tree

15 files changed

+1733
-2
lines changed

15 files changed

+1733
-2
lines changed

.lycheeignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# API Domain stubs used as url partials in the api clients
22
api.rev.ai
33

4+
# Link checker fails to validate maven repo link
5+
https://mvnrepository.com/artifact/ai.rev/revai-java-sdk
6+
47
# example domains used in unit tests
58
www.example.com
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
package ai.rev;
2+
3+
import ai.rev.languageid.LanguageIdClient;
4+
import ai.rev.languageid.models.LanguageIdJob;
5+
import ai.rev.languageid.models.LanguageIdJobOptions;
6+
import ai.rev.languageid.models.LanguageIdJobStatus;
7+
import ai.rev.languageid.models.LanguageIdResult;
8+
9+
import java.io.IOException;
10+
import java.io.InputStream;
11+
import java.util.Arrays;
12+
13+
public class LanguageIdLocalMediaFile {
14+
15+
public static void main(String[] args) {
16+
// Assign your access token to a String
17+
String accessToken = "<YOUR_ACCESS_TOKEN>";
18+
19+
// Initialize the LanguageIdClient with your access token
20+
LanguageIdClient languageIdClient = new LanguageIdClient(accessToken);
21+
22+
// Initialize the LanguageIdJobOptions object and assign
23+
LanguageIdJobOptions languageIdJobOptions = new LanguageIdJobOptions();
24+
languageIdJobOptions.setMetadata("My first submission");
25+
languageIdJobOptions.setNotificationConfig("https://example.com");
26+
languageIdJobOptions.setDeleteAfterSeconds(2592000); // 30 days in seconds
27+
28+
LanguageIdJob submittedJob;
29+
30+
String localFile = "path/to/file";
31+
32+
try {
33+
// Submit the local file and language id options
34+
submittedJob = languageIdClient.submitJobLocalFile(localFile, languageIdJobOptions);
35+
} catch (IOException e) {
36+
throw new RuntimeException("Failed to submit file [" + localFile + "] " + e.getMessage());
37+
}
38+
String jobId = submittedJob.getJobId();
39+
System.out.println("Job Id: " + jobId);
40+
System.out.println("Job Status: " + submittedJob.getJobStatus());
41+
System.out.println("Created On: " + submittedJob.getCreatedOn());
42+
43+
// Waits 5 seconds between each status check to see if job is complete
44+
boolean isJobComplete = false;
45+
while (!isJobComplete) {
46+
LanguageIdJob retrievedJob;
47+
try {
48+
retrievedJob = languageIdClient.getJobDetails(jobId);
49+
} catch (IOException e) {
50+
throw new RuntimeException("Failed to retrieve job [" + jobId + "] " + e.getMessage());
51+
}
52+
53+
LanguageIdJobStatus retrievedJobStatus = retrievedJob.getJobStatus();
54+
if (retrievedJobStatus == LanguageIdJobStatus.COMPLETED
55+
|| retrievedJobStatus == LanguageIdJobStatus.FAILED) {
56+
isJobComplete = true;
57+
} else {
58+
try {
59+
Thread.sleep(5000);
60+
} catch (InterruptedException e) {
61+
e.printStackTrace();
62+
}
63+
}
64+
}
65+
66+
// Get the language id result
67+
LanguageIdResult languageIdResult;
68+
69+
try {
70+
languageIdResult = languageIdClient.getResultObject(jobId);
71+
System.out.printf("Top Language: %s\n", languageIdResult.getTopLanguage());
72+
for (LanguageConfidence languageConfidence : languageIdResult.getLanguageConfidences()) {
73+
System.out.printf("Language: %s Confidence: %f\n", languageConfidence.getLanguage(), languageConfidence.getConfidence());
74+
}
75+
} catch (IOException e) {
76+
e.printStackTrace();
77+
}
78+
79+
/*
80+
* The job can now be deleted. Deleting the job will remove ALL information
81+
* about the job from the Rev AI servers. Subsequent requests to Rev AI that
82+
* use the deleted jobs Id will return 404's.
83+
*/
84+
// languageIdClient.deleteJob(jobId);
85+
// System.out.printf("Deleted language id job %s", jobId);
86+
}
87+
}
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
package ai.rev;
2+
3+
import ai.rev.languageid.LanguageIdClient;
4+
import ai.rev.languageid.models.LanguageIdJob;
5+
import ai.rev.languageid.models.LanguageIdJobOptions;
6+
import ai.rev.languageid.models.LanguageIdJobStatus;
7+
import ai.rev.languageid.models.LanguageIdResult;
8+
9+
import java.io.IOException;
10+
import java.io.InputStream;
11+
import java.util.Arrays;
12+
import java.util.HashMap;
13+
import java.util.Map;
14+
15+
public class LanguageIdMediaUrl {
16+
17+
public static void main(String[] args) {
18+
// Assign your access token to a String
19+
String accessToken = "<YOUR_ACCESS_TOKEN>";
20+
21+
// Initialize the LanguageIdClient with your access token
22+
LanguageIdClient languageIdClient = new LanguageIdClient(accessToken);
23+
24+
// Set up source configuration parameters
25+
String mediaUrl = "https://www.rev.ai/FTC_Sample_1.mp3";
26+
// Authorization header is optional; use it if needed to access the source media url
27+
Map<String, String> sourceAuth = new HashMap<>();
28+
sourceAuth.put("Authorization", "Bearer <source_token>");
29+
30+
// Set up notification configuration parameters
31+
String callbackUrl = "https://example.com";
32+
// Authorization header is optional; use it if needed to access the callback url
33+
Map<String, String> notificationAuth = new HashMap<>();
34+
notificationAuth.put("Authorization", "Bearer <notification_token>");
35+
36+
// Initialize the LanguageIdJobOptions object and assign
37+
LanguageIdJobOptions languageIdJobOptions = new LanguageIdJobOptions();
38+
languageIdJobOptions.setSourceConfig(mediaUrl, sourceAuth);
39+
languageIdJobOptions.setMetadata("My first submission");
40+
languageIdJobOptions.setNotificationConfig(callbackUrl, notificationAuth);
41+
languageIdJobOptions.setDeleteAfterSeconds(2592000); // 30 days in seconds
42+
43+
LanguageIdJob submittedJob;
44+
45+
try {
46+
// Submit job with language id options
47+
submittedJob = languageIdClient.submitJob(languageIdJobOptions);
48+
} catch (IOException e) {
49+
throw new RuntimeException("Failed to submit url [" + mediaUrl + "] " + e.getMessage());
50+
}
51+
String jobId = submittedJob.getJobId();
52+
System.out.println("Job Id: " + jobId);
53+
System.out.println("Job Status: " + submittedJob.getJobStatus());
54+
System.out.println("Created On: " + submittedJob.getCreatedOn());
55+
56+
// Waits 5 seconds between each status check to see if job is complete
57+
boolean isJobComplete = false;
58+
while (!isJobComplete) {
59+
LanguageIdJob retrievedJob;
60+
try {
61+
retrievedJob = languageIdClient.getJobDetails(jobId);
62+
} catch (IOException e) {
63+
throw new RuntimeException("Failed to retrieve job [" + jobId + "] " + e.getMessage());
64+
}
65+
66+
LanguageIdJobStatus retrievedJobStatus = retrievedJob.getJobStatus();
67+
if (retrievedJobStatus == LanguageIdJobStatus.COMPLETED
68+
|| retrievedJobStatus == LanguageIdJobStatus.FAILED) {
69+
isJobComplete = true;
70+
} else {
71+
try {
72+
Thread.sleep(5000);
73+
} catch (InterruptedException e) {
74+
e.printStackTrace();
75+
}
76+
}
77+
}
78+
79+
// Get the language id result
80+
LanguageIdResult languageIdResult;
81+
82+
try {
83+
languageIdResult = languageIdClient.getResultObject(jobId);
84+
System.out.printf("Top Language: %s\n", languageIdResult.getTopLanguage());
85+
for (LanguageConfidence languageConfidence : languageIdResult.getLanguageConfidences()) {
86+
System.out.printf("Language: %s Confidence: %f\n", languageConfidence.getLanguage(), languageConfidence.getConfidence());
87+
}
88+
} catch (IOException e) {
89+
e.printStackTrace();
90+
}
91+
92+
/*
93+
* The job can now be deleted. Deleting the job will remove ALL information
94+
* about the job from the Rev AI servers. Subsequent requests to Rev AI that
95+
* use the deleted jobs Id will return 404's.
96+
*/
97+
// languageIdClient.deleteJob(jobId);
98+
// System.out.printf("Deleted language id job %s", jobId);
99+
}
100+
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<!-- groupId, artifactId, these namespaces should not be changed -->
66
<groupId>ai.rev</groupId>
77
<artifactId>revai-java-sdk</artifactId>
8-
<version>2.2.0</version>
8+
<version>2.3.0</version>
99
<name>Rev AI SDK for Java</name>
1010
<description>Java SDK for Rev AI API</description>
1111
<url>https://docs.rev.ai/</url>

0 commit comments

Comments
 (0)