Skip to content

Commit 4c7f404

Browse files
author
Kevin Weng
authored
AISDK-161: Add support for detailed_partials (#32)
1 parent c6779d5 commit 4c7f404

File tree

5 files changed

+40
-2
lines changed

5 files changed

+40
-2
lines changed

examples/StreamingFromLocalFile.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public static void main(String[] args) throws InterruptedException {
3535
sessionConfig.setFilterProfanity(true);
3636
sessionConfig.setRemoveDisfluencies(true);
3737
sessionConfig.setDeleteAfterSeconds(2592000); // 30 days in seconds
38+
sessionConfig.setDetailedPartials(false);
3839
sessionConfig.setStartTs(0.0);
3940
sessionConfig.setTranscriber("machine");
4041

src/main/java/ai/rev/speechtotext/StreamingClient.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,10 @@ private String buildURL(
202202
urlBuilder.addQueryParameter(
203203
"delete_after_seconds", String.valueOf(sessionConfig.getDeleteAfterSeconds()));
204204
}
205+
if (sessionConfig.getDetailedPartials() != null) {
206+
urlBuilder.addQueryParameter(
207+
"detailed_partials", String.valueOf(sessionConfig.getDetailedPartials()));
208+
}
205209
if (sessionConfig.getStartTs() != null) {
206210
urlBuilder.addQueryParameter("start_ts", String.valueOf(sessionConfig.getStartTs()));
207211
}

src/main/java/ai/rev/speechtotext/models/streaming/SessionConfig.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public class SessionConfig {
88
private String customVocabularyId;
99
private Boolean removeDisfluencies;
1010
private Integer deleteAfterSeconds;
11+
private Boolean detailedPartials;
1112
private Double startTs;
1213
private String transcriber;
1314

@@ -83,8 +84,9 @@ public Boolean getRemoveDisfluencies() {
8384
* the option to remove disfluencies is optional.
8485
*
8586
* @param removeDisfluencies The option to filter profanity.
86-
* @see <a
87-
* href="https://www.rev.ai/docs/streaming#section/WebSocket-Endpoint/Remove-Disfluencies-(Beta)">https://www.rev.ai/docs/streaming#section/WebSocket-Endpoint/Remove-Disfluencies-(Beta)</a>
87+
* @see <a href="https://www.rev.ai/docs/streaming#section/WebSocket-Endpoint/Remove-Disfluencies">
88+
* https://www.rev.ai/docs/streaming#section/WebSocket-Endpoint/Remove-Disfluencies
89+
* </a>
8890
*/
8991
public void setRemoveDisfluencies(Boolean removeDisfluencies) {
9092
this.removeDisfluencies = removeDisfluencies;
@@ -109,6 +111,27 @@ public void setDeleteAfterSeconds(Integer deleteAfterSeconds) {
109111
this.deleteAfterSeconds = deleteAfterSeconds;
110112
}
111113

114+
/**
115+
* Returns the value of detailed partials option
116+
*
117+
* @return The value of the detailed partials option.
118+
*/
119+
public Boolean getDetailedPartials() {
120+
return detailedPartials;
121+
}
122+
123+
/**
124+
* Specifies whether or not to return detailed partials. Setting the option is optional.
125+
*
126+
* @param detailedPartials The option to enable detailed partials.
127+
* @see <a href="https://www.rev.ai/docs/streaming#section/WebSocket-Endpoint/Detailed-Partials">
128+
* https://www.rev.ai/docs/streaming#section/WebSocket-Endpoint/Detailed-Partials
129+
* </a>
130+
*/
131+
public void setDetailedPartials(Boolean detailedPartials) {
132+
this.detailedPartials = detailedPartials;
133+
}
134+
112135
/**
113136
* Returns the value of startTs.
114137
*

src/test/java/ai/rev/speechtotext/integration/StreamingTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ private void assertPartialHypotheses(List<Hypothesis> partialHypotheses) {
8484
for (Element element : elements) {
8585
assertThat(element.getType()).as("Element type in partial").isEqualTo("text");
8686
assertThat(element.getValue()).as("Element value").isNotNull();
87+
assertThat(element.getStartTimestamp()).as("Element time stamp").isNotNull();
88+
assertThat(element.getEndTimestamp()).as("Element end time stamp").isNotNull();
89+
assertThat(element.getConfidence()).as("Element confidence score").isNotNull();
8790
}
8891
});
8992
}
@@ -126,6 +129,7 @@ private SessionConfig createSessionsConfig() {
126129
sessionConfig.setFilterProfanity(true);
127130
sessionConfig.setRemoveDisfluencies(true);
128131
sessionConfig.setDeleteAfterSeconds(0);
132+
sessionConfig.setDetailedPartials(true);
129133
sessionConfig.setStartTs(10.0);
130134
sessionConfig.setTranscriber("machine");
131135
return sessionConfig;

src/test/java/ai/rev/speechtotext/unit/RevAiStreamingClientOptionalParametersTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ public void StreamingClient_GivenOptionalParameterSet_ContainsNonNullParametersI
105105
@FromDataPoints("booleanValuesAndNull") Boolean filterProfanity,
106106
@FromDataPoints("booleanValuesAndNull") Boolean removeDisfluencies,
107107
@FromDataPoints("deleteAfterSecondsAndNull") Integer deleteAfterSeconds,
108+
@FromDataPoints("booleanValuesAndNull") Boolean detailedPartials,
108109
@FromDataPoints("startTsAndNull") Double startTs,
109110
@FromDataPoints("transcriberAndNull") String transcriber)
110111
throws UnsupportedEncodingException {
@@ -113,6 +114,7 @@ public void StreamingClient_GivenOptionalParameterSet_ContainsNonNullParametersI
113114
sessionConfig.setCustomVocabularyId(customVocabularyId);
114115
sessionConfig.setRemoveDisfluencies(removeDisfluencies);
115116
sessionConfig.setDeleteAfterSeconds(deleteAfterSeconds);
117+
sessionConfig.setDetailedPartials(detailedPartials);
116118
sessionConfig.setStartTs(startTs);
117119
sessionConfig.setTranscriber(transcriber);
118120

@@ -153,6 +155,10 @@ private void assertStreamOptions(RecordedRequest request) throws UnsupportedEnco
153155
assertThat(request.getPath())
154156
.contains("delete_after_seconds=" + sessionConfig.getDeleteAfterSeconds());
155157
}
158+
if (sessionConfig.getDetailedPartials() != null) {
159+
assertThat(request.getPath())
160+
.contains("detailed_partials=" + sessionConfig.getDetailedPartials());
161+
}
156162
if (sessionConfig.getStartTs() != null) {
157163
assertThat(request.getPath())
158164
.contains("start_ts=" + sessionConfig.getStartTs());

0 commit comments

Comments
 (0)