From 9165073497ac13079be694363d92d412a99a64b4 Mon Sep 17 00:00:00 2001 From: Gus Class Date: Fri, 14 Apr 2017 10:29:30 -0700 Subject: [PATCH] Removes GRPC samples instead favoring cloud client --- pom.xml | 2 +- speech/README.md | 4 - speech/grpc/README.md | 101 ------ speech/grpc/bin/speech-sample-async.sh | 18 -- speech/grpc/bin/speech-sample-streaming.sh | 18 -- speech/grpc/bin/speech-sample-sync.sh | 18 -- speech/grpc/pom.xml | 166 ---------- speech/grpc/resources/audio.raw | Bin 57958 -> 0 bytes speech/grpc/resources/audio32KHz.raw | Bin 165698 -> 0 bytes .../cloud/speech/AsyncRecognizeClient.java | 239 -------------- .../cloud/speech/RecognitionAudioFactory.java | 67 ---- .../speech/StreamingRecognizeClient.java | 295 ------------------ .../cloud/speech/SyncRecognizeClient.java | 205 ------------ .../speech/RecognitionAudioFactoryTest.java | 65 ---- .../speech/StreamingRecognizeClientTest.java | 143 --------- 15 files changed, 1 insertion(+), 1340 deletions(-) delete mode 100644 speech/grpc/README.md delete mode 100755 speech/grpc/bin/speech-sample-async.sh delete mode 100755 speech/grpc/bin/speech-sample-streaming.sh delete mode 100755 speech/grpc/bin/speech-sample-sync.sh delete mode 100644 speech/grpc/pom.xml delete mode 100644 speech/grpc/resources/audio.raw delete mode 100644 speech/grpc/resources/audio32KHz.raw delete mode 100644 speech/grpc/src/main/java/com/examples/cloud/speech/AsyncRecognizeClient.java delete mode 100644 speech/grpc/src/main/java/com/examples/cloud/speech/RecognitionAudioFactory.java delete mode 100644 speech/grpc/src/main/java/com/examples/cloud/speech/StreamingRecognizeClient.java delete mode 100644 speech/grpc/src/main/java/com/examples/cloud/speech/SyncRecognizeClient.java delete mode 100644 speech/grpc/src/test/java/com/examples/cloud/speech/RecognitionAudioFactoryTest.java delete mode 100644 speech/grpc/src/test/java/com/examples/cloud/speech/StreamingRecognizeClientTest.java diff --git a/pom.xml b/pom.xml index bba68f1af18..0a59c6fe3c2 100644 --- a/pom.xml +++ b/pom.xml @@ -84,7 +84,7 @@ monitoring/v3 pubsub/cloud-client spanner/cloud-client - speech/grpc + speech/cloud-client storage/cloud-client storage/json-api storage/storage-transfer diff --git a/speech/README.md b/speech/README.md index 0744f0f4498..9d54a590b10 100644 --- a/speech/README.md +++ b/speech/README.md @@ -3,10 +3,6 @@ This directory contains several samples for the [Cloud Speech API](https://cloud.google.com/speech/) with Java. -- [grpc](grpc) - - A sample for accessing Cloud Speech streaming and non streaming apis with [gRPC](http://www.grpc.io/). - - [Cloud Client](cloud-client) A sample for accessing Cloud Speech streaming and non streaming apis using the [Cloud Client Library for Java](https://github.com/GoogleCloudPlatform/google-cloud-java). diff --git a/speech/grpc/README.md b/speech/grpc/README.md deleted file mode 100644 index b4407df50ef..00000000000 --- a/speech/grpc/README.md +++ /dev/null @@ -1,101 +0,0 @@ -# Cloud Speech API gRPC samples for Java - -This is a sample repo for accessing the [Google Cloud Speech API](http://cloud.google.com/speech) with -[gRPC](http://www.grpc.io/) client library. Note that these samples are for `advanced users` and is in -BETA. Please see [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages). - -## Prerequisites - -### Enable the Speech API - -If you have not already done so, [enable the Google Cloud Speech API for your project](https://console.developers.google.com/apis/api/speech.googleapis.com/overview). -You must be whitelisted to do this. - - -### Download and install Java and Maven - -Install [Java7 or -higher](http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html). - -This sample uses the [Apache Maven][maven] build system. Before getting started, be -sure to [download][maven-download] and [install][maven-install] it. When you use -Maven as described here, it will automatically download the needed client -libraries. - -[maven]: https://maven.apache.org -[maven-download]: https://maven.apache.org/download.cgi -[maven-install]: https://maven.apache.org/install.html - - -### Set Up to Authenticate With Your Project's Credentials - -The example uses a service account for OAuth2 authentication. -So next, set up to authenticate with the Speech API using your project's -service account credentials. - -Visit the [Cloud Console](https://console.developers.google.com), and navigate to: -`API Manager > Credentials > Create credentials > -Service account key > New service account`. -Create a new service account, and download the json credentials file. - -Then, set -the `GOOGLE_APPLICATION_CREDENTIALS` environment variable to point to your -downloaded service account credentials before running this example: - - export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/credentials-key.json - -If you do not do this, you will see an error that looks something like this when -you run the example scripts: -`WARNING: RPC failed: Status{code=PERMISSION_DENIED, description=Request had insufficient authentication scopes., cause=null}`. -See the -[Cloud Platform Auth Guide](https://cloud.google.com/docs/authentication#developer_workflow) -for more information. - -## Build the application - -Then, build the program: - -```sh -$ mvn package -``` - -or - -```sh -$ mvn compile -$ mvn assembly:single -``` - -## Run the clients - -These programs return the transcription of the audio file you provided. Please -note that the audio file must be in RAW format. You can use `sox` -(available, e.g. via [http://sox.sourceforge.net/](http://sox.sourceforge.net/) -or [homebrew](http://brew.sh/)) to convert audio files to raw format. - -### Run the sync client - -To use the sync method to transcribe a 16,000Hz sample audio file, run the following: - -```sh -$ bin/speech-sample-sync.sh --host=speech.googleapis.com --port=443 \ ---uri=resources/audio.raw --sampling=16000 -``` - -### Run the async client - -To use the async method to transcribe a 16,000Hz sample audio file, run the following: - -```sh -$ bin/speech-sample-async.sh --host=speech.googleapis.com --port=443 \ ---uri=resources/audio.raw --sampling=16000 -``` - -### Run the streaming client - -To use the streaming method to transcribe a 16,000Hz sample audio file, run the following: - -```sh -$ bin/speech-sample-streaming.sh --host=speech.googleapis.com --port=443 \ ---sampling=16000 -``` diff --git a/speech/grpc/bin/speech-sample-async.sh b/speech/grpc/bin/speech-sample-async.sh deleted file mode 100755 index be843b1b4e0..00000000000 --- a/speech/grpc/bin/speech-sample-async.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -# Copyright 2016 Google Inc. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -SRC_DIR="$( cd "$( dirname "$0" )/.." && pwd )" -java -cp "${SRC_DIR}/target/grpc-sample-1.0-jar-with-dependencies.jar" \ - com.examples.cloud.speech.AsyncRecognizeClient "$@" diff --git a/speech/grpc/bin/speech-sample-streaming.sh b/speech/grpc/bin/speech-sample-streaming.sh deleted file mode 100755 index 8fc77e6afaf..00000000000 --- a/speech/grpc/bin/speech-sample-streaming.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -# Copyright 2016 Google Inc. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -SRC_DIR="$( cd "$( dirname "$0" )/.." && pwd )" -java -cp "${SRC_DIR}/target/grpc-sample-1.0-jar-with-dependencies.jar" \ - com.examples.cloud.speech.StreamingRecognizeClient "$@" diff --git a/speech/grpc/bin/speech-sample-sync.sh b/speech/grpc/bin/speech-sample-sync.sh deleted file mode 100755 index 322d11af2cb..00000000000 --- a/speech/grpc/bin/speech-sample-sync.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash -# Copyright 2016 Google Inc. All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -SRC_DIR="$( cd "$( dirname "$0" )/.." && pwd )" -java -cp "${SRC_DIR}/target/grpc-sample-1.0-jar-with-dependencies.jar" \ - com.examples.cloud.speech.SyncRecognizeClient "$@" diff --git a/speech/grpc/pom.xml b/speech/grpc/pom.xml deleted file mode 100644 index f42b2f22b28..00000000000 --- a/speech/grpc/pom.xml +++ /dev/null @@ -1,166 +0,0 @@ - - - 4.0.0 - - com.google.cloud.speech - grpc-sample - 1.0 - jar - - speech-grpc-sample - https://cloud.google.com/speech/ - 2016 - - - - com.google.cloud - doc-samples - 1.0.0 - ../.. - - - - - Apache 2 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - Google - http://www.google.com - - - - UTF-8 - 2.3 - 1.0.3 - 3.6.0 - 0.5.0 - - 1.8 - 1.8 - - - - - - com.google.cloud - google-cloud-speech - 0.12.0-alpha - - - junit - junit - 4.12 - test - - - commons-cli - commons-cli - 1.3.1 - - - com.google.auth - google-auth-library-credentials - 0.6.1 - - - com.google.auth - google-auth-library-oauth2-http - 0.6.1 - - - - com.google.guava - guava-jdk5 - - - - - com.google.guava - guava - 20.0 - - - com.google.truth - truth - 0.32 - test - - - org.mockito - mockito-all - 1.10.19 - test - - - io.grpc - grpc-auth - ${grpc-version} - - - io.grpc - grpc-netty - ${grpc-version} - - - io.grpc - grpc-protobuf - ${grpc-version} - - - io.grpc - grpc-stub - ${grpc-version} - - - log4j - log4j - 1.2.17 - - - - - - - - - - maven-assembly-plugin - - - jar-with-dependencies - - - - - simple-command - package - - attached - - - - - - - - - diff --git a/speech/grpc/resources/audio.raw b/speech/grpc/resources/audio.raw deleted file mode 100644 index 5ebf79d3c9c548f3d08c36e790059f3c2915af37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57958 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
  • ?dZ^!ab%qlspp&C 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 diff --git a/speech/grpc/resources/audio32KHz.raw b/speech/grpc/resources/audio32KHz.raw deleted file mode 100644 index 6b52fc326f8ff7b833f2e1aa57b1f4a381716f45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165698 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

    ~b1}c}8 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

    -tiXzu8Q4_okujOMSRX-t4K5=!8BKN>=?!^D17K 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 OAUTH2_SCOPES = - Arrays.asList("https://www.googleapis.com/auth/cloud-platform"); - - private final URI input; - private final int samplingRate; - - private final ManagedChannel channel; - private final SpeechGrpc.SpeechBlockingStub speechClient; - private final OperationsGrpc.OperationsBlockingStub statusClient; - - /** - * Construct client connecting to Cloud Speech server at {@code host:port}. - */ - public AsyncRecognizeClient(ManagedChannel channel, URI input, int samplingRate) - throws IOException { - this.input = input; - this.samplingRate = samplingRate; - this.channel = channel; - - speechClient = SpeechGrpc.newBlockingStub(channel); - statusClient = OperationsGrpc.newBlockingStub(channel); - } - - public void shutdown() throws InterruptedException { - channel.shutdown().awaitTermination(5, TimeUnit.SECONDS); - } - - public static ManagedChannel createChannel(String host, int port) throws IOException { - GoogleCredentials creds = GoogleCredentials.getApplicationDefault(); - creds = creds.createScoped(OAUTH2_SCOPES); - ManagedChannel channel = - ManagedChannelBuilder.forAddress(host, port) - .intercept(new ClientAuthInterceptor(creds, Executors.newSingleThreadExecutor())) - .build(); - - return channel; - } - - /** - * Sends a request to the speech API and returns an Operation handle. - */ - public void recognize() { - RecognitionAudio audio; - try { - audio = RecognitionAudioFactory.createRecognitionAudio(this.input); - } catch (IOException e) { - logger.log(Level.WARNING, "Failed to read audio uri input: " + input); - return; - } - logger.info("Sending " + audio.getContent().size() + " bytes from audio uri input: " + input); - RecognitionConfig config = - RecognitionConfig.newBuilder() - .setEncoding(AudioEncoding.LINEAR16) - .setSampleRate(samplingRate) - .build(); - AsyncRecognizeRequest request = - AsyncRecognizeRequest.newBuilder().setConfig(config).setAudio(audio).build(); - - Operation operation; - Operation status; - try { - operation = speechClient.asyncRecognize(request); - - // Print the long running operation handle - logger.log( - Level.INFO, - String.format("Operation handle: %s, URI: %s", operation.getName(), input.toString())); - } catch (StatusRuntimeException e) { - logger.log(Level.WARNING, "RPC failed: {0}", e.getStatus()); - return; - } - - while (true) { - try { - logger.log(Level.INFO, "Waiting 2s for operation, {0} processing...", operation.getName()); - Thread.sleep(2000); - GetOperationRequest operationReq = - GetOperationRequest.newBuilder().setName(operation.getName()).build(); - status = - statusClient.getOperation( - GetOperationRequest.newBuilder().setName(operation.getName()).build()); - - if (status.getDone()) { - break; - } - } catch (Exception ex) { - logger.log(Level.WARNING, ex.getMessage()); - } - } - - try { - AsyncRecognizeResponse asyncRes = status.getResponse().unpack(AsyncRecognizeResponse.class); - - logger.info("Received response: " + asyncRes); - } catch (com.google.protobuf.InvalidProtocolBufferException ex) { - logger.log(Level.WARNING, "Unpack error, {0}", ex.getMessage()); - } - } - - public static void main(String[] args) throws Exception { - - String audioFile = ""; - String host = "speech.googleapis.com"; - Integer port = 443; - Integer sampling = 16000; - - CommandLineParser parser = new DefaultParser(); - - Options options = new Options(); - options.addOption( - Option.builder() - .longOpt("uri") - .desc("path to audio uri") - .hasArg() - .argName("FILE_PATH") - .build()); - options.addOption( - Option.builder() - .longOpt("host") - .desc("endpoint for api, e.g. speech.googleapis.com") - .hasArg() - .argName("ENDPOINT") - .build()); - options.addOption( - Option.builder() - .longOpt("port") - .desc("SSL port, usually 443") - .hasArg() - .argName("PORT") - .build()); - options.addOption( - Option.builder() - .longOpt("sampling") - .desc("Sampling Rate, i.e. 16000") - .hasArg() - .argName("RATE") - .build()); - - try { - CommandLine line = parser.parse(options, args); - if (line.hasOption("uri")) { - audioFile = line.getOptionValue("uri"); - } else { - System.err.println("An Audio uri must be specified (e.g. file:///foo/baz.raw)."); - System.exit(1); - } - - if (line.hasOption("host")) { - host = line.getOptionValue("host"); - } else { - System.err.println("An API enpoint must be specified (typically speech.googleapis.com)."); - System.exit(1); - } - - if (line.hasOption("port")) { - port = Integer.parseInt(line.getOptionValue("port")); - } else { - System.err.println("An SSL port must be specified (typically 443)."); - System.exit(1); - } - - if (line.hasOption("sampling")) { - sampling = Integer.parseInt(line.getOptionValue("sampling")); - } else { - System.err.println("An Audio sampling rate must be specified."); - System.exit(1); - } - } catch (ParseException exp) { - System.err.println("Unexpected exception:" + exp.getMessage()); - System.exit(1); - } - - ManagedChannel channel = AsyncRecognizeClient.createChannel(host, port); - - AsyncRecognizeClient client = - new AsyncRecognizeClient(channel, URI.create(audioFile), sampling); - try { - client.recognize(); - } finally { - client.shutdown(); - } - } -} diff --git a/speech/grpc/src/main/java/com/examples/cloud/speech/RecognitionAudioFactory.java b/speech/grpc/src/main/java/com/examples/cloud/speech/RecognitionAudioFactory.java deleted file mode 100644 index 2f340b94fb4..00000000000 --- a/speech/grpc/src/main/java/com/examples/cloud/speech/RecognitionAudioFactory.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.examples.cloud.speech; - -import com.google.cloud.speech.v1beta1.RecognitionAudio; -import com.google.protobuf.ByteString; - -import java.io.File; -import java.io.IOException; -import java.net.URI; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; - -/* - * RecognitionAudioFactory takes a URI as an input and creates a RecognitionAudio. - * The URI can point to a local file or a file on Google Cloud Storage. - */ -public class RecognitionAudioFactory { - - private static final String FILE_SCHEME = "file"; - private static final String GS_SCHEME = "gs"; - - /** - * Takes an input URI of form $scheme:// and converts to audio request. - * - * @param uri input uri - * @return RecognitionAudio recognition audio - */ - public static RecognitionAudio createRecognitionAudio(URI uri) throws IOException { - if (uri.getScheme() == null) { - uri = new File(uri.toString()).toURI(); - Path path = Paths.get(uri); - return audioFromBytes(Files.readAllBytes(path)); - } else if (uri.getScheme().equals(FILE_SCHEME)) { - Path path = Paths.get(uri); - return audioFromBytes(Files.readAllBytes(path)); - } else if (uri.getScheme().equals(GS_SCHEME)) { - return RecognitionAudio.newBuilder().setUri(uri.toString()).build(); - } - throw new RuntimeException("scheme not supported " + uri.getScheme()); - } - - /** - * Convert bytes to RecognitionAudio. - * - * @param bytes input bytes - * @return RecognitionAudio recognition audio - */ - private static RecognitionAudio audioFromBytes(byte[] bytes) { - return RecognitionAudio.newBuilder().setContent(ByteString.copyFrom(bytes)).build(); - } -} diff --git a/speech/grpc/src/main/java/com/examples/cloud/speech/StreamingRecognizeClient.java b/speech/grpc/src/main/java/com/examples/cloud/speech/StreamingRecognizeClient.java deleted file mode 100644 index 7a70b0359fb..00000000000 --- a/speech/grpc/src/main/java/com/examples/cloud/speech/StreamingRecognizeClient.java +++ /dev/null @@ -1,295 +0,0 @@ -/* - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.examples.cloud.speech; - -import static org.apache.log4j.ConsoleAppender.SYSTEM_OUT; - -import com.google.auth.oauth2.GoogleCredentials; -import com.google.cloud.speech.v1beta1.RecognitionConfig; -import com.google.cloud.speech.v1beta1.RecognitionConfig.AudioEncoding; -import com.google.cloud.speech.v1beta1.SpeechGrpc; -import com.google.cloud.speech.v1beta1.StreamingRecognitionConfig; -import com.google.cloud.speech.v1beta1.StreamingRecognitionResult; -import com.google.cloud.speech.v1beta1.StreamingRecognizeRequest; -import com.google.cloud.speech.v1beta1.StreamingRecognizeResponse; -import com.google.protobuf.ByteString; - -import io.grpc.ManagedChannel; -import io.grpc.ManagedChannelBuilder; -import io.grpc.auth.ClientAuthInterceptor; -import io.grpc.stub.StreamObserver; - -import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.DefaultParser; -import org.apache.commons.cli.Option; -import org.apache.commons.cli.Options; -import org.apache.commons.cli.ParseException; -import org.apache.log4j.ConsoleAppender; -import org.apache.log4j.Level; -import org.apache.log4j.Logger; -import org.apache.log4j.SimpleLayout; - -import java.io.IOException; -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import javax.sound.sampled.AudioFormat; -import javax.sound.sampled.AudioSystem; -import javax.sound.sampled.DataLine; -import javax.sound.sampled.LineUnavailableException; -import javax.sound.sampled.TargetDataLine; - - -/** - * Client that sends streaming audio to Speech.Recognize and returns streaming transcript. - */ -public class StreamingRecognizeClient { - - private static final Logger logger = Logger.getLogger(StreamingRecognizeClient.class.getName()); - - private final ManagedChannel channel; - private final SpeechGrpc.SpeechStub speechClient; - private static final List OAUTH2_SCOPES = - Arrays.asList("https://www.googleapis.com/auth/cloud-platform"); - - static final int BYTES_PER_SAMPLE = 2; // bytes per sample for LINEAR16 - - private final int samplingRate; - final int bytesPerBuffer; // buffer size in bytes - - // Used for testing - protected TargetDataLine mockDataLine = null; - - /** - * Construct client connecting to Cloud Speech server at {@code host:port}. - */ - public StreamingRecognizeClient(ManagedChannel channel, int samplingRate) - throws IOException { - this.samplingRate = samplingRate; - this.channel = channel; - this.bytesPerBuffer = samplingRate * BYTES_PER_SAMPLE / 10; // 100 ms - - speechClient = SpeechGrpc.newStub(channel); - - // Send log4j logs to Console - // If you are going to run this on GCE, you might wish to integrate with - // google-cloud-java logging. See: - // https://github.com/GoogleCloudPlatform/google-cloud-java/blob/master/README.md#stackdriver-logging-alpha - ConsoleAppender appender = new ConsoleAppender(new SimpleLayout(), SYSTEM_OUT); - logger.addAppender(appender); - } - - public void shutdown() throws InterruptedException { - channel.shutdown().awaitTermination(5, TimeUnit.SECONDS); - } - - static ManagedChannel createChannel(String host, int port) throws IOException { - GoogleCredentials creds = GoogleCredentials.getApplicationDefault(); - creds = creds.createScoped(OAUTH2_SCOPES); - ManagedChannel channel = - ManagedChannelBuilder.forAddress(host, port) - .intercept(new ClientAuthInterceptor(creds, Executors.newSingleThreadExecutor())) - .build(); - - return channel; - } - - /** - * Return a Line to the audio input device. - */ - private TargetDataLine getAudioInputLine() { - // For testing - if (null != mockDataLine) { - return mockDataLine; - } - - AudioFormat format = new AudioFormat(samplingRate, BYTES_PER_SAMPLE * 8, 1, true, false); - DataLine.Info info = new DataLine.Info(TargetDataLine.class, format); - if (!AudioSystem.isLineSupported(info)) { - throw new RuntimeException(String.format( - "Device doesn't support LINEAR16 mono raw audio format at {%d}Hz", samplingRate)); - } - try { - TargetDataLine line = (TargetDataLine) AudioSystem.getLine(info); - // Make sure the line buffer doesn't overflow while we're filling this thread's buffer. - line.open(format, bytesPerBuffer * 5); - return line; - } catch (LineUnavailableException e) { - throw new RuntimeException(e); - } - } - - /** Send streaming recognize requests to server. */ - public void recognize() throws InterruptedException, IOException { - final CountDownLatch finishLatch = new CountDownLatch(1); - StreamObserver responseObserver = - new StreamObserver() { - private int sentenceLength = 1; - /** - * Prints the transcription results. Interim results are overwritten by subsequent - * results, until a final one is returned, at which point we start a new line. - * - * Flags the program to exit when it hears "exit". - */ - @Override - public void onNext(StreamingRecognizeResponse response) { - List results = response.getResultsList(); - if (results.size() < 1) { - return; - } - - StreamingRecognitionResult result = results.get(0); - String transcript = result.getAlternatives(0).getTranscript(); - - // Print interim results with a line feed, so subsequent transcriptions will overwrite - // it. Final result will print a newline. - String format = "%-" + this.sentenceLength + 's'; - if (result.getIsFinal()) { - format += '\n'; - this.sentenceLength = 1; - - if (transcript.toLowerCase().indexOf("exit") >= 0) { - finishLatch.countDown(); - } - } else { - format += '\r'; - this.sentenceLength = transcript.length(); - } - System.out.print(String.format(format, transcript)); - } - - @Override - public void onError(Throwable error) { - logger.log(Level.ERROR, "recognize failed: {0}", error); - finishLatch.countDown(); - } - - @Override - public void onCompleted() { - logger.info("recognize completed."); - finishLatch.countDown(); - } - }; - - StreamObserver requestObserver = - speechClient.streamingRecognize(responseObserver); - try { - // Build and send a StreamingRecognizeRequest containing the parameters for - // processing the audio. - RecognitionConfig config = - RecognitionConfig.newBuilder() - .setEncoding(AudioEncoding.LINEAR16) - .setSampleRate(samplingRate) - .build(); - StreamingRecognitionConfig streamingConfig = - StreamingRecognitionConfig.newBuilder() - .setConfig(config) - .setInterimResults(true) - .setSingleUtterance(false) - .build(); - - StreamingRecognizeRequest initial = - StreamingRecognizeRequest.newBuilder().setStreamingConfig(streamingConfig).build(); - requestObserver.onNext(initial); - - // Get a Line to the audio input device. - TargetDataLine in = getAudioInputLine(); - byte[] buffer = new byte[bytesPerBuffer]; - int bytesRead; - - in.start(); - // Read and send sequential buffers of audio as additional RecognizeRequests. - while (finishLatch.getCount() > 0 - && (bytesRead = in.read(buffer, 0, buffer.length)) != -1) { - StreamingRecognizeRequest request = - StreamingRecognizeRequest.newBuilder() - .setAudioContent(ByteString.copyFrom(buffer, 0, bytesRead)) - .build(); - requestObserver.onNext(request); - } - } catch (RuntimeException e) { - // Cancel RPC. - requestObserver.onError(e); - throw e; - } - // Mark the end of requests. - requestObserver.onCompleted(); - - // Receiving happens asynchronously. - finishLatch.await(1, TimeUnit.MINUTES); - } - - public static void main(String[] args) throws Exception { - - String host = null; - Integer port = null; - Integer sampling = null; - - CommandLineParser parser = new DefaultParser(); - - Options options = new Options(); - options.addOption( - Option.builder() - .longOpt("host") - .desc("endpoint for api, e.g. speech.googleapis.com") - .hasArg() - .argName("ENDPOINT") - .build()); - options.addOption( - Option.builder() - .longOpt("port") - .desc("SSL port, usually 443") - .hasArg() - .argName("PORT") - .build()); - options.addOption( - Option.builder() - .longOpt("sampling") - .desc("Sampling Rate, i.e. 16000") - .hasArg() - .argName("RATE") - .build()); - - try { - CommandLine line = parser.parse(options, args); - - host = line.getOptionValue("host", "speech.googleapis.com"); - port = Integer.parseInt(line.getOptionValue("port", "443")); - - if (line.hasOption("sampling")) { - sampling = Integer.parseInt(line.getOptionValue("sampling")); - } else { - System.err.println("An Audio sampling rate (--sampling) must be specified. (e.g. 16000)"); - System.exit(1); - } - } catch (ParseException exp) { - System.err.println("Unexpected exception:" + exp.getMessage()); - System.exit(1); - } - - ManagedChannel channel = createChannel(host, port); - StreamingRecognizeClient client = new StreamingRecognizeClient(channel, sampling); - try { - client.recognize(); - } finally { - client.shutdown(); - } - } -} diff --git a/speech/grpc/src/main/java/com/examples/cloud/speech/SyncRecognizeClient.java b/speech/grpc/src/main/java/com/examples/cloud/speech/SyncRecognizeClient.java deleted file mode 100644 index 9b8e68efb17..00000000000 --- a/speech/grpc/src/main/java/com/examples/cloud/speech/SyncRecognizeClient.java +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.examples.cloud.speech; - -import com.google.auth.oauth2.GoogleCredentials; -import com.google.cloud.speech.v1beta1.RecognitionAudio; -import com.google.cloud.speech.v1beta1.RecognitionConfig; -import com.google.cloud.speech.v1beta1.RecognitionConfig.AudioEncoding; -import com.google.cloud.speech.v1beta1.SpeechGrpc; -import com.google.cloud.speech.v1beta1.SyncRecognizeRequest; -import com.google.cloud.speech.v1beta1.SyncRecognizeResponse; -import com.google.protobuf.TextFormat; - -import io.grpc.ManagedChannel; -import io.grpc.ManagedChannelBuilder; -import io.grpc.StatusRuntimeException; -import io.grpc.auth.ClientAuthInterceptor; - -import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.CommandLineParser; -import org.apache.commons.cli.DefaultParser; -import org.apache.commons.cli.Option; -import org.apache.commons.cli.Options; -import org.apache.commons.cli.ParseException; - -import java.io.IOException; -import java.net.URI; -import java.util.Arrays; -import java.util.List; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * Client that sends audio to Speech.SyncRecognize and returns transcript. - */ -public class SyncRecognizeClient { - - private static final Logger logger = Logger.getLogger(SyncRecognizeClient.class.getName()); - - private final URI input; - private final int samplingRate; - - private final ManagedChannel channel; - private final SpeechGrpc.SpeechBlockingStub speechClient; - - private static final List OAUTH2_SCOPES = - Arrays.asList("https://www.googleapis.com/auth/cloud-platform"); - - /** - * Construct client connecting to Cloud Speech server at {@code host:port}. - */ - public SyncRecognizeClient(ManagedChannel channel, URI input, int samplingRate) - throws IOException { - this.input = input; - this.samplingRate = samplingRate; - this.channel = channel; - - speechClient = SpeechGrpc.newBlockingStub(channel); - } - - private RecognitionAudio createRecognitionAudio() throws IOException { - return RecognitionAudioFactory.createRecognitionAudio(this.input); - } - - public void shutdown() throws InterruptedException { - channel.shutdown().awaitTermination(5, TimeUnit.SECONDS); - } - - static ManagedChannel createChannel(String host, int port) throws IOException { - GoogleCredentials creds = GoogleCredentials.getApplicationDefault(); - creds = creds.createScoped(OAUTH2_SCOPES); - ManagedChannel channel = - ManagedChannelBuilder.forAddress(host, port) - .intercept(new ClientAuthInterceptor(creds, Executors.newSingleThreadExecutor())) - .build(); - - return channel; - } - - /** Send a non-streaming-recognize request to server. */ - public void recognize() { - RecognitionAudio audio; - try { - audio = createRecognitionAudio(); - } catch (IOException e) { - logger.log(Level.WARNING, "Failed to read audio uri input: " + input); - return; - } - logger.info("Sending " + audio.getContent().size() + " bytes from audio uri input: " + input); - RecognitionConfig config = - RecognitionConfig.newBuilder() - .setEncoding(AudioEncoding.LINEAR16) - .setSampleRate(samplingRate) - .build(); - SyncRecognizeRequest request = - SyncRecognizeRequest.newBuilder().setConfig(config).setAudio(audio).build(); - - SyncRecognizeResponse response; - try { - response = speechClient.syncRecognize(request); - } catch (StatusRuntimeException e) { - logger.log(Level.WARNING, "RPC failed: {0}", e.getStatus()); - return; - } - logger.info("Received response: " + TextFormat.printToString(response)); - } - - public static void main(String[] args) throws Exception { - - String audioFile = ""; - String host = "speech.googleapis.com"; - Integer port = 443; - Integer sampling = 16000; - - CommandLineParser parser = new DefaultParser(); - - Options options = new Options(); - options.addOption( - Option.builder() - .longOpt("uri") - .desc("path to audio uri") - .hasArg() - .argName("FILE_PATH") - .build()); - options.addOption( - Option.builder() - .longOpt("host") - .desc("endpoint for api, e.g. speech.googleapis.com") - .hasArg() - .argName("ENDPOINT") - .build()); - options.addOption( - Option.builder() - .longOpt("port") - .desc("SSL port, usually 443") - .hasArg() - .argName("PORT") - .build()); - options.addOption( - Option.builder() - .longOpt("sampling") - .desc("Sampling Rate, i.e. 16000") - .hasArg() - .argName("RATE") - .build()); - - try { - CommandLine line = parser.parse(options, args); - if (line.hasOption("uri")) { - audioFile = line.getOptionValue("uri"); - } else { - System.err.println("An Audio uri must be specified (e.g. file:///foo/baz.raw)."); - System.exit(1); - } - - if (line.hasOption("host")) { - host = line.getOptionValue("host"); - } else { - System.err.println("An API enpoint must be specified (typically speech.googleapis.com)."); - System.exit(1); - } - - if (line.hasOption("port")) { - port = Integer.parseInt(line.getOptionValue("port")); - } else { - System.err.println("An SSL port must be specified (typically 443)."); - System.exit(1); - } - - if (line.hasOption("sampling")) { - sampling = Integer.parseInt(line.getOptionValue("sampling")); - } else { - System.err.println("An Audio sampling rate must be specified."); - System.exit(1); - } - } catch (ParseException exp) { - System.err.println("Unexpected exception:" + exp.getMessage()); - System.exit(1); - } - - ManagedChannel channel = createChannel(host, port); - SyncRecognizeClient client = new SyncRecognizeClient(channel, URI.create(audioFile), sampling); - try { - client.recognize(); - } finally { - client.shutdown(); - } - } -} diff --git a/speech/grpc/src/test/java/com/examples/cloud/speech/RecognitionAudioFactoryTest.java b/speech/grpc/src/test/java/com/examples/cloud/speech/RecognitionAudioFactoryTest.java deleted file mode 100644 index 0f1e01b24c4..00000000000 --- a/speech/grpc/src/test/java/com/examples/cloud/speech/RecognitionAudioFactoryTest.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.examples.cloud.speech; - -import static org.junit.Assert.assertEquals; - -import com.google.cloud.speech.v1beta1.RecognitionAudio; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; - -import java.io.File; -import java.io.IOException; -import java.net.URI; - -/** - * Unit tests for {@link RecognitionAudioFactory}. - */ -@RunWith(JUnit4.class) -public class RecognitionAudioFactoryTest { - private static final String PROJECT_ID = System.getenv("GOOGLE_CLOUD_PROJECT"); - private static final String BUCKET = PROJECT_ID; - - @Test - public void verifyBytesInSizeFromLocalFile() throws IOException { - URI uri = new File("resources/audio.raw").toURI(); - RecognitionAudio audio = RecognitionAudioFactory.createRecognitionAudio(uri); - - int numBytes = audio.getContent().toByteArray().length; - - //assert the number of bytes in the audio as 57958 - assertEquals(57958, numBytes); - } - - @Test - public void verifyBytesInSizeFromGoogleStorageFile() throws IOException { - String audioUri = "gs://" + BUCKET + "/speech/audio.raw"; - - URI uri = URI.create(audioUri); - RecognitionAudio audio = RecognitionAudioFactory.createRecognitionAudio(uri); - - int numBytes = audio.getContent().toByteArray().length; - - //assert the number of bytes in the audio as 0 - assertEquals(0, numBytes); - - //assert the uri - assertEquals(audioUri, audio.getUri()); - } -} diff --git a/speech/grpc/src/test/java/com/examples/cloud/speech/StreamingRecognizeClientTest.java b/speech/grpc/src/test/java/com/examples/cloud/speech/StreamingRecognizeClientTest.java deleted file mode 100644 index 7ed15a0fe9e..00000000000 --- a/speech/grpc/src/test/java/com/examples/cloud/speech/StreamingRecognizeClientTest.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * Copyright 2016 Google Inc. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.examples.cloud.speech; - -import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.anyInt; -import static org.mockito.Mockito.when; - -import io.grpc.ManagedChannel; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.mockito.invocation.InvocationOnMock; -import org.mockito.stubbing.Answer; - -import java.io.ByteArrayOutputStream; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.PrintStream; -import javax.sound.sampled.TargetDataLine; - - -/** - * Unit tests for {@link StreamingRecognizeClient }. - */ -@RunWith(JUnit4.class) -public class StreamingRecognizeClientTest { - private final ByteArrayOutputStream stdout = new ByteArrayOutputStream(); - private static final PrintStream REAL_OUT = System.out; - - @Mock private TargetDataLine mockDataLine; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - System.setOut(new PrintStream(stdout)); - } - - @After - public void tearDown() { - System.setOut(REAL_OUT); - } - - @Test - public void test16KHzAudio() throws InterruptedException, IOException { - String host = "speech.googleapis.com"; - int port = 443; - ManagedChannel channel = StreamingRecognizeClient.createChannel(host, port); - - final FileInputStream in = new FileInputStream("resources/audio.raw"); - - final int samplingRate = 16000; - final StreamingRecognizeClient client = new StreamingRecognizeClient(channel, samplingRate); - - // When audio data is requested from the mock, get it from the file - when(mockDataLine.read(any(byte[].class), anyInt(), anyInt())).thenAnswer(new Answer() { - public Object answer(InvocationOnMock invocation) { - Object[] args = invocation.getArguments(); - byte[] buffer = (byte[])args[0]; - int offset = (int)args[1]; - int len = (int)args[2]; - assertThat(buffer.length).isEqualTo(len); - - try { - // Sleep, to simulate realtime - int samplesPerBuffer = client.bytesPerBuffer / StreamingRecognizeClient.BYTES_PER_SAMPLE; - int samplesPerMillis = samplingRate / 1000; - Thread.sleep(samplesPerBuffer / samplesPerMillis); - - // Provide the audio bytes from the file - return in.read(buffer, offset, len); - - } catch (Exception e) { - throw new RuntimeException(e); - } - } - }); - client.mockDataLine = mockDataLine; - - client.recognize(); - - assertThat(stdout.toString()).contains("how old is the Brooklyn Bridge"); - } - - @Test - public void test32KHzAudio() throws InterruptedException, IOException { - String host = "speech.googleapis.com"; - int port = 443; - ManagedChannel channel = StreamingRecognizeClient.createChannel(host, port); - - final FileInputStream in = new FileInputStream("resources/audio32KHz.raw"); - - final int samplingRate = 32000; - final StreamingRecognizeClient client = new StreamingRecognizeClient(channel, samplingRate); - - // When audio data is requested from the mock, get it from the file - when(mockDataLine.read(any(byte[].class), anyInt(), anyInt())).thenAnswer(new Answer() { - public Object answer(InvocationOnMock invocation) { - Object[] args = invocation.getArguments(); - byte[] buffer = (byte[])args[0]; - int offset = (int)args[1]; - int len = (int)args[2]; - assertThat(buffer.length).isEqualTo(len); - - try { - // Sleep, to simulate realtime - int samplesPerBuffer = client.bytesPerBuffer / StreamingRecognizeClient.BYTES_PER_SAMPLE; - int samplesPerMillis = samplingRate / 1000; - Thread.sleep(samplesPerBuffer / samplesPerMillis); - - // Provide the audio bytes from the file - return in.read(buffer, offset, len); - } catch (Exception e) { - throw new RuntimeException(e); - } - } - }); - client.mockDataLine = mockDataLine; - - client.recognize(); - - assertThat(stdout.toString()).contains("how old is the Brooklyn Bridge"); - } -}