From a383136e78f88adbb9ba13492817da7ae2f4c3b0 Mon Sep 17 00:00:00 2001 From: Rebecca Taylor Date: Mon, 21 Oct 2019 16:58:44 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=8D=20Add=20examples=20of=20generated?= =?UTF-8?q?=20samples=20for=20code=20review?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- language_sentiment_text.py | 90 ++++++++++++++++++++++++++++++++++++++ speech_transcribe_async.py | 90 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 language_sentiment_text.py create mode 100644 speech_transcribe_async.py diff --git a/language_sentiment_text.py b/language_sentiment_text.py new file mode 100644 index 000000000000..c1325678bf39 --- /dev/null +++ b/language_sentiment_text.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2019 Google LLC +# +# 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 +# +# https://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. + +# DO NOT EDIT! This is a generated sample ("Request", "language_sentiment_text") + +# To install the latest published package dependency, execute the following: +# pip install google-cloud-language + +# sample-metadata +# title: Analyzing Sentiment +# description: Analyzing Sentiment in a String +# usage: python3 samples/v1/language_sentiment_text.py [--text_content "I am so happy and joyful."] + +# [START language_sentiment_text] +from google.cloud import language_v1 +from google.cloud.language_v1 import enums + + +def sample_analyze_sentiment(text_content): + """ + Analyzing Sentiment in a String + + Args: + text_content The text content to analyze + """ + + client = language_v1.LanguageServiceClient() + + # text_content = 'I am so happy and joyful.' + + # Available types: PLAIN_TEXT, HTML + type_ = enums.Document.Type.PLAIN_TEXT + + # Optional. If not specified, the language is automatically detected. + # For list of supported languages: + # https://cloud.google.com/natural-language/docs/languages + language = "en" + document = {"content": text_content, "type": type_, "language": language} + + # Available values: NONE, UTF8, UTF16, UTF32 + encoding_type = enums.EncodingType.UTF8 + + response = client.analyze_sentiment(document, encoding_type=encoding_type) + # Get overall sentiment of the input document + print(u"Document sentiment score: {}".format(response.document_sentiment.score)) + print( + u"Document sentiment magnitude: {}".format( + response.document_sentiment.magnitude + ) + ) + # Get sentiment for all sentences in the document + for sentence in response.sentences: + print(u"Sentence text: {}".format(sentence.text.content)) + print(u"Sentence sentiment score: {}".format(sentence.sentiment.score)) + print(u"Sentence sentiment magnitude: {}".format(sentence.sentiment.magnitude)) + + # Get the language of the text, which will be the same as + # the language specified in the request or, if not specified, + # the automatically-detected language. + print(u"Language of the text: {}".format(response.language)) + + +# [END language_sentiment_text] + + +def main(): + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument("--text_content", type=str, default="I am so happy and joyful.") + args = parser.parse_args() + + sample_analyze_sentiment(args.text_content) + + +if __name__ == "__main__": + main() diff --git a/speech_transcribe_async.py b/speech_transcribe_async.py new file mode 100644 index 000000000000..5c3dacf2dc4f --- /dev/null +++ b/speech_transcribe_async.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2019 Google LLC +# +# 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 +# +# https://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. + +# DO NOT EDIT! This is a generated sample ("LongRunningPromise", "speech_transcribe_async") + +# To install the latest published package dependency, execute the following: +# pip install google-cloud-speech + +# sample-metadata +# title: Transcribe Audio File using Long Running Operation (Local File) (LRO) +# description: Transcribe a long audio file using asynchronous speech recognition +# usage: python3 samples/v1/speech_transcribe_async.py [--local_file_path "resources/brooklyn_bridge.raw"] + +# [START speech_transcribe_async] +from google.cloud import speech_v1 +from google.cloud.speech_v1 import enums +import io + + +def sample_long_running_recognize(local_file_path): + """ + Transcribe a long audio file using asynchronous speech recognition + + Args: + local_file_path Path to local audio file, e.g. /path/audio.wav + """ + + client = speech_v1.SpeechClient() + + # local_file_path = 'resources/brooklyn_bridge.raw' + + # The language of the supplied audio + language_code = "en-US" + + # Sample rate in Hertz of the audio data sent + sample_rate_hertz = 16000 + + # Encoding of audio data sent. This sample sets this explicitly. + # This field is optional for FLAC and WAV audio formats. + encoding = enums.RecognitionConfig.AudioEncoding.LINEAR16 + config = { + "language_code": language_code, + "sample_rate_hertz": sample_rate_hertz, + "encoding": encoding, + } + with io.open(local_file_path, "rb") as f: + content = f.read() + audio = {"content": content} + + operation = client.long_running_recognize(config, audio) + + print(u"Waiting for operation to complete...") + response = operation.result() + + for result in response.results: + # First alternative is the most probable result + alternative = result.alternatives[0] + print(u"Transcript: {}".format(alternative.transcript)) + + +# [END speech_transcribe_async] + + +def main(): + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument( + "--local_file_path", type=str, default="resources/brooklyn_bridge.raw" + ) + args = parser.parse_args() + + sample_long_running_recognize(args.local_file_path) + + +if __name__ == "__main__": + main()