Transcribe archivos de audio con la función ML.TRANSCRIBE

En este documento, se describe cómo usarML.TRANSCRIBE función con unmodelo remoto para transcribir archivos de audio de untabla de objetos.

Ubicaciones admitidas

Debes crear el modelo remoto que se usa en este procedimiento en una de las siguientes ubicaciones:

  • asia-northeast1
  • asia-south1
  • asia-southeast1
  • australia-southeast1
  • eu
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • northamerica-northeast1
  • us
  • us-central1
  • us-east1
  • us-east4
  • us-west1

Debes ejecutar la función ML.TRANSCRIBE en la misma región que el modelo remoto.

Permisos necesarios

  • Para trabajar con un reconocedor de Speech-to-Text, necesitas los siguientes roles:

    • speech.recognizers.create
    • speech.recognizers.get
    • speech.recognizers.recognize
    • speech.recognizers.update
  • Para crear una conexión, necesitas membresía en el siguiente rol:

    • roles/bigquery.connectionAdmin
  • Para crear el modelo con BigQuery ML, necesitas los siguientes permisos:

    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
    • bigquery.models.updateMetadata
  • Para ejecutar inferencias, necesitas los siguientes permisos:

    • bigquery.tables.getData en la tabla de objetos
    • bigquery.models.getData en el modelo
    • bigquery.jobs.create

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Habilita las API de BigQuery, BigQuery Connection API, and Speech-to-Text.

    Habilita las API

  5. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  7. Habilita las API de BigQuery, BigQuery Connection API, and Speech-to-Text.

    Habilita las API

Crea un reconocedor

Speech-to-Text admite recursos llamados reconocedores. Los reconocedores representan la configuración de reconocimiento almacenada y reutilizable. Puedes crear un reconocedor a fin de agrupar de forma lógica las transcripciones o el tráfico para tu aplicación.

Crear un reconocedor de voz es opcional. Si eliges crear un reconocedor de voz, toma nota del ID del proyecto, la ubicación y el ID del reconocedor para usarlos en la declaración CREATE MODEL, como se describe en SPEECH_RECOGNIZER. Si decides no crear un reconocedor de voz, debes especificar un valor para el argumento recognition_config de la función ML.TRANSCRIBE.

Crear una conexión

Crea una conexión de recurso de Cloud y obtén la cuenta de servicio de la conexión.

Elige una de las opciones siguientes:

Console

  1. Ve a la página de BigQuery.

    Ir a BigQuery

  2. Para crear una conexión, haz clic en Agregar y, luego, en Conexiones a fuentes de datos externas.

  3. En la lista Tipo de conexión, selecciona Modelos remotos de Vertex AI, funciones remotas y BigLake (Cloud Resource).

  4. En el campo ID de conexión, escribe un nombre para tu conexión.

  5. Haga clic en Crear conexión.

  6. Haz clic en Ir a la conexión.

  7. En el panel Información de conexión, copia el ID de la cuenta de servicio para usarlo en un paso posterior.

