diff --git a/speech/snippets/quickstart_v2.py b/speech/snippets/quickstart_v2.py new file mode 100644 index 000000000000..6ba58ef7ec8d --- /dev/null +++ b/speech/snippets/quickstart_v2.py @@ -0,0 +1,62 @@ +# Copyright 2022 Google Inc. +# +# 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. + + +# [START speech_quickstart_v2] +import io + +from google.cloud.speech_v2 import SpeechClient +from google.cloud.speech_v2.types import cloud_speech + + +def quickstart_v2(project_id, recognizer_id, audio_file): + # Instantiates a client + client = SpeechClient() + + request = cloud_speech.CreateRecognizerRequest( + parent=f"projects/{project_id}/locations/global", + recognizer_id=recognizer_id, + recognizer=cloud_speech.Recognizer( + language_codes=["en-US"], model="latest_long" + ), + ) + + # Creates a Recognizer + operation = client.create_recognizer(request=request) + recognizer = operation.result() + + # Reads a file as bytes + with io.open(audio_file, "rb") as f: + content = f.read() + + config = cloud_speech.RecognitionConfig(auto_decoding_config={}) + + request = cloud_speech.RecognizeRequest( + recognizer=recognizer.name, config=config, content=content + ) + + # Transcribes the audio into text + response = client.recognize(request=request) + + for result in response.results: + print("Transcript: {}".format(result.alternatives[0].transcript)) + + return response + + +# [END speech_quickstart_v2] + + +if __name__ == "__main__": + quickstart_v2() diff --git a/speech/snippets/quickstart_v2_test.py b/speech/snippets/quickstart_v2_test.py new file mode 100644 index 000000000000..5991c54006ed --- /dev/null +++ b/speech/snippets/quickstart_v2_test.py @@ -0,0 +1,48 @@ +# Copyright 2022, Google, Inc. +# 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. + +import os +import re +from uuid import uuid4 + +from google.cloud.speech_v2 import SpeechClient +from google.cloud.speech_v2.types import cloud_speech + +import quickstart_v2 + +RESOURCES = os.path.join(os.path.dirname(__file__), "resources") + + +def delete_recognizer(name): + client = SpeechClient() + request = cloud_speech.DeleteRecognizerRequest(name=name) + client.delete_recognizer(request=request) + + +def test_quickstart_v2(capsys): + project_id = os.getenv("GOOGLE_CLOUD_PROJECT") + + recognizer_id = "recognizer-" + str(uuid4()) + response = quickstart_v2.quickstart_v2( + project_id, recognizer_id, os.path.join(RESOURCES, "audio.wav") + ) + + assert re.search( + r"how old is the Brooklyn Bridge", + response.results[0].alternatives[0].transcript, + re.DOTALL | re.I, + ) + + delete_recognizer( + f"projects/{project_id}/locations/global/recognizers/{recognizer_id}" + ) diff --git a/speech/snippets/resources/audio.wav b/speech/snippets/resources/audio.wav new file mode 100644 index 000000000000..140a3022e96c Binary files /dev/null and b/speech/snippets/resources/audio.wav differ