Skip to content

Commit

Permalink
Speech samples (#1036)
Browse files Browse the repository at this point in the history
* speech punctuation, video samples

* speech samples WIP

* speech samples

* wip update

* Updated branch to new changes in library. For speech v1p1beta1

* Remove unused commands from README

* Update streamingRecognizeFile with try-catch based on PR feedback

* Update based on style guidelines
  • Loading branch information
nnegrey authored and kurtisvg committed Mar 16, 2018
1 parent 6c8af87 commit 7e9945c
Show file tree
Hide file tree
Showing 7 changed files with 438 additions and 311 deletions.
43 changes: 31 additions & 12 deletions speech/cloud-client/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,51 +12,70 @@ using the [Google Cloud Client Library for Java][google-cloud-java].
[speech]: https://cloud.google.com/speech/docs/
[google-cloud-java]: https://github.com/GoogleCloudPlatform/google-cloud-java

## Quickstart
## Setup

Install [Maven](http://maven.apache.org/).

Build your project with:

mvn clean compile assembly:single

### Transcribe a local audio file (using the quickstart sample)
```
mvn clean compile assembly:single
```

java -cp target/speech-google-cloud-samples-1.0.0-jar-with-dependencies.jar \
com.example.speech.QuickstartSample
## Quickstart
Transcribe a local audio file
```
java -cp target/speech-google-cloud-samples-1.0.0-jar-with-dependencies.jar \
com.example.speech.QuickstartSample
```

### Transcribe a local audio file (using the recognize sample)
## Transcribe a audio file
Transcribe a local audio file
```
java -cp target/speech-google-cloud-samples-1.0.0-jar-with-dependencies.jar \
com.example.speech.Recognize syncrecognize ./resources/audio.raw
```

### Asynchronously transcribe a local audio file (using the recognize sample)
Asynchronously transcribe a local audio file
```
java -cp target/speech-google-cloud-samples-1.0.0-jar-with-dependencies.jar \
com.example.speech.Recognize asyncrecognize ./resources/audio.raw
```

### Transcribe a remote audio file (using the recognize sample)
Transcribe a remote audio file
```
java -cp target/speech-google-cloud-samples-1.0.0-jar-with-dependencies.jar \
com.example.speech.Recognize syncrecognize gs://cloud-samples-tests/speech/brooklyn.flac
```

### Asynchronously transcribe a remote audio file (using the recognize sample)
Asynchronously transcribe a remote audio file
```
java -cp target/speech-google-cloud-samples-1.0.0-jar-with-dependencies.jar \
com.example.speech.Recognize asyncrecognize gs://cloud-samples-tests/speech/vr.flac
```

### Synchronously transcribe an audio file and print word offsets
## Transcribe a audio file and print word offsets
Synchronously transcribe an audio file and print word offsets
```
java -cp target/speech-google-cloud-samples-1.0.0-jar-with-dependencies.jar \
com.example.speech.Recognize wordoffsets ./resources/audio.raw
```

### Asynchronously transcribe a remote audio file and print word offsets
Asynchronously transcribe a remote audio file and print word offsets
```
java -cp target/speech-google-cloud-samples-1.0.0-jar-with-dependencies.jar \
com.example.speech.Recognize wordoffsets gs://cloud-samples-tests/speech/vr.flac
```

## Transcribe a video file
Synchronously transcribe a video file
```
java -cp target/speech-google-cloud-samples-1.0.0-jar-with-dependencies.jar \
com.example.speech.Recognize video ./resources/Google_Gnome.wav
```

Asynchronously transcribe a video file hosted on GCS
```
java -cp target/speech-google-cloud-samples-1.0.0-jar-with-dependencies.jar \
com.example.speech.Recognize video gs://cloud-samples-tests/speech/Google_Gnome.wav
```
4 changes: 2 additions & 2 deletions speech/cloud-client/pom.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!--
Copyright 2017, Google Inc.
Copyright 2018, Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -40,7 +40,7 @@
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-speech</artifactId>
<version>0.34.0-alpha</version>
<version>0.35.0-alpha</version>
</dependency>
<!-- [END dependencies] -->

Expand Down
Binary file added speech/cloud-client/resources/Google_Gnome.wav
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2017 Google Inc.
* Copyright 2018 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -18,54 +18,57 @@

// [START speech_quickstart]
// Imports the Google Cloud client library

import com.google.cloud.speech.v1.RecognitionAudio;
import com.google.cloud.speech.v1.RecognitionConfig;
import com.google.cloud.speech.v1.RecognitionConfig.AudioEncoding;
import com.google.cloud.speech.v1.RecognizeResponse;
import com.google.cloud.speech.v1.SpeechClient;
import com.google.cloud.speech.v1.SpeechRecognitionAlternative;
import com.google.cloud.speech.v1.SpeechRecognitionResult;
import com.google.cloud.speech.v1p1beta1.RecognitionAudio;
import com.google.cloud.speech.v1p1beta1.RecognitionConfig;
import com.google.cloud.speech.v1p1beta1.RecognitionConfig.AudioEncoding;
import com.google.cloud.speech.v1p1beta1.RecognizeResponse;
import com.google.cloud.speech.v1p1beta1.SpeechClient;
import com.google.cloud.speech.v1p1beta1.SpeechRecognitionAlternative;
import com.google.cloud.speech.v1p1beta1.SpeechRecognitionResult;
import com.google.protobuf.ByteString;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

public class QuickstartSample {

/**
* Demonstrates using the Speech API to transcribe an audio file.
*/
public static void main(String... args) throws Exception {
// Instantiates a client
SpeechClient speech = SpeechClient.create();
try (SpeechClient speechClient = SpeechClient.create()) {

// The path to the audio file to transcribe
String fileName = "./resources/audio.raw";
// The path to the audio file to transcribe
String fileName = "./resources/audio.raw";

// Reads the audio file into memory
Path path = Paths.get(fileName);
byte[] data = Files.readAllBytes(path);
ByteString audioBytes = ByteString.copyFrom(data);
// Reads the audio file into memory
Path path = Paths.get(fileName);
byte[] data = Files.readAllBytes(path);
ByteString audioBytes = ByteString.copyFrom(data);

// Builds the sync recognize request
RecognitionConfig config = RecognitionConfig.newBuilder()
.setEncoding(AudioEncoding.LINEAR16)
.setSampleRateHertz(16000)
.setLanguageCode("en-US")
.build();
RecognitionAudio audio = RecognitionAudio.newBuilder()
.setContent(audioBytes)
.build();
// Builds the sync recognize request
RecognitionConfig config = RecognitionConfig.newBuilder()
.setEncoding(AudioEncoding.LINEAR16)
.setSampleRateHertz(16000)
.setLanguageCode("en-US")
.build();
RecognitionAudio audio = RecognitionAudio.newBuilder()
.setContent(audioBytes)
.build();

// Performs speech recognition on the audio file
RecognizeResponse response = speech.recognize(config, audio);
List<SpeechRecognitionResult> results = response.getResultsList();
// Performs speech recognition on the audio file
RecognizeResponse response = speechClient.recognize(config, audio);
List<SpeechRecognitionResult> results = response.getResultsList();

for (SpeechRecognitionResult result: results) {
// There can be several alternative transcripts for a given chunk of speech. Just use the
// first (most likely) one here.
SpeechRecognitionAlternative alternative = result.getAlternativesList().get(0);
System.out.printf("Transcription: %s%n", alternative.getTranscript());
for (SpeechRecognitionResult result : results) {
// There can be several alternative transcripts for a given chunk of speech. Just use the
// first (most likely) one here.
SpeechRecognitionAlternative alternative = result.getAlternativesList().get(0);
System.out.printf("Transcription: %s%n", alternative.getTranscript());
}
}
speech.close();
}
}
// [END speech_quickstart]
Loading

0 comments on commit 7e9945c

Please sign in to comment.