Transcrever arquivos de áudio com a função ML.TRANSCRIBE
Neste documento, descrevemos como usar a
função ML.TRANSCRIBE
com um
modelo remoto
para transcrever arquivos de áudio de uma
tabela de objetos.
Locais suportados
É preciso criar o modelo remoto usado neste procedimento em um dos seguintes locais:
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
Execute a função ML.TRANSCRIBE
na mesma região que o modelo remoto.
Permissões necessárias
Para trabalhar com um reconhecedor da Speech-to-Text, você precisa dos seguintes papéis:
speech.recognizers.create
speech.recognizers.get
speech.recognizers.recognize
speech.recognizers.update
Para criar uma conexão, você precisa da associação no seguinte papel:
roles/bigquery.connectionAdmin
Para criar o modelo usando o BigQuery ML, você precisa das seguintes permissões:
bigquery.jobs.create
bigquery.models.create
bigquery.models.getData
bigquery.models.updateData
bigquery.models.updateMetadata
Para executar a inferência, você precisa das seguintes permissões:
bigquery.tables.getData
na tabela de objetosbigquery.models.getData
no modelobigquery.jobs.create
Antes de começar
- 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.
Criar um reconhecedor
A Speech-to-Text é compatível com recursos chamados reconhecedores. Os reconhecedores representam configurações de reconhecimento armazenadas e reutilizáveis. É possível criar um reconhecedor para agrupar logicamente as transcrições ou o tráfego para seu aplicativo.
A criação de um reconhecedor de fala é opcional. Se você optar por criar um reconhecedor de fala,
anote o ID do projeto, o local e o ID do reconhecedor para uso na instrução CREATE MODEL
, conforme descrito em
SPEECH_RECOGNIZER
.
Se você decidir não criar um reconhecedor de fala,
especifique um valor para o
argumento recognition_config
da função ML.TRANSCRIBE
.
Só é possível usar o
modelo de transcrição
do chirp
no reconhecimento de fala ou no valor recognition_config
fornecido.
Crie uma conexão
Crie uma Conexão de recursos do Cloud e tenha acesso à conta de serviço da conexão.
Selecione uma das seguintes opções:
Console
Acessar a página do BigQuery.
Para criar uma conexão, clique em
Adicionar e em Conexões com fontes de dados externas.Na lista Tipo de conexão, selecione Modelos remotos da Vertex AI, funções remotas e BigLake (Cloud Resource).
No campo ID da conexão, insira um nome para a conexão.
Clique em Criar conexão.
Clique em Ir para conexão.
No painel Informações da conexão, copie o ID da conta de serviço para uso em uma etapa posterior.
bq
Em um ambiente de linha de comando, crie uma conexão:
bq mk --connection --location=REGION --project_id=PROJECT_ID \ --connection_type=CLOUD_RESOURCE CONNECTION_ID
O parâmetro
--project_id
substitui o projeto padrão.Substitua:
REGION
: sua região de conexãoPROJECT_ID
: o ID do projeto do Google CloudCONNECTION_ID
: um ID para sua conexão
Quando você cria um recurso de conexão, o BigQuery cria uma conta de serviço do sistema exclusiva e a associa à conexão.
Solução de problemas: se você receber o seguinte erro de conexão, atualize o SDK Google Cloud:
Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
Recupere e copie o ID da conta de serviço para uso em uma etapa posterior:
bq show --connection PROJECT_ID.REGION.CONNECTION_ID
O resultado será assim:
name properties 1234.REGION.CONNECTION_ID {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
Terraform
Use o
recurso
google_bigquery_connection
.
Para autenticar no BigQuery, configure o Application Default Credentials. Para mais informações, acesse Configurar a autenticação para bibliotecas de cliente.
O exemplo a seguir cria uma conexão de recurso do Cloud chamada my_cloud_resource_connection
na região US
:
Para aplicar a configuração do Terraform em um projeto do Google Cloud, conclua as etapas nas seções a seguir.
Preparar o Cloud Shell
- Inicie o Cloud Shell.
-
Defina o projeto padrão do Google Cloud em que você quer aplicar as configurações do Terraform.
Você só precisa executar esse comando uma vez por projeto, e ele pode ser executado em qualquer diretório.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
As variáveis de ambiente serão substituídas se você definir valores explícitos no arquivo de configuração do Terraform.
Preparar o diretório
Cada arquivo de configuração do Terraform precisa ter o próprio diretório, também chamado de módulo raiz.
-
No Cloud Shell, crie um diretório e um novo
arquivo dentro dele. O nome do arquivo precisa ter a extensão
.tf
, por exemplo,main.tf
. Neste tutorial, o arquivo é chamado demain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se você estiver seguindo um tutorial, poderá copiar o exemplo de código em cada seção ou etapa.
Copie o exemplo de código no
main.tf
recém-criado.Se preferir, copie o código do GitHub. Isso é recomendado quando o snippet do Terraform faz parte de uma solução de ponta a ponta.
- Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
- Salve as alterações.
-
Inicialize o Terraform. Você só precisa fazer isso uma vez por diretório.
terraform init
Opcionalmente, para usar a versão mais recente do provedor do Google, inclua a opção
-upgrade
:terraform init -upgrade
Aplique as alterações
-
Revise a configuração e verifique se os recursos que o Terraform vai criar ou
atualizar correspondem às suas expectativas:
terraform plan
Faça as correções necessárias na configuração.
-
Para aplicar a configuração do Terraform, execute o comando a seguir e digite
yes
no prompt:terraform apply
Aguarde até que o Terraform exiba a mensagem "Apply complete!".
- Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.
Conceder acesso à conta de serviço
Selecione uma das seguintes opções:
Console
Acesse a página IAM e administrador.
Clique em
Conceder acesso.A caixa de diálogo Adicionar principais é aberta.
No campo Novos principais, digite o ID da conta de serviço que você copiou anteriormente.
Clique no campo Selecionar um papel e digite
Cloud Speech Client
em Filtro.Clique em Adicionar outro papel.
No campo Selecionar papel, escolha Cloud Storage e, em seguida, Visualizador de objetos do Storage.
Clique em Salvar.
gcloud
Use o comando gcloud projects add-iam-policy-binding
(em inglês).
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
Substitua:
PROJECT_NUMBER
: o número do projeto.MEMBER
: o ID da conta de serviço que você copiou anteriormente.
Deixar de conceder a permissão resulta em um erro Permission denied
.
criar um conjunto de dados
Crie um conjunto de dados para conter o modelo e a tabela de objetos.
Criar uma tabela de objetos
Crie uma tabela de objetos sobre um conjunto de arquivos de áudio no Cloud Storage. Os arquivos de áudio na tabela de objetos precisam ser de um tipo compatível.
O bucket do Cloud Storage usado pela tabela de objetos precisa estar no
mesmo projeto em que você planeja criar o modelo e chamar a
função ML.TRANSCRIBE
. Se você quiser chamar a
função ML.TRANSCRIBE
em um projeto diferente
que contém o bucket do Cloud Storage usado pela tabela de objetos, é preciso
conceder o papel de Administrador do Storage no nível do bucket
para a conta de serviço service-A@gcp-sa-aiplatform.iam.gserviceaccount.com
.
Criar um modelo
Crie um modelo remoto com um 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' );
Substitua:
PROJECT_ID
: o ID do projeto.DATASET_ID
: o ID do conjunto de dados para conter o modelo.MODEL_NAME
: o nome do modeloREGION
: a região usada pela conexão.CONNECTION_ID
: o ID da conexão. Por exemplo,myconnection
.Ao ver os detalhes da conexão no console do Google Cloud, o ID da conexão é o valor na última seção do ID da conexão totalmente qualificado, mostrado em ID da conexão, por exemplo,
projects/myproject/locations/connection_location/connections/myconnection
.PROJECT_NUMBER
: o número do projeto que contém o reconhecedor de fala. Esse valor está no card Informações do projeto na página Painel do console do Google Cloud.LOCATION
: o local usado pelo reconhecedor de fala. Encontre esse valor no campo Local na página Listar reconhecedores do console do Google Cloud.RECOGNIZER_ID
: o ID do reconhecedor de fala. Encontre esse valor no campo ID na página Listar reconhecedores do console do Google Cloud.Essa opção não é obrigatória. Se você não especificar um valor, um reconhecedor padrão será usado. Nesse caso, especifique um valor para o parâmetro
recognition_config
da funçãoML.TRANSCRIBE
para fornecer uma configuração para o reconhecedor padrão.Só é possível usar o modelo de transcrição do
chirp
no valorrecognition_config
fornecido.
Transcrever arquivos de áudio
Transcreva arquivos de áudio com a função 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') );
Substitua:
PROJECT_ID
: o ID do projeto.DATASET_ID
: o ID do conjunto de dados que contém o modelo.MODEL_NAME
: o nome do modeloOBJECT_TABLE_NAME
: o nome da tabela de objetos que contém os URIs dos arquivos de áudio a serem processados.recognition_config
: um recursoRecognitionConfig
no formato JSON.Se um reconhecedor tiver sido especificado para o modelo remoto usando a opção
SPEECH_RECOGNIZER
, não será possível especificar um valorrecognition_config
.Se nenhum reconhecedor tiver sido especificado para o modelo remoto usando a opção
SPEECH_RECOGNIZER
, será necessário especificar um valorrecognition_config
. Esse valor é usado para fornecer uma configuração para o reconhecedor padrão.Só é possível usar o modelo de transcrição do
chirp
no valorrecognition_config
fornecido.
Exemplos
Exemplo 1
O exemplo a seguir transcreve os arquivos de áudio representados pela tabela audio
sem substituir a configuração padrão do reconhecedor:
SELECT * FROM ML.TRANSCRIBE( MODEL `myproject.mydataset.transcribe_model`, TABLE `myproject.mydataset.audio` );
O exemplo a seguir transcreve os arquivos de áudio representados pela
tabela audio
e fornece uma configuração para o reconhecedor padrão:
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": {}}') );
A seguir
- Para informações sobre inferência de modelo no BigQuery ML, consulte Visão geral de inferência de modelo.
- Para informações sobre as funções e instruções SQL compatíveis com cada tipo de modelo, consulte Jornada do usuário completa de cada modelo.