Migra de Speech-to-Text v1 a v2

La API de Speech-to-Text v2 ofrece el diseño más reciente de la API de Google Cloud para que los clientes cumplan con los requisitos normativos y de seguridad empresarial con las funciones listas para usar.

Estos requisitos se cumplen a través de lo siguiente:

  • Residencia de datos: Speech-to-Text v2 ofrece la amplia gama de nuestros modelos de transcripción existentes en Regiones de Google Cloud como Bélgica o Singapur. Esto permite la invocación de nuestros modelos de transcripción a través de un servicio completamente regionalizado.

  • Capacidad de reconocimiento: Los reconocedores son configuraciones de reconocimiento reutilizables, que pueden contener una combinación de modelo, lenguaje y funciones. La implementación de esta capacidad elimina la necesidad de cuentas de servicio dedicadas para la autenticación y la autorización.

  • Registro: La creación y las transcripciones de recursos generan registros disponibles en la consola de Google Cloud, lo que permite una mejor telemetría y depuración.

  • Encriptación: Speech-to-Text v2 admite claves de encriptación administradas por el cliente para todos los recursos y la transcripción por lotes.

  • Detección automática de audio: Speech-to-Text v2 puede detectar de forma automática la tasa de muestreo, el recuento de canales y el formato de tus archivos de audio, sin necesidad de proporcionar esa información en la configuración de la solicitud.

Migrar de v1 a v2

La migración de la v1 a la v2 de la API no se realiza automáticamente. Se requieren cambios mínimos en la implementación para aprovechar el conjunto de atributos.

Migración en la API

Al igual que con Speech-to-Text v1, para transcribir audio, debes crear un RecognitionConfig seleccionando el idioma de tu audio y el modelo de reconocimiento que elijas:

Python

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

def quickstart_v2(
    project_id: str,
    audio_file: str,
) -> cloud_speech.RecognizeResponse:
    """Transcribe an audio file."""
    # Instantiates a client
    client = SpeechClient()

    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        content = f.read()

    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=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 es necesario, selecciona una región en la que deseas usar la API de Speech-to-Text y verifica la disponibilidad del idioma y el modelo en esa región:

Python

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

def change_speech_v2_location(
    project_id: str,
    location: str,
    audio_file: str,
) -> cloud_speech.RecognizeResponse:
    """Transcribe an audio file in a specific region."""
    # Instantiates a client to a regionalized Speech endpoint.
    client = SpeechClient(
        client_options=ClientOptions(
            api_endpoint=f"{location}-speech.googleapis.com",
        )
    )

    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        content = f.read()

    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=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

De manera opcional, crea un recurso de reconocimiento si necesitas reutilizar una configuración de reconocimiento específica en muchas solicitudes de transcripción:

Python

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

def create_recognizer(project_id: str, recognizer_id: str) -> cloud_speech.Recognizer:
    # 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"
            ),
        ),
    )

    operation = client.create_recognizer(request=request)
    recognizer = operation.result()

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

Existen otras diferencias en las solicitudes y respuestas de la nueva API v2. Para obtener más detalles, consulta la documentación de referencia.

Migración en la IU

Para migrar a través de Speech en la consola de Google Cloud, sigue estos pasos:

  1. Ve a Speech en Google Cloud Console.

  2. Navega a la página Transcripciones.

  3. Haz clic en Nueva transcripción y selecciona el audio en la pestaña Configuración de audio.

  4. En la pestaña Opciones de transcripción, selecciona V2.