Von Speech-to-Text v1 zu v2 migrieren

Version 2 der Speech-to-Text API bietet das neueste Google Cloud API-Design, mit dem Kunden sofort die Sicherheits- und behördlichen Anforderungen für Unternehmen erfüllen können.

Diese Anforderungen werden durch Folgendes erfüllt:

  • Datenstandort Speech-to-Text Version 2 bietet die große Bandbreite unserer vorhandenen Transkriptionsmodelle inGoogle Cloud-Regionen wie Belgien oder Singapur. Dies ermöglicht den Aufruf unserer Transkriptionsmodelle über einen vollständig regionalisierten Dienst.

  • Erkennungsressourcen: Recognizer sind wiederverwendbare Erkennungskonfigurationen, die eine Kombination aus Modell, Sprache und Features enthalten können. Durch diese umfangreiche Implementierung sind keine dedizierten Dienstkonten für die Authentifizierung und Autorisierung erforderlich.

  • Logging: Ressourcenerstellung und -transkription generieren Logs, die in der Google Cloud Console verfügbar sind. Dies ermöglicht eine bessere Telemetrie und Fehlerbehebung.

  • Verschlüsselung: Speech-to-Text v2 unterstützt vom Kunden verwaltete Verschlüsselungsschlüssel für alle Ressourcen sowie die Batchtranskription.

  • Audio Auto-Detect: Speech-to-Text v2 kann die Abtastrate, Kanalanzahl und das Format Ihrer Audiodateien automatisch erkennen, ohne dass etwas erforderlich ist. um diese Informationen in der Anfragekonfiguration anzugeben.

Von v1 zu v2 migrieren

Die Migration von der v1 API zur v2 API erfolgt nicht automatisch. Es sind minimale Implementierungsänderungen erforderlich, um die Funktionen nutzen zu können.

In der API migrieren

Ähnlich wie bei Speech-to-Text v1 müssen Sie zum Transkribieren von Audiodaten einen RecognitionConfig erstellen. Dazu wählen Sie die Sprache Ihrer Audiodaten und das Erkennungsmodell Ihrer Wahl aus:

Python

import os

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

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")


def quickstart_v2(audio_file: str) -> cloud_speech.RecognizeResponse:
    """Transcribe an audio file.
    Args:
        audio_file (str): Path to the local audio file to be transcribed.
    Returns:
        cloud_speech.RecognizeResponse: The response from the recognize request, containing
        the transcription results
    """
    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        audio_content = f.read()

    # Instantiates a client
    client = SpeechClient()

    config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["en-US"],
        model="long",
    )

    request = cloud_speech.RecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/global/recognizers/_",
        config=config,
        content=audio_content,
    )

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

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

    return response

Wählen Sie bei Bedarf eine Region aus, in der Sie die Speech-to-Text API verwenden möchten, und prüfen Sie die Sprach- und Modellverfügbarkeit in dieser Region:

Python

import os

from google.api_core.client_options import ClientOptions
from google.cloud.speech_v2 import SpeechClient
from google.cloud.speech_v2.types import cloud_speech

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")


def change_speech_v2_location(
    audio_file: str, location: str
) -> cloud_speech.RecognizeResponse:
    """Transcribe an audio file in a specific region. It allows for specifying the location
        to potentially reduce latency and meet data residency requirements.
    Args:
        audio_file (str): Path to the local audio file to be transcribed.
        location (str): The region where the Speech API will be accessed.
            E.g., "europe-west3"
    Returns:
        cloud_speech.RecognizeResponse: The full response object which includes the transcription results.
    """
    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        audio_content = f.read()

    # Instantiates a client to a regionalized Speech endpoint.
    client = SpeechClient(
        client_options=ClientOptions(
            api_endpoint=f"{location}-speech.googleapis.com",
        )
    )

    config = cloud_speech.RecognitionConfig(
        auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
        language_codes=["en-US"],
        model="long",
    )

    request = cloud_speech.RecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/{location}/recognizers/_",
        config=config,
        content=audio_content,
    )

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

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

Optional können Sie eine Erkennungsressource erstellen, wenn Sie eine bestimmte Erkennungskonfiguration für viele Transkriptionsanfragen wiederverwenden müssen:

Python

import os

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

PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")


def create_recognizer(recognizer_id: str) -> cloud_speech.Recognizer:
    """Сreates a recognizer with an unique ID and default recognition configuration.
    Args:
        recognizer_id (str): The unique identifier for the recognizer to be created.
    Returns:
        cloud_speech.Recognizer: The created recognizer object with configuration.
    """
    # Instantiates a client
    client = SpeechClient()

    request = cloud_speech.CreateRecognizerRequest(
        parent=f"projects/{PROJECT_ID}/locations/global",
        recognizer_id=recognizer_id,
        recognizer=cloud_speech.Recognizer(
            default_recognition_config=cloud_speech.RecognitionConfig(
                language_codes=["en-US"], model="long"
            ),
        ),
    )
    # Sends the request to create a recognizer and waits for the operation to complete
    operation = client.create_recognizer(request=request)
    recognizer = operation.result()

    print("Created Recognizer:", recognizer.name)
    return recognizer

Es gibt andere Unterschiede bei den Anfragen und Antworten in der neuen v2 API. Weitere Informationen finden Sie in der Referenzdokumentation.

In der Benutzeroberfläche migrieren

So migrieren Sie über die Speech Google Cloud Console:

  1. Öffnen Sie die Speech Google Cloud Console.

  2. Rufen Sie die Seite Transkriptionen auf.

  3. Klicken Sie auf Neue Transkription und wählen Sie auf dem Tab Audiokonfiguration Ihre Audiodaten aus.

  4. Wählen Sie auf dem Tab Transkriptionsoptionen die Option V2 aus.