bq

  1. En un entorno de línea de comandos, crea una conexión:

    bq mk --connection --location=REGION --project_id=PROJECT_ID \
        --connection_type=CLOUD_RESOURCE CONNECTION_ID
    

    El parámetro --project_id anula el proyecto predeterminado.

    Reemplaza lo siguiente:

    • REGION: tu región de conexión
    • PROJECT_ID: El ID del proyecto de Google Cloud.
    • CONNECTION_ID: Es un ID para tu conexión.

    Cuando creas un recurso de conexión, BigQuery crea una cuenta de servicio del sistema única y la asocia con la conexión.

    Solución de problemas: Si recibes el siguiente error de conexión, actualiza el SDK de Google Cloud:

    Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
    
  2. Recupera y copia el ID de cuenta de servicio para usarlo en un paso posterior:

    bq show --connection PROJECT_ID.REGION.CONNECTION_ID
    

    El resultado es similar al siguiente:

    name                          properties
    1234.REGION.CONNECTION_ID     {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
    

Terraform

Agrega la siguiente sección a tu archivo main.tf.

 ## This creates a cloud resource connection.
 ## Note: The cloud resource nested object has only one output only field - serviceAccountId.
 resource "google_bigquery_connection" "connection" {
    connection_id = "CONNECTION_ID"
    project = "PROJECT_ID"
    location = "REGION"
    cloud_resource {}
}        
Reemplaza lo siguiente:

  • CONNECTION_ID: Es un ID para tu conexión.
  • PROJECT_ID: El ID del proyecto de Google Cloud.
  • REGION: tu región de conexión

Otorga acceso a la cuenta de servicio

Elige una de las opciones siguientes:

Console

  1. Ir a la página IAM y administración

    Ir a IAM y administración

  2. Haz clic en Otorgar acceso.

    Se abre el cuadro de diálogo Agregar principales.

  3. En el campo Principales nuevas, escribe el ID de la cuenta de servicio que copiaste antes.

  4. Haz clic en el campo Elegir un rol y, luego, escribe Cloud Speech Client en Filtro.

  5. Haz clic en Agregar otro rol.

  6. En el campo Elige una función, elige Cloud Storage y, luego,Visualizador de objetos de Storage.

  7. Haz clic en Guardar.

gcloud

Usa el comando gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/speech.client' --condition=None
gcloud projects add-iam-policy-binding 'PROJECT_NUMBER' --member='serviceAccount:MEMBER' --role='roles/storage.objectViewer' --condition=None

Reemplaza lo siguiente:

  • PROJECT_NUMBER: Es el número de tu proyecto.
  • MEMBER: Es el ID de la cuenta de servicio que copiaste antes.

Si no se otorga el permiso, se produce un error Permission denied.

Crea un conjunto de datos

Crea un conjunto de datos para que contenga el modelo y la tabla de objetos.

Crea un modelo

Crea un modelo remoto con un REMOTE_SERVICE_TYPE de CLOUD_AI_SPEECH_TO_TEXT_V2:

CREATE OR REPLACE MODEL
`PROJECT_ID.DATASET_ID.MODEL_NAME`
REMOTE WITH CONNECTION `PROJECT_ID.REGION.CONNECTION_ID`
OPTIONS (
  REMOTE_SERVICE_TYPE = 'CLOUD_AI_SPEECH_TO_TEXT_V2',
  SPEECH_RECOGNIZER = 'projects/PROJECT_NUMBER/locations/LOCATION/recognizers/RECOGNIZER_ID'
);

Reemplaza lo siguiente:

  • PROJECT_ID: el ID de tu proyecto
  • DATASET_ID: El ID del conjunto de datos que contendrá el modelo.
  • MODEL_NAME: el nombre del modelo
  • REGION: Es la región que usa la conexión.
  • CONNECTION_ID: el ID de conexión, por ejemplo, myconnection.

    Cuando ves los detalles de conexión en la consola de Google Cloud, el ID de conexión es el valor en la última sección del ID de conexión por completo calificado que se muestra en ID de conexión, por ejemplo projects/myproject/locations/connection_location/connections/myconnection.

  • PROJECT_NUMBER: el número del proyecto que contiene el reconocedor de voz. Puedes encontrar este valor en la tarjeta Información del proyecto en la página Panel de la consola de Google Cloud.
  • LOCATION: la ubicación que usa el reconocedor de voz. Puedes encontrar este valor en el campo Ubicación en la página Lista de reconocimientos de la consola de Google Cloud.
  • RECOGNIZER_ID: el ID del reconocedor de voz. Puedes encontrar este valor en el campo ID de la página Lista de reconocimientos de la consola de Google Cloud.

Crea una tabla de objetos

Crea una tabla de objetos en un conjunto de archivos de audio en Cloud Storage. Los archivos de audio en la tabla de objetos deben ser de un tipo compatible.

Transcribe archivos de audio

Transcribe archivos de audio con la función ML.TRANSCRIBE:

SELECT *
FROM ML.TRANSCRIBE(
  MODEL `PROJECT_ID.DATASET_ID.MODEL_NAME`,
  TABLE `PROJECT_ID.DATASET_ID.OBJECT_TABLE_NAME`,
  RECOGNITION_CONFIG => ( JSON 'recognition_config')
);

Reemplaza lo siguiente:

  • PROJECT_ID: el ID de tu proyecto
  • DATASET_ID: El ID del conjunto de datos que contiene el modelo.
  • MODEL_NAME: el nombre del modelo
  • OBJECT_TABLE_NAME: el nombre de la tabla de objetos que contiene los URI de los archivos de audio que se procesarán.
  • recognition_config: Un recurso RecognitionConfig en formato JSON.

    Si especificaste un reconocedor para la opción SPEECH_RECOGNIZER del modelo remoto, tienes la opción de especificar un valor recognition_config para anular la configuración predeterminada del reconocedor especificado.

    Debes especificar este argumento si no especificaste un reconocedor para el modelo remoto.

Ejemplos

Ejemplo 1

En el siguiente ejemplo, se transcriben los archivos de audio representados por la tabla audio sin anular la configuración predeterminada del reconocedor:

SELECT *
FROM ML.TRANSCRIBE(
  MODEL `myproject.mydataset.transcribe_model`,
  TABLE `myproject.mydataset.audio`
);

En el siguiente ejemplo, se transcriben los archivos de audio representados por la tabla audio y se anula la configuración predeterminada del reconocedor:

SELECT *
FROM ML.TRANSCRIBE(
  MODEL `myproject.mydataset.transcribe_model`,
  TABLE `myproject.mydataset.audio`,
  recognition_config => ( JSON '{"language_codes": ["en-US" ],"model": "telephony","auto_decoding_config": {}}')
);

¿Qué sigue?