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 objetosbigquery.models.getData
en el modelobigquery.jobs.create
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection API, and Speech-to-Text APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery, BigQuery Connection API, and Speech-to-Text APIs.
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
.
Solo puedes usar el modelo de transcripción chirp
en el identificador de voz o el valor recognition_config
que proporciones.
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
Ve a la página de BigQuery.
Para crear una conexión, haz clic en
Agregar y, luego, en Conexiones a fuentes de datos externas.En la lista Tipo de conexión, selecciona Modelos remotos de Vertex AI, funciones remotas y BigLake (Cloud Resource).
En el campo ID de conexión, escribe un nombre para tu conexión.
Haz clic en Crear conexión (Create connection).
Haz clic en Ir a la conexión.
En el panel Información de conexión, copia el ID de la cuenta de servicio para usarlo en un paso posterior.
bq
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ónPROJECT_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...
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 a este:
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 {} }
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
Ir a la página IAM y administración
Haz clic en
Otorgar acceso.Se abre el cuadro de diálogo Agregar principales.
En el campo Principales nuevas, escribe el ID de la cuenta de servicio que copiaste antes.
Haz clic en el campo Elegir un rol y, luego, escribe
Cloud Speech Client
en Filtro.Haz clic en Agregar otro rol.
En el campo Elige una función, elige Cloud Storage y, luego,Visualizador de objetos de Storage.
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 una tabla de objetos
Crea una tabla de objetos sobre un conjunto de archivos de audio en Cloud Storage. Los archivos de audio en la tabla de objetos deben ser de un tipo compatible.
El bucket de Cloud Storage que usa la tabla de objetos debe estar en el mismo proyecto en el que planeas crear el modelo y llamar a la función ML.TRANSCRIBE
. Si deseas llamar a la función ML.TRANSCRIBE
en un proyecto diferente al que contiene el bucket de Cloud Storage que usa la tabla de objetos, debes otorgar el rol de administrador de almacenamiento a nivel del bucket a la cuenta de servicio service-A@gcp-sa-aiplatform.iam.gserviceaccount.com
.
Crear 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 proyectoDATASET_ID
: El ID del conjunto de datos que contendrá el modelo.MODEL_NAME
: el nombre del modeloREGION
: 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 reconocedores 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 reconocedores de la consola de Google Cloud.Esta opción no es obligatoria. Si no especificas un valor, se usa un reconocedor predeterminado. En ese caso, debes especificar un valor para el parámetro
recognition_config
de la funciónML.TRANSCRIBE
para proporcionar una configuración para el reconocedor predeterminado.Solo puedes usar el modelo de transcripción
chirp
en el valorrecognition_config
que proporciones.
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 proyectoDATASET_ID
: El ID del conjunto de datos que contiene el modelo.MODEL_NAME
: el nombre del modeloOBJECT_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 recursoRecognitionConfig
en formato JSON.Si se especificó un reconocedor para el modelo remoto a través de la opción
SPEECH_RECOGNIZER
, no puedes especificar un valorrecognition_config
.Si no se especificó ningún reconocedor para el modelo remoto a través de la opción
SPEECH_RECOGNIZER
, debes especificar un valorrecognition_config
. Este valor se usa para proporcionar una configuración para el reconocedor predeterminada.Solo puedes usar el modelo de transcripción
chirp
en el valorrecognition_config
que proporciones.
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 proporciona una configuración para el reconocedor predeterminado:
SELECT * FROM ML.TRANSCRIBE( MODEL `myproject.mydataset.transcribe_model`, TABLE `myproject.mydataset.audio`, recognition_config => ( JSON '{"language_codes": ["en-US" ],"model": "chirp","auto_decoding_config": {}}') );
¿Qué sigue?
- Para obtener información sobre la inferencia de modelos en BigQuery ML, consulta Descripción general de la inferencia de modelos.
- Para obtener información sobre las instrucciones y funciones de SQL compatibles para cada tipo de modelo, consulta Recorrido del usuario de extremo a extremo para cada modelo.