Skip to content

Commit

Permalink
docs(samples): add quickstart code sample for STT V2 (#451)
Browse files Browse the repository at this point in the history
Co-authored-by: Nitsan Shai <[email protected]>
Co-authored-by: nicain <[email protected]>
  • Loading branch information
3 people authored and telpirion committed Mar 13, 2023
1 parent 825006d commit 2896c00
Show file tree
Hide file tree
Showing 3 changed files with 110 additions and 0 deletions.
62 changes: 62 additions & 0 deletions speech/snippets/quickstart_v2.py
Original file line number Diff line number Diff line change
@@ -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()
48 changes: 48 additions & 0 deletions speech/snippets/quickstart_v2_test.py
Original file line number Diff line number Diff line change
@@ -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}"
)
Binary file added speech/snippets/resources/audio.wav
Binary file not shown.

0 comments on commit 2896c00

Please sign in to comment.