Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione
Si applica a:
Databricks SQL
Databricks Runtime
La ai_transcribe() funzione trascrive un file audio in testo. Restituisce la trascrizione come un insieme di segmenti con timestamp e etichetta ogni segmento con un altoparlante utilizzando la diarizzazione automatica dell'altoparlante. L'output è un VARIANT valore, quindi puoi concatenarlo ad altre funzioni IA.
Importante
Questa funzionalità è in versione beta. Per utilizzarlo, un amministratore dello spazio di lavoro deve attivare la Trascrizione AI dalla pagina delle anteprime . Vedere Gestire le anteprime di Azure Databricks.
Sicurezza dei dati
I dati del documento vengono elaborati all'interno del perimetro di sicurezza di Databricks. Databricks non memorizza i parametri che vengono passati nelle chiamate di funzione AI, ma conserva i dettagli di esecuzione dei metadati, come la versione Databricks Runtime utilizzata.
Requisiti
- Questa funzione è disponibile solo in alcune aree, vedere Disponibilità delle funzioni di intelligenza artificiale.
- Se si usa l'ambiente di calcolo serverless, è necessario anche quanto segue:
- La versione dell'ambiente serverless deve essere impostata su 3 o versione successiva, perché abilita funzionalità come
VARIANT. - Deve usare Python o SQL. Per altre funzionalità e limitazioni serverless, vedere Limitazioni di calcolo serverless.
- La versione dell'ambiente serverless deve essere impostata su 3 o versione successiva, perché abilita funzionalità come
- La
ai_transcribefunzione è disponibile usando notebook di Databricks, editor SQL, flussi di lavoro di Databricks, processi o pipeline Lakeflow. -
ai_transcribei costi vengono registrati come parte delAI_FUNCTIONSprodotto.
Formati di file di input supportati
Per i dati di input, utilizzare o un'espressione di tipo FILE che faccia riferimento a un file audio o un'espressione BINARY che contiene i byte del file audio. Se i file sorgente sono memorizzati in un volume del Catalogo Unity, genera la colonna binaria usando il lettore di formato Spark binaryFile , come mostrato negli esempi.
ai_transcribe Trascrive solo audio. I file video non sono supportati. Durante la Beta, sono supportati i seguenti formati audio:
- MP3
- WAV
- FLAC
- Opus
- M4A
Linguaggi supportati
Durante la Beta, ai_transcribe supporta audio in inglese e spagnolo. L'audio in altre lingue potrebbe restituire trascrizioni inaccurate.
Syntax
ai_transcribe(content)
Arguments
content è l'unico argomento obbligatorio.
-
content: Un'espressione di tipo FILE che fa riferimento a un file audio, o un'espressioneBINARYche contiene i byte del file audio, come lacontentcolonna prodotta daread_files(..., format => 'binaryFile').
Returns
ai_transcribe restituisce un VARIANT valore con la trascrizione suddivisa in segmenti timestampati. Ogni segmento porta anche un'etichetta speaker_id di diarizzazione automatica degli altoparlanti.
Vedi Diarizzazione del Parlante.
L'output segue il seguente schema:
{
"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
}
]
}
}
I campi di risposta sono i seguenti:
-
error_message:nullquando la chiamata ha successo, o una stringa che descrive il guasto. -
response.duration_seconds: La durata totale dell'audio, in secondi. -
response.segments: Una serie di segmenti di trascrizione, in ordine temporale. Per ottenere la trascrizione completa, concatena i valori deitextsegmenti in ordine. -
segments[].startesegments[].end: L'ora di inizio e fine del segmento, in pochi secondi. -
segments[].speaker_id: L'etichetta degli altoparlanti per il segmento. Vedi Diarizzazione del Parlante. -
segments[].text: Il testo trascrittivo del segmento.
Diarizzazione del parlante
ai_transcribe Esegue automaticamente la diarizzazione degli altoparlanti: rileva altoparlanti distinti nell'audio e etichetta ogni segmento con un speaker_id. La dializzazione è sempre attiva durante la Beta e non può essere attivata o disattivata dagli utenti, quindi non è necessaria alcuna configurazione. Gli altoparlanti sono etichettati "1", "2", "3", e così via nell'ordine in cui parlano per la prima volta, e le etichette sono coerenti per tutta la registrazione.
Limitations
Durante la versione beta si applicano le limitazioni seguenti:
- Ogni chiamata accetta al massimo 1 ora di audio. L'audio più lungo restituisce un errore.
- Ogni chiamata accetta un file di input di al massimo 512 MB. Un file più grande restituisce un errore.
-
ai_transcribetrascrive solo audio; i file video non sono supportati.
Esempi
Il seguente esempio passa una colonna di tipo FILE chiamata audio direttamente da una tabella a ai_transcribe.
SELECT
audio.uri AS path,
ai_transcribe(audio) AS transcription
FROM my_catalog.my_schema.audio_files;
Note
Il tipo di file è in Beta.
Il seguente esempio trascrive ogni file audio in un volume del Catalogo Unity. Legge i file come dati binari con read_files(..., format => 'binaryFile') e passa la content colonna a ai_transcribe.
SELECT
path,
ai_transcribe(content) AS transcription
FROM READ_FILES('/Volumes/catalog/schema/volume/audio/', format => 'binaryFile');
L'esempio successivo espande la trascrizione in una riga per segmento, con l'etichetta del relatore, i timestamp e il testo come colonne separate. Utilizza variant_explode la funzione a valori di tabella per rimuovere il nest dell'array segments .
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;