ai_transcribe functie

Van toepassing op:gemarkeerd als ja Databricks SQL gemarkeerd als ja Databricks Runtime

De ai_transcribe() functie transscribeert een audiobestand naar tekst. Het retourneert het transcript als een set tijdgestempelde segmenten en labelt elk segment met een luidspreker met automatische speakerdiarisatie. De output is een VARIANT waarde, dus je kunt hem koppelen aan andere AI-functies.

Important

Deze functie bevindt zich in de bètaversie. Om het te gebruiken moet een workspace-beheerder AI Transcribe inschakelen vanaf de pagina Voornemen. Zie Azure Databricks previews beheren.

Gegevensbeveiliging

Uw documentgegevens worden verwerkt binnen de Databricks-beveiligingsperimeter. Databricks slaat de parameters die aan de AI-functieaanroepen worden doorgegeven niet op, maar behoudt wel details van de uitvoering van metadata, zoals de gebruikte Databricks Runtime-versie.

Requirements

  • Deze functie is alleen beschikbaar in sommige regio's, zie beschikbaarheid van AI-functies.
  • Als u serverloze berekeningen gebruikt, is ook het volgende vereist:
  • De ai_transcribe functie is beschikbaar met behulp van Databricks-notebooks, SQL-editor, Databricks-werkstromen, taken of Lakeflow-pijplijnen.
  • ai_transcribe de kosten worden geregistreerd als onderdeel van het AI_FUNCTIONS product.

Ondersteunde invoerbestandsindelingen

Voor invoergegevens gebruik je ofwel een FILE-expressie die naar een audiobestand verwijst, of een BINARY expressie die de bytes van het audiobestand bevat. Als de bronbestanden zijn opgeslagen in een Unity Catalog-volume, genereer dan de binaire kolom met de Spark-formaat binaryFile lezer, zoals in de voorbeelden wordt getoond.

ai_transcribe transcribeert alleen audio. Videobestanden worden niet ondersteund. Tijdens de bèta worden de volgende audioformaten ondersteund:

  • MP3
  • WAV
  • FLAC
  • Opus
  • M4A

Ondersteunde talen

Tijdens de bèta ai_transcribe ondersteunt het Engelse en Spaanse audio. Audio in andere talen kan onnauwkeurige transcripties opleveren.

Syntaxis

ai_transcribe(content)

Arguments

content is het enige vereiste argument.

  • content: Een FILE-type-expressie die verwijst naar een audiobestand, of een BINARY expressie die de bytes van het audiobestand bevat, zoals de content kolom geproduceerd door read_files(..., format => 'binaryFile').

Returns

ai_transcribe geeft een VARIANT waarde terug waarbij het transcript is opgedeeld in tijdgestempelde segmenten. Elk segment draagt ook een speaker_id label van automatische luidsprekerdiarisatie. Zie Speaker-diarisatie.

De uitvoer heeft het volgende 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
      }
    ]
  }
}

De responsvelden zijn als volgt:

  • error_message: null wanneer de oproep slaagt, of een string die het falen beschrijft.
  • response.duration_seconds: De totale duur van de audio, in seconden.
  • response.segments: Een reeks transcriptsegmenten, in tijdsvolgorde. Om het volledige transcript te krijgen, voeg je de waarden van text de segmenten in volgorde aan.
  • segments[].start en segments[].end: De begin- en eindtijd van het segment, in enkele seconden.
  • segments[].speaker_id: Het luidsprekerlabel voor het segment. Zie Speaker-diarisatie.
  • segments[].text: De transcripttekst van het segment.

Luidsprekerdiarisatie

ai_transcribe voert luidsprekerdiarisatie automatisch uit: het detecteert verschillende luidsprekers in het geluid en labelt elk segment met een speaker_id. Diarisatie staat altijd aan tijdens de bèta en kan niet door gebruikers worden aan- of uitgezet, dus er is geen configuratie nodig. Luidsprekers zijn gelabeld met "1", "2", "3", enzovoort in de volgorde waarin ze eerst spreken, en de labels zijn consistent over de hele opname.

Limitations

De volgende beperkingen zijn van toepassing tijdens de bètaversie:

  • Elke oproep accepteert maximaal 1 uur aan audio. Langere audio geeft een foutmelding.
  • Elke oproep accepteert een invoerbestand van maximaal 512 MB. Een groter bestand geeft een foutmelding.
  • ai_transcribe transcribeert alleen audio; videobestanden worden niet ondersteund.

Voorbeelden

Het volgende voorbeeld stuurt een kolom van het FILE-type dat uit een tabel is genoemd audio rechtstreeks naar ai_transcribe.

SELECT
  audio.uri AS path,
  ai_transcribe(audio) AS transcription
FROM my_catalog.my_schema.audio_files;

Note

Het BESTANDSTYPE is in bèta.

Het volgende voorbeeld transcribeert elk audiobestand in een Unity Catalog-volume. Het leest de bestanden als binaire gegevens met read_files(..., format => 'binaryFile') en geeft de content kolom door aan ai_transcribe.

SELECT
  path,
  ai_transcribe(content) AS transcription
FROM READ_FILES('/Volumes/catalog/schema/volume/audio/', format => 'binaryFile');

Het volgende voorbeeld breidt het transcript uit tot één rij per segment, met het sprekerlabel, tijdstempels en tekst als aparte kolommen. Het gebruikt variant_explode de table-valued function om de segments array te ontgenesten.

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;