Migrer de Speech-to-Text v1 vers la v2

L'API Speech-to-Text v2 intègre la dernière conception de l'API Google Cloud pour permettre aux clients de répondre immédiatement aux exigences de sécurité et de réglementation de l'entreprise.

Ces exigences sont remplies via les éléments suivants :

  • Résidence des données Speech-to-Text v2 propose une large gamme de modèles de transcription dans les régions Google Cloud comme la Belgique ou Singapour. Cela permet d'appeler nos modèles de transcription via un service entièrement régionalisé.

  • Adaptabilité du programme de reconnaissance : les programmes de reconnaissance sont des configurations de reconnaissance réutilisables pouvant contenir une combinaison de modèles, de langages et de caractéristiques. Cette mise en œuvre ingénieuse élimine le besoin de comptes de service dédiés pour l'authentification et l'autorisation.

  • Journalisation: la création de ressources et les transcriptions génèrent des journaux disponibles dans la console Google Cloud, ce qui permet une meilleure télémétrie et un meilleur débogage.

  • Chiffrement : Speech-to-Text v2 accepte les clés de chiffrement gérées par le client pour toutes les ressources, ainsi que la transcription par lot.

  • Détection automatique de contenu audio: Speech-to-Text v2 peut détecter automatiquement le taux d'échantillonnage, le nombre de canaux et le format de vos fichiers audio, sans avoir besoin de fournir ces informations dans la configuration de la requête.

Migrer de v1 à v2

La migration de l'API v1 vers l'API v2 n'a pas lieu automatiquement. Il est nécessaire de modifier les mises en œuvre minimales pour tirer parti de l'ensemble des fonctionnalités.

Migrer dans l'API

Comme pour Speech-to-Text v1, pour transcrire du contenu audio, vous devez créer un RecognitionConfig en sélectionnant la langue de votre contenu audio et le modèle de reconnaissance de votre choix :

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

Si nécessaire, sélectionnez une région dans laquelle vous souhaitez utiliser l'API Speech-to-Text, puis vérifiez la langue et la disponibilité du modèle dans cette région:

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

Vous pouvez également créer une ressource de reconnaissance si vous devez réutiliser une configuration de reconnaissance spécifique dans de nombreuses requêtes de transcription :

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

Il existe d'autres différences dans les requêtes et les réponses dans la nouvelle API v2. Pour en savoir plus, consultez la documentation de référence sur .

Migrer dans l'interface utilisateur

Pour migrer via la console Google Cloud Speech, procédez comme suit :

  1. Accédez à la console Google Cloud Speech.

  2. Accédez à la page Transcriptions.

  3. Cliquez sur Nouvelle transcription, puis sélectionnez votre contenu audio dans l'onglet Configuration audio.

  4. Dans l'onglet Options de transcription, sélectionnez V2.