Kurze Audiodateien transkribieren

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Auf dieser Seite wird gezeigt, wie eine kurze Audiodatei mithilfe synchroner Spracherkennung in Text transkribiert wird.

Bei der synchronen Spracherkennung wird der erkannte Text für eine kurze Audiosequenz (unter 60 Sekunden) zurückgegeben.

Audioinhalte können direkt aus einer lokalen Datei an Speech-to-Text gesendet werden. Alternativ kann Speech-to-Text in einem Google Cloud Storage-Bucket gespeicherte Audioinhalte verarbeiten. Auf der Seite Kontingente und Limits finden Sie Limits für die Anfragen zur synchronen Spracherkennung.

Weitere Informationen zu Erkennungsmodulen und zum Senden von Erkennungsanfragen finden Sie in der Referenzdokumentation.

Synchrone Spracherkennung für eine lokale Datei ausführen

Im Folgenden finden Sie ein Beispiel für eine synchrone Spracherkennung für eine lokale Audiodatei.

Python

import io

from google.cloud.speech_v2 import SpeechClient
from google.cloud.speech_v2.types import cloud_speech

def transcribe_file_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

Synchrone Spracherkennung für eine Remotedatei durchführen

Zur Erleichterung Ihrer Arbeit kann die Speech-to-Text API die synchrone Spracherkennung direkt für eine Audiodatei in Google Cloud Storage ausführen, ohne dass Sie den Inhalt der Audiodatei im Text Ihrer Anfrage senden müssen.

Damit Speech-to-Text auf Ihre Dateien in Google Cloud Storage zugreifen kann, müssen Sie ein Dienstkonto für Speech-to-Text erstellen und diesem Konto Lesezugriff auf das entsprechende Speicherobjekt gewähren. Führen Sie in Cloud Shell den folgenden Befehl aus, um ein Dienstkonto zu erstellen und aufzurufen, falls es nicht vorhanden ist.

gcloud beta services identity create --service=speech.googleapis.com \
    --project=PROJECT_ID

Wenn Sie aufgefordert werden, die Komponente gcloud Beta Commands zu installieren, geben Sie Y ein. Nach der Installation wird der Befehl automatisch neu gestartet.

Die Dienstkonto-ID ist wie eine E-Mail-Adresse formatiert:

Service identity created: service-xxx@gcp-sa-speech.iam.gserviceaccount.com

Gewähren Sie diesem Konto Lesezugriff auf das relevante Speicherobjekt, auf dem Sie die Erkennung ausführen möchten.

Weitere Informationen zur Verwaltung des Zugriffs auf Google Cloud Storage finden Sie unter Zugriffssteuerungslisten erstellen und verwalten in der Google Cloud Storage-Dokumentation.

Hier ist ein Beispiel für die Durchführung einer synchronen Spracherkennung für eine Datei in Cloud Storage:

Python

from google.cloud.speech_v2 import SpeechClient
from google.cloud.speech_v2.types import cloud_speech

def transcribe_gcs_v2(project_id, recognizer_id, gcs_uri):
    # 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()

    config = cloud_speech.RecognitionConfig(auto_decoding_config={})

    request = cloud_speech.RecognizeRequest(
        recognizer=recognizer.name, config=config, uri=gcs_uri
    )

    # Transcribes the audio into text
    response = client.recognize(request=request)

    for result in response.results:
        print("Transcript: {}".format(result.alternatives[0].transcript))

    return response