From 5ed6ed59c90050925ad1ede361fa82afb3cc2f3f Mon Sep 17 00:00:00 2001 From: Nitsan Shai Date: Tue, 11 Oct 2022 18:54:02 -0400 Subject: [PATCH] samples: Code samples for Speech-to-Text V2 (#460) Co-authored-by: Nitsan Shai --- .../adaptation_v2_custom_class_reference.py | 92 ++++++++++++++++++ ...aptation_v2_custom_class_reference_test.py | 70 +++++++++++++ .../adaptation_v2_inline_custom_class.py | 73 ++++++++++++++ .../adaptation_v2_inline_custom_class_test.py | 48 +++++++++ .../adaptation_v2_inline_phrase_set.py | 71 ++++++++++++++ .../adaptation_v2_inline_phrase_set_test.py | 48 +++++++++ .../adaptation_v2_phrase_set_reference.py | 79 +++++++++++++++ ...adaptation_v2_phrase_set_reference_test.py | 59 +++++++++++ speech/snippets/create_recognizer.py | 2 - speech/snippets/quickstart_v2.py | 2 - speech/snippets/resources/baby_keem.wav | Bin 0 -> 162142 bytes speech/snippets/transcribe_file_v2.py | 60 ++++++++++++ speech/snippets/transcribe_file_v2_test.py | 48 +++++++++ speech/snippets/transcribe_gcs_v2.py | 54 ++++++++++ speech/snippets/transcribe_gcs_v2_test.py | 46 +++++++++ speech/snippets/transcribe_streaming_v2.py | 81 +++++++++++++++ .../snippets/transcribe_streaming_v2_test.py | 53 ++++++++++ 17 files changed, 882 insertions(+), 4 deletions(-) create mode 100644 speech/snippets/adaptation_v2_custom_class_reference.py create mode 100644 speech/snippets/adaptation_v2_custom_class_reference_test.py create mode 100644 speech/snippets/adaptation_v2_inline_custom_class.py create mode 100644 speech/snippets/adaptation_v2_inline_custom_class_test.py create mode 100644 speech/snippets/adaptation_v2_inline_phrase_set.py create mode 100644 speech/snippets/adaptation_v2_inline_phrase_set_test.py create mode 100644 speech/snippets/adaptation_v2_phrase_set_reference.py create mode 100644 speech/snippets/adaptation_v2_phrase_set_reference_test.py create mode 100644 speech/snippets/resources/baby_keem.wav create mode 100644 speech/snippets/transcribe_file_v2.py create mode 100644 speech/snippets/transcribe_file_v2_test.py create mode 100644 speech/snippets/transcribe_gcs_v2.py create mode 100644 speech/snippets/transcribe_gcs_v2_test.py create mode 100644 speech/snippets/transcribe_streaming_v2.py create mode 100644 speech/snippets/transcribe_streaming_v2_test.py diff --git a/speech/snippets/adaptation_v2_custom_class_reference.py b/speech/snippets/adaptation_v2_custom_class_reference.py new file mode 100644 index 000000000000..542b0d51108e --- /dev/null +++ b/speech/snippets/adaptation_v2_custom_class_reference.py @@ -0,0 +1,92 @@ +# 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_adaptation_v2_custom_class_reference] +import io + +from google.cloud.speech_v2 import SpeechClient +from google.cloud.speech_v2.types import cloud_speech + + +def adaptation_v2_custom_class_reference(project_id, recognizer_id, phrase_set_id, custom_class_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_short" + ), + ) + + # 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() + + # Create a persistent CustomClass to reference in phrases + request = cloud_speech.CreateCustomClassRequest( + parent=f"projects/{project_id}/locations/global", + custom_class_id=custom_class_id, + custom_class=cloud_speech.CustomClass(items=[{"value": "Keem"}])) + + operation = client.create_custom_class(request=request) + custom_class = operation.result() + + # Create a persistent PhraseSet to reference in a recognition request + request = cloud_speech.CreatePhraseSetRequest( + parent=f"projects/{project_id}/locations/global", + phrase_set_id=phrase_set_id, + phrase_set=cloud_speech.PhraseSet(phrases=[{"value": f"${{{custom_class.name}}}", "boost": 20}])) + + operation = client.create_phrase_set(request=request) + phrase_set = operation.result() + + # Add a reference of the PhraseSet into the recognition request + adaptation = cloud_speech.SpeechAdaptation( + phrase_sets=[ + cloud_speech.SpeechAdaptation.AdaptationPhraseSet( + phrase_set=phrase_set.name + ) + ] + ) + config = cloud_speech.RecognitionConfig( + auto_decoding_config={}, adaptation=adaptation + ) + + print(custom_class) + print(phrase_set) + print(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_adaptation_v2_custom_class_reference] + + +if __name__ == "__main__": + adaptation_v2_custom_class_reference() diff --git a/speech/snippets/adaptation_v2_custom_class_reference_test.py b/speech/snippets/adaptation_v2_custom_class_reference_test.py new file mode 100644 index 000000000000..a76aa6c9cf30 --- /dev/null +++ b/speech/snippets/adaptation_v2_custom_class_reference_test.py @@ -0,0 +1,70 @@ +# 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 adaptation_v2_custom_class_reference + +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 delete_phrase_set(name): + client = SpeechClient() + request = cloud_speech.DeletePhraseSetRequest(name=name) + client.delete_phrase_set(request=request) + + +def delete_custom_class(name): + client = SpeechClient() + request = cloud_speech.DeleteCustomClassRequest(name=name) + client.delete_custom_class(request=request) + + +def test_adaptation_v2_custom_class_reference(capsys): + project_id = os.getenv("GOOGLE_CLOUD_PROJECT") + + recognizer_id = "recognizer-" + str(uuid4()) + phrase_set_id = "phrase-set-" + str(uuid4()) + custom_class_id = "custom-class-" + str(uuid4()) + response = adaptation_v2_custom_class_reference.adaptation_v2_custom_class_reference( + project_id, recognizer_id, phrase_set_id, custom_class_id, os.path.join(RESOURCES, "baby_keem.wav") + ) + + assert re.search( + r"play Baby Keem", + response.results[0].alternatives[0].transcript, + re.DOTALL | re.I, + ) + + delete_recognizer( + f"projects/{project_id}/locations/global/recognizers/{recognizer_id}" + ) + + delete_phrase_set( + f"projects/{project_id}/locations/global/phraseSets/{phrase_set_id}" + ) + + delete_custom_class( + f"projects/{project_id}/locations/global/customClasses/{custom_class_id}" + ) diff --git a/speech/snippets/adaptation_v2_inline_custom_class.py b/speech/snippets/adaptation_v2_inline_custom_class.py new file mode 100644 index 000000000000..060a0a566dda --- /dev/null +++ b/speech/snippets/adaptation_v2_inline_custom_class.py @@ -0,0 +1,73 @@ +# 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_adaptation_v2_inline_custom_class] +import io + +from google.cloud.speech_v2 import SpeechClient +from google.cloud.speech_v2.types import cloud_speech + + +def adaptation_v2_inline_custom_class(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_short" + ), + ) + + # 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() + + # Build inline phrase set to produce a more accurate transcript + phrase_set = cloud_speech.PhraseSet(phrases=[{"value": "${keem}", "boost": 20}]) + custom_class = cloud_speech.CustomClass(name="keem", items=[{"value": "Keem"}]) + adaptation = cloud_speech.SpeechAdaptation( + phrase_sets=[ + cloud_speech.SpeechAdaptation.AdaptationPhraseSet( + inline_phrase_set=phrase_set + ) + ], + custom_classes=[custom_class] + ) + config = cloud_speech.RecognitionConfig( + auto_decoding_config={}, adaptation=adaptation + ) + + 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_adaptation_v2_inline_custom_class] + + +if __name__ == "__main__": + adaptation_v2_inline_custom_class() diff --git a/speech/snippets/adaptation_v2_inline_custom_class_test.py b/speech/snippets/adaptation_v2_inline_custom_class_test.py new file mode 100644 index 000000000000..79cdf78699ef --- /dev/null +++ b/speech/snippets/adaptation_v2_inline_custom_class_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 adaptation_v2_inline_custom_class + +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_adaptation_v2_inline_custom_class(capsys): + project_id = os.getenv("GOOGLE_CLOUD_PROJECT") + + recognizer_id = "recognizer-" + str(uuid4()) + response = adaptation_v2_inline_custom_class.adaptation_v2_inline_custom_class( + project_id, recognizer_id, os.path.join(RESOURCES, "baby_keem.wav") + ) + + assert re.search( + r"play Baby Keem", + 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/adaptation_v2_inline_phrase_set.py b/speech/snippets/adaptation_v2_inline_phrase_set.py new file mode 100644 index 000000000000..de2939b9788f --- /dev/null +++ b/speech/snippets/adaptation_v2_inline_phrase_set.py @@ -0,0 +1,71 @@ +# 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_adaptation_v2_inline_phrase_set] +import io + +from google.cloud.speech_v2 import SpeechClient +from google.cloud.speech_v2.types import cloud_speech + + +def adaptation_v2_inline_phrase_set(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_short" + ), + ) + + # 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() + + # Build inline phrase set to produce a more accurate transcript + phrase_set = cloud_speech.PhraseSet(phrases=[{"value": "Keem", "boost": 10}]) + adaptation = cloud_speech.SpeechAdaptation( + phrase_sets=[ + cloud_speech.SpeechAdaptation.AdaptationPhraseSet( + inline_phrase_set=phrase_set + ) + ] + ) + config = cloud_speech.RecognitionConfig( + auto_decoding_config={}, adaptation=adaptation + ) + + 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_adaptation_v2_inline_phrase_set] + + +if __name__ == "__main__": + adaptation_v2_inline_phrase_set() diff --git a/speech/snippets/adaptation_v2_inline_phrase_set_test.py b/speech/snippets/adaptation_v2_inline_phrase_set_test.py new file mode 100644 index 000000000000..4254381c3360 --- /dev/null +++ b/speech/snippets/adaptation_v2_inline_phrase_set_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 adaptation_v2_inline_phrase_set + +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_adaptation_v2_inline_phrase_set(capsys): + project_id = os.getenv("GOOGLE_CLOUD_PROJECT") + + recognizer_id = "recognizer-" + str(uuid4()) + response = adaptation_v2_inline_phrase_set.adaptation_v2_inline_phrase_set( + project_id, recognizer_id, os.path.join(RESOURCES, "baby_keem.wav") + ) + + assert re.search( + r"play Baby Keem", + 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/adaptation_v2_phrase_set_reference.py b/speech/snippets/adaptation_v2_phrase_set_reference.py new file mode 100644 index 000000000000..b89660d21ccd --- /dev/null +++ b/speech/snippets/adaptation_v2_phrase_set_reference.py @@ -0,0 +1,79 @@ +# 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_adaptation_v2_phrase_set_reference] +import io + +from google.cloud.speech_v2 import SpeechClient +from google.cloud.speech_v2.types import cloud_speech + + +def adaptation_v2_phrase_set_reference(project_id, recognizer_id, phrase_set_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_short" + ), + ) + + # 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() + + # Create a persistent PhraseSet to reference in a recognition request + request = cloud_speech.CreatePhraseSetRequest( + parent=f"projects/{project_id}/locations/global", + phrase_set_id=phrase_set_id, + phrase_set=cloud_speech.PhraseSet(phrases=[{"value": "Keem", "boost": 10}])) + + operation = client.create_phrase_set(request=request) + phrase_set = operation.result() + + # Add a reference of the PhraseSet into the recognition request + adaptation = cloud_speech.SpeechAdaptation( + phrase_sets=[ + cloud_speech.SpeechAdaptation.AdaptationPhraseSet( + phrase_set=phrase_set.name + ) + ] + ) + config = cloud_speech.RecognitionConfig( + auto_decoding_config={}, adaptation=adaptation + ) + + 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_adaptation_v2_phrase_set_reference] + + +if __name__ == "__main__": + adaptation_v2_phrase_set_reference() diff --git a/speech/snippets/adaptation_v2_phrase_set_reference_test.py b/speech/snippets/adaptation_v2_phrase_set_reference_test.py new file mode 100644 index 000000000000..933d552ad967 --- /dev/null +++ b/speech/snippets/adaptation_v2_phrase_set_reference_test.py @@ -0,0 +1,59 @@ +# 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 adaptation_v2_phrase_set_reference + +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 delete_phrase_set(name): + client = SpeechClient() + request = cloud_speech.DeletePhraseSetRequest(name=name) + client.delete_phrase_set(request=request) + + +def test_adaptation_v2_phrase_set_reference(capsys): + project_id = os.getenv("GOOGLE_CLOUD_PROJECT") + + recognizer_id = "recognizer-" + str(uuid4()) + phrase_set_id = "phrase-set-" + str(uuid4()) + response = adaptation_v2_phrase_set_reference.adaptation_v2_phrase_set_reference( + project_id, recognizer_id, phrase_set_id, os.path.join(RESOURCES, "baby_keem.wav") + ) + + assert re.search( + r"play Baby Keem", + response.results[0].alternatives[0].transcript, + re.DOTALL | re.I, + ) + + delete_recognizer( + f"projects/{project_id}/locations/global/recognizers/{recognizer_id}" + ) + + delete_phrase_set( + f"projects/{project_id}/locations/global/phraseSets/{phrase_set_id}" + ) diff --git a/speech/snippets/create_recognizer.py b/speech/snippets/create_recognizer.py index 43a3efcbe14d..986e7c5cd0ca 100644 --- a/speech/snippets/create_recognizer.py +++ b/speech/snippets/create_recognizer.py @@ -35,8 +35,6 @@ def create_recognizer(project_id, recognizer_id): print("Created Recognizer:", recognizer.name) return recognizer - - # [END speech_create_recognizer] diff --git a/speech/snippets/quickstart_v2.py b/speech/snippets/quickstart_v2.py index 6ba58ef7ec8d..d045c42c4655 100644 --- a/speech/snippets/quickstart_v2.py +++ b/speech/snippets/quickstart_v2.py @@ -53,8 +53,6 @@ def quickstart_v2(project_id, recognizer_id, audio_file): print("Transcript: {}".format(result.alternatives[0].transcript)) return response - - # [END speech_quickstart_v2] diff --git a/speech/snippets/resources/baby_keem.wav b/speech/snippets/resources/baby_keem.wav new file mode 100644 index 0000000000000000000000000000000000000000..4e7a5ca9bcd0f8f12ae468a0b9280afae4e50f02 GIT binary patch literal 162142 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:e#k%OPb`G@fnU5C+ZJq(+* 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 kLII(GP(Uak6c7ps1%v`Z0il3UKqw#-5DEwd{%