Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Databricks SQL
Databricks Runtime
La ai_transcribe() fonction transcrit un fichier audio en texte. Il retourne la transcription sous forme d’un ensemble de segments horodatés et étiquete chaque segment avec un haut-parleur en utilisant la diarisation automatique du haut-parleur. La sortie est une VARIANT valeur, donc vous pouvez la chaîner dans d’autres fonctions IA.
Important
Cette fonctionnalité est en version bêta. Pour l’utiliser, un administrateur d’espace de travail doit activer AI Transcribe depuis la page des Aperçus . Consultez Gérer les préversions d’Azure Databricks.
Sécurité des données
Vos données de document sont traitées dans le périmètre de sécurité Databricks. Databricks ne stocke pas les paramètres qui sont passés dans les appels de fonctions IA, mais conserve les détails de la gestion des métadonnées, comme la version d’exécution de Databricks utilisée.
Exigences
- Cette fonction est disponible uniquement dans certaines régions, consultez la disponibilité des fonctions IA.
- Si vous utilisez le calcul serverless, les éléments suivants sont également requis :
- La version de l’environnement serverless doit être définie sur 3 ou ultérieure, car cela active des fonctionnalités telles que
VARIANT. - Doit utiliser Python ou SQL. Pour des fonctionnalités et limitations supplémentaires du mode serveurless, voir limitations de calcul en mode serveurless.
- La version de l’environnement serverless doit être définie sur 3 ou ultérieure, car cela active des fonctionnalités telles que
- La
ai_transcribefonction est disponible à l’aide de notebooks Databricks, de l’éditeur SQL, des workflows Databricks, des travaux ou des pipelines Lakeflow. - Les coûts de
ai_transcribesont enregistrés pour le produitAI_FUNCTIONS.
Formats de fichier d’entrée pris en charge
Pour les données d’entrée, utilisez soit une expression de type FILE qui fait référence à un fichier audio, soit une BINARY expression contenant les octets du fichier audio. Si les fichiers sources sont stockés dans un volume du catalogue Unity, générez la colonne binaire à l’aide du lecteur au format Spark binaryFile , comme montré dans les exemples.
ai_transcribe Transcrit uniquement l’audio. Les fichiers vidéo ne sont pas pris en charge. Pendant la bêta, les formats audio suivants sont pris en charge :
- MP3
- WAV
- FLAC
- Opus
- M4A
Langues prises en charge
Pendant la bêta, prend ai_transcribe en charge l’audio anglais et espagnol. L’audio dans d’autres langues peut renvoyer des transcriptions inexactes.
Syntax
ai_transcribe(content)
Arguments
content est le seul argument requis.
-
content: Une expression de type FILE qui fait référence à un fichier audio, ou uneBINARYexpression qui contient les octets du fichier audio, comme lacontentcolonne produite parread_files(..., format => 'binaryFile').
Returns
ai_transcribe renvoie une VARIANT valeur avec la transcription décomposée en segments horodatés. Chaque segment porte également une speaker_id étiquette provenant de la diarisation automatique par haut-parleurs.
Voir Diarisation du Speaker.
La sortie suit le schéma suivant :
{
"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
}
]
}
}
Les champs de réponse sont les suivants :
-
error_message:nulllorsque l’appel réussit, ou une chaîne décrivant l’échec. -
response.duration_seconds: La durée totale de l’audio, en secondes. -
response.segments: Un ensemble de segments de transcription, dans l’ordre temporel. Pour obtenir la transcription complète, concaténez les valeurs destextsegments dans l’ordre. -
segments[].startetsegments[].end: L’heure de début et de fin du segment, en quelques secondes. -
segments[].speaker_id: L’étiquette du haut-parleur du segment. Voir Diarisation du Speaker. -
segments[].text: Le texte de la transcription du segment.
Diarisation des haut-parleurs
ai_transcribe Exécute automatiquement la diarisation des haut-parleurs : elle détecte des haut-parleurs distincts dans l’audio et étiquette chaque segment avec un speaker_id. La diapérisation est toujours activée pendant la bêta et ne peut pas être activée ou désactivée par les utilisateurs, donc aucune configuration n’est requise. Les haut-parleurs sont étiquetés "1", "2", "3", etc., dans l’ordre dans lequel ils sont prononcés, et les étiquettes sont cohérentes sur tout l’enregistrement.
Limitations
Les limitations suivantes s’appliquent pendant la version bêta :
- Chaque appel accepte au maximum 1 heure d’audio. Un son plus long renvoie une erreur.
- Chaque appel accepte un fichier d’entrée d’au maximum 512 Mo. Un fichier plus grand renvoie une erreur.
-
ai_transcribetranscrit uniquement l’audio ; les fichiers vidéo ne sont pas pris en charge.
Exemples
L’exemple suivant transmet une colonne de type FICHIER nommée audio directement d’une table vers ai_transcribe.
SELECT
audio.uri AS path,
ai_transcribe(audio) AS transcription
FROM my_catalog.my_schema.audio_files;
Note
Le type de fichier est en version Bêta.
L’exemple suivant transcrit chaque fichier audio dans un volume du catalogue Unity. Il lit les fichiers comme des données binaires avec read_files(..., format => 'binaryFile') et transmet la content colonne à ai_transcribe.
SELECT
path,
ai_transcribe(content) AS transcription
FROM READ_FILES('/Volumes/catalog/schema/volume/audio/', format => 'binaryFile');
L’exemple suivant développe la transcription en une ligne par segment, avec l’étiquette du haut-parleur, les horodatages et le texte sous forme de colonnes séparées. Il utilise variant_explode une fonction à valeurs de table pour dén-nester le segments tableau.
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;