Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime
A ai_transcribe() função transcreve um arquivo de áudio em texto. Ele retorna a transcrição como um conjunto de segmentos com carimbo de data e rotula cada segmento com um alto-falante usando diarização automática do alto-falante. A saída é um VARIANT valor, então você pode encadeá-la em outras Funções de IA.
Importante
Esse recurso está em Beta. Para usá-lo, um administrador de espaço de trabalho deve ativar a transcrição AI a partir da página de Prévias . Consulte Gerenciar visualizações do Azure Databricks.
Segurança de dados
Os dados do documento são processados dentro do perímetro de segurança do Databricks. O Databricks não armazena os parâmetros que são passados para as chamadas de função de IA, mas mantém detalhes de execução de metadados, como a versão de Runtime do Databricks utilizada.
Requisitos
- Essa função só está disponível em algumas regiões, consulte a disponibilidade da função de IA.
- Se você estiver usando a computação sem servidor, o seguinte também será necessário:
- A versão do ambiente sem servidor deve ser definida como 3 ou superior, pois isso permite recursos como
VARIANT. - Deve usar Python ou SQL. Para obter recursos e limitações adicionais sem servidor, consulte limitações de computação sem servidor.
- A versão do ambiente sem servidor deve ser definida como 3 ou superior, pois isso permite recursos como
- A
ai_transcribefunção está disponível usando notebooks do Databricks, editor de SQL, fluxos de trabalho do Databricks, trabalhos ou pipelines do Lakeflow. -
ai_transcribeos custos são registrados como parte doAI_FUNCTIONSproduto.
Formatos de arquivo de entrada com suporte
Para dados de entrada, use uma expressão do tipo FILE que faça referência a um arquivo de áudio ou uma BINARY expressão que contenha os bytes do arquivo de áudio. Se os arquivos-fonte estiverem armazenados em um volume do Unity Catalog, gere a coluna binária usando o leitor de formato Spark binaryFile , como mostrado nos exemplos.
ai_transcribe transcreve apenas áudio. Arquivos de vídeo não são suportados. Durante a Beta, os seguintes formatos de áudio são suportados:
- MP3
- WAV
- FLAC
- Opus
- M4A
Linguagens suportadas
Durante a versão beta, ai_transcribe suporta áudio em inglês e espanhol. Áudio em outros idiomas pode devolver transcrições imprecisas.
Sintaxe
ai_transcribe(content)
Arguments
content é o único argumento necessário.
-
content: Uma expressão do tipo FILE que faz referência a um arquivo de áudio, ou umaBINARYexpressão que contém os bytes do arquivo de áudio, como acontentcoluna produzida porread_files(..., format => 'binaryFile').
Returns
ai_transcribe retorna um VARIANT valor com a transcrição dividida em segmentos com carimbo de tempo. Cada segmento também carrega uma speaker_id etiqueta de diarização automática por alto-falantes.
Veja Diarização do Alto-falante.
A saída possui o seguinte esquema:
{
"error_message": STRING, // null on success; an error message string on failure
"response": {
"duration_seconds": DOUBLE, // total audio duration, in seconds
"segments": [
{
"start": DOUBLE, // segment start time, in seconds
"end": DOUBLE, // segment end time, in seconds
"speaker_id": STRING, // speaker label ("1", "2", ...)
"text": STRING // transcript text for the segment
}
]
}
}
Os campos de resposta são os seguintes:
-
error_message:nullquando a chamada é bem-sucedida, ou uma string descrevendo a falha. -
response.duration_seconds: A duração total do áudio, em segundos. -
response.segments: Uma matriz de segmentos de transcrição, em ordem temporal. Para obter a transcrição completa, concatene os valores dostextsegmentos em ordem. -
segments[].startesegments[].end: O horário de início e término do segmento, em segundos. -
segments[].speaker_id: O rótulo do alto-falante do segmento. Veja Diarização do Alto-falante. -
segments[].text: O texto da transcrição do segmento.
Diarização do falante
ai_transcribe Executa a diarização automática dos alto-falantes: ele detecta alto-falantes distintos no áudio e rotula cada segmento com um speaker_id. A diarização está sempre ativada durante a Beta e não pode ser ativada ou desligada pelos usuários, então não é necessária configuração. Os alto-falantes são rotulados "1", "2", "3", e assim por diante na ordem em que falam pela primeira vez, e os rótulos são consistentes ao longo de toda a gravação.
Limitações
As seguintes limitações se aplicam durante o Beta:
- Cada chamada aceita no máximo 1 hora de áudio. Áudio mais longo retorna um erro.
- Cada chamada aceita um arquivo de entrada de no máximo 512 MB. Um arquivo maior retorna um erro.
-
ai_transcribetranscreve apenas áudio; arquivos de vídeo não são suportados.
Exemplos
O exemplo a seguir passa uma coluna de tipo FILE nomeada audio diretamente de uma tabela para ai_transcribe.
SELECT
audio.uri AS path,
ai_transcribe(audio) AS transcription
FROM my_catalog.my_schema.audio_files;
Note
O tipo FILE está em Beta.
O exemplo a seguir transcreve todos os arquivos de áudio em um volume do Unity Catalog. Ele lê os arquivos como dados binários com read_files(..., format => 'binaryFile') e passa a content coluna para ai_transcribe.
SELECT
path,
ai_transcribe(content) AS transcription
FROM READ_FILES('/Volumes/catalog/schema/volume/audio/', format => 'binaryFile');
O próximo exemplo expande a transcrição para uma linha por segmento, com o rótulo do falante, carimbos de data e texto como colunas separadas. Ele usa variant_explode a função de valor de tabela para des-aninhar o segments array.
WITH transcribed AS (
SELECT
path,
ai_transcribe(content) AS result
FROM READ_FILES('/Volumes/catalog/schema/volume/audio/', format => 'binaryFile')
)
SELECT
transcribed.path,
segment.value:start::DOUBLE AS start_seconds,
segment.value:end::DOUBLE AS end_seconds,
segment.value:speaker_id::STRING AS speaker_id,
segment.value:text::STRING AS text
FROM
transcribed,
LATERAL variant_explode(transcribed.result:response.segments) AS segment;