In diesem Abschnitt wird gezeigt, wie Sie Audiostreams, die z. B. mit einem Mikrofon aufgenommen wurden, in Text transkribieren können.
Mit der Spracherkennung per Streaming können Sie Audioinhalte an Cloud Speech-to-Text streamen. Sie erhalten dann in Echtzeit während der Verarbeitung dieser Audioinhalte die Ergebnisse der Spracherkennung per Streaming. Weitere Informationen zu Anfragen für die Spracherkennung per Streaming finden Sie unter Audiobeschränkungen. Die Spracherkennung per Streaming ist nur über gRPC verfügbar.
Hinweis
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Google Cloud-Konto haben, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Speech-to-Text APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Make sure that you have the following role or roles on the project: Cloud Speech Administrator
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
- Click Grant access.
-
In the New principals field, enter your user identifier. This is typically the email address for a Google Account.
- Click Select a role, then search for the role.
- To grant additional roles, click Add another role and add each additional role.
- Click Save.
-
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Speech-to-Text APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Make sure that you have the following role or roles on the project: Cloud Speech Administrator
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
- Click Grant access.
-
In the New principals field, enter your user identifier. This is typically the email address for a Google Account.
- Click Select a role, then search for the role.
- To grant additional roles, click Add another role and add each additional role.
- Click Save.
-
-
Installieren Sie die Google Cloud CLI.
-
Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
-
Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:
gcloud init -
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, ist dies nicht erforderlich.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Clientbibliotheken können Standardanmeldedaten für Anwendungen verwenden, um sich einfach bei Google APIs zu authentifizieren und Anfragen an diese APIs zu senden. Mit den Standardanmeldedaten für Anwendungen können Sie Ihre Anwendung lokal testen und bereitstellen, ohne den zugrunde liegenden Code zu ändern. Weitere Informationen finden Sie unter Für die Verwendung von Clientbibliotheken authentifizieren.
Prüfen Sie außerdem, ob Sie die Clientbibliothek installiert haben.
Spracherkennung per Streaming für eine lokale Datei ausführen
Der folgende Codeblock enthält ein Beispiel für eine Spracherkennung per Streaming für eine lokale Audiodatei. In den Anfragen eines Streams gesendete Audiodaten sind auf 25 KB begrenzt. Dieses Limit gilt sowohl für die erste StreamingRecognize-Anfrage als auch für die Größe jeder einzelnen Nachricht im Stream. Ein Überschreiten des Limits führt zu einem Fehler.
Python
import os
from google.cloud.speech_v2 import SpeechClient
from google.cloud.speech_v2.types import cloud_speech as cloud_speech_types
PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
def transcribe_streaming_v2(
stream_file: str,
) -> cloud_speech_types.StreamingRecognizeResponse:
"""Transcribes audio from an audio file stream using Google Cloud Speech-to-Text API.
Args:
stream_file (str): Path to the local audio file to be transcribed.
Example: "resources/audio.wav"
Returns:
list[cloud_speech_types.StreamingRecognizeResponse]: A list of objects.
Each response includes the transcription results for the corresponding audio segment.
"""
# Instantiates a client
client = SpeechClient()
# Reads a file as bytes
with open(stream_file, "rb") as f:
audio_content = f.read()
# In practice, stream should be a generator yielding chunks of audio data
chunk_length = len(audio_content) // 5
stream = [
audio_content[start : start + chunk_length]
for start in range(0, len(audio_content), chunk_length)
]
audio_requests = (
cloud_speech_types.StreamingRecognizeRequest(audio=audio) for audio in stream
)
recognition_config = cloud_speech_types.RecognitionConfig(
auto_decoding_config=cloud_speech_types.AutoDetectDecodingConfig(),
language_codes=["en-US"],
model="chirp_3",
)
streaming_config = cloud_speech_types.StreamingRecognitionConfig(
config=recognition_config
)
config_request = cloud_speech_types.StreamingRecognizeRequest(
recognizer=f"projects/{PROJECT_ID}/locations/global/recognizers/_",
streaming_config=streaming_config,
)
def requests(config: cloud_speech_types.RecognitionConfig, audio: list) -> list:
yield config
yield from audio
# Transcribes the audio into text
responses_iterator = client.streaming_recognize(
requests=requests(config_request, audio_requests)
)
responses = []
for response in responses_iterator:
responses.append(response)
for result in response.results:
print(f"Transcript: {result.alternatives[0].transcript}")
return responses
Sie können zwar eine lokale Audiodatei an die Speech-to-Text API streamen, wir empfehlen jedoch eine synchrone Audioerkennung.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden:
-
Optional: Widerrufen Sie die von Ihnen erstellten Anmeldedaten zur Authentifizierung und löschen Sie die lokale Datei mit den Anmeldedaten.
gcloud auth application-default revoke
-
Optional: Widerrufen Sie Anmeldedaten von der gcloud CLI.
gcloud auth revoke
Console
gcloud
Projekt löschen: Google Cloud
gcloud projects delete PROJECT_ID
Nächste Schritte
- Informationen zur Streamingerkennung finden Sie in der Referenzdokumentation.
- Erfahren Sie mehr über das Transkribieren von kurzen Audiodateien.
- Erfahren Sie mehr über das Transkribieren von langen Audiodateien.
- Best Practices-Dokumentation mit Tipps zu Leistung, Accuracy und anderen Themen