Skip to content

Commit 2cd39ba

Browse files
authored
sample: Configure polling algorithm in long recognition sample (#464)
1 parent 9a659c7 commit 2cd39ba

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

speech/snippets/src/main/java/com/example/speech/Recognize.java

+20-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
package com.example.speech;
1818

1919
import com.google.api.gax.longrunning.OperationFuture;
20+
import com.google.api.gax.longrunning.OperationTimedPollAlgorithm;
21+
import com.google.api.gax.retrying.RetrySettings;
22+
import com.google.api.gax.retrying.TimedRetryAlgorithm;
2023
import com.google.api.gax.rpc.ApiStreamObserver;
2124
import com.google.api.gax.rpc.BidiStreamingCallable;
2225
import com.google.api.gax.rpc.ClientStream;
@@ -31,6 +34,7 @@
3134
import com.google.cloud.speech.v1.SpeechClient;
3235
import com.google.cloud.speech.v1.SpeechRecognitionAlternative;
3336
import com.google.cloud.speech.v1.SpeechRecognitionResult;
37+
import com.google.cloud.speech.v1.SpeechSettings;
3438
import com.google.cloud.speech.v1.StreamingRecognitionConfig;
3539
import com.google.cloud.speech.v1.StreamingRecognitionResult;
3640
import com.google.cloud.speech.v1.StreamingRecognizeRequest;
@@ -50,6 +54,7 @@
5054
import javax.sound.sampled.DataLine;
5155
import javax.sound.sampled.DataLine.Info;
5256
import javax.sound.sampled.TargetDataLine;
57+
import org.threeten.bp.Duration;
5358

5459
public class Recognize {
5560

@@ -331,8 +336,22 @@ public static void asyncRecognizeWords(String gcsUri) throws Exception {
331336
* @param gcsUri the path to the remote LINEAR16 audio file to transcribe.
332337
*/
333338
public static void asyncRecognizeGcs(String gcsUri) throws Exception {
339+
// Configure polling algorithm
340+
SpeechSettings.Builder speechSettings = SpeechSettings.newBuilder();
341+
TimedRetryAlgorithm timedRetryAlgorithm = OperationTimedPollAlgorithm.create(
342+
RetrySettings.newBuilder()
343+
.setInitialRetryDelay(Duration.ofMillis(500L))
344+
.setRetryDelayMultiplier(1.5)
345+
.setMaxRetryDelay(Duration.ofMillis(5000L))
346+
.setInitialRpcTimeout(Duration.ZERO) // ignored
347+
.setRpcTimeoutMultiplier(1.0) // ignored
348+
.setMaxRpcTimeout(Duration.ZERO) // ignored
349+
.setTotalTimeout(Duration.ofHours(24L)) // set polling timeout to 24 hours
350+
.build());
351+
speechSettings.longRunningRecognizeOperationSettings().setPollingAlgorithm(timedRetryAlgorithm);
352+
334353
// Instantiates a client with GOOGLE_APPLICATION_CREDENTIALS
335-
try (SpeechClient speech = SpeechClient.create()) {
354+
try (SpeechClient speech = SpeechClient.create(speechSettings.build())) {
336355

337356
// Configure remote file request for FLAC
338357
RecognitionConfig config =

0 commit comments

Comments
 (0)