Migrazione dalla versione 1 a 2 di Speech-to-Text

L'API Speech-to-Text v2 offre il più recente Google Cloud design dell'API per consentire ai clienti di soddisfare i requisiti normativi e di sicurezza aziendali fin dal primo avvio.

Questi requisiti vengono realizzati tramite quanto segue:

  • Residenza dei dati: Speech-to-Text v2 offre l'ampia gamma dei nostri modelli di trascrizione esistenti nelle Google Cloud regioni come Belgio o Singapore. Ciò consente di richiamare i nostri modelli di trascrizione tramite un servizio completamente regionalizzato.

  • Versatilità del riconoscitore: i riconoscitori sono configurazioni di riconoscimento riutilizzabili che possono contenere una combinazione di modello, lingua e funzionalità.

  • Logging: la creazione di risorse e le trascrizioni generano log disponibili nella console Google Cloud , consentendo una migliore telemetria e un migliore debug.

  • Crittografia: Speech-to-Text v2 supporta le chiavi di crittografia gestite dal cliente per tutte le risorse, nonché la trascrizione batch.

  • Rilevamento automatico audio: Speech-to-Text v2 può rilevare automaticamente la frequenza di campionamento, il numero di canali e il formato dei file audio, senza dover fornire queste informazioni nella configurazione della richiesta.

Migrazione da v1 a v2

La migrazione dall'API v1 all'API v2 non avviene automaticamente. Per sfruttare il set di funzionalità sono necessarie modifiche minime all'implementazione.

Migrazione nell'API

Analogamente a Speech-to-Text v1, per trascrivere l'audio, devi creare un RecognitionConfig selezionando la lingua dell'audio e il modello di riconoscimento che preferisci:

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

Se necessario, seleziona una regione in cui vuoi utilizzare l'API Speech-to-Text e controlla la disponibilità di lingue e modelli in quella regione:

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

(Facoltativo) Crea una risorsa di riconoscimento se devi riutilizzare una configurazione di riconoscimento specifica in molte richieste di trascrizione:

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

Esistono altre differenze nelle richieste e nelle risposte nella nuova API v2. Per saperne di più, consulta la documentazione di riferimento.

Migrazione nell'interfaccia utente

Per eseguire la migrazione tramite la console Google Cloud Speech, segui questi passaggi:

  1. Vai alla console Google Cloud Speech.

  2. Vai alla pagina Trascrizioni.

  3. Fai clic su Nuova trascrizione e seleziona l'audio nella scheda Configurazione audio.

  4. Nella scheda Opzioni di trascrizione, seleziona V2.

Passaggi successivi