funktion ai_transcribe

gäller för:markerad med ja Databricks SQL markerad med ja Databricks Runtime

Funktionen ai_transcribe() transkriberar en ljudfil till text. Den returnerar transkriptet som en uppsättning tidsstämplade segment och märker varje segment med en högtalare med hjälp av automatisk högtalardiarisering. Utdata är ett VARIANT värde, så du kan kedja det till andra AI-funktioner.

Important

Den här funktionen finns i Beta. För att använda den måste en administratör i arbetsområdet slå på AI Transcribe från sidan för förhandsgranskningar . Se Hantera förhandsversioner av Azure Databricks.

Datasäkerhet

Dina dokumentdata bearbetas inom Databricks säkerhetsperimeter. Databricks lagrar inte parametrarna som skickas till AI-funktionsanropen, men behåller metadata-kördetaljer, såsom Databricks Runtime-versionen som används.

Requirements

  • Den här funktionen är endast tillgänglig i vissa regioner, se TILLGÄNGLIGHET för AI-funktioner.
  • Om du använder serverlös beräkning krävs även följande:
    • Den serverlösa miljöversionen måste vara inställd på 3 eller senare, eftersom detta aktiverar funktioner som VARIANT.
    • Måste använda antingen Python eller SQL. Ytterligare serverlösa funktioner och begränsningar finns i Begränsningar för serverlös beräkning.
  • Funktionen ai_transcribe är tillgänglig med databricks notebook-filer, SQL-redigerare, Databricks-arbetsflöden, jobb eller Lakeflow-pipelines.
  • ai_transcribe kostnader registreras som en del av AI_FUNCTIONS produkten.

Indatafilformat som stöds

För indata, använd antingen ett FILE-typuttryck som refererar till en ljudfil eller ett BINARY uttryck som innehåller ljudfilens bytes. Om källfilerna lagras i en Unity Catalog-volym, generera den binära kolumnen med hjälp av Spark-formatläsaren binaryFile , som visas i exemplen.

ai_transcribe transkriberar endast ljud. Videofiler stöds inte. Under Betan stöds följande ljudformat:

  • MP3
  • WAV
  • FLAC
  • Opus
  • M4A

Stödda språk

Under betan stödjer ai_transcribe den engelsk och spansk ljud. Ljud på andra språk kan ge felaktiga transkriptioner.

Syntax

ai_transcribe(content)

Arguments

content är det enda argumentet som krävs.

  • content: Ett FIL-typuttryck som refererar till en ljudfil, eller ett BINARY uttryck som innehåller ljudfilens bytes, såsom kolumnen content som produceras av read_files(..., format => 'binaryFile').

Returns

ai_transcribe returnerar ett VARIANT värde med transkriptet uppdelat i tidsstämplade segment. Varje segment bär också en speaker_id etikett från automatisk högtalardiarisering. Se Högtalardiarisering.

Utdata har följande 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
      }
    ]
  }
}

Svarsfälten är följande:

  • error_message: null när anropet lyckas, eller en sträng som beskriver misslyckandet.
  • response.duration_seconds: Den totala längden av ljudet, i sekunder.
  • response.segments: En rad transkriptsegment, i tidsordning. För att få hela transkriptionen, sammanfoga segmentens text värden i ordning.
  • segments[].start och segments[].end: Segmentets start- och sluttid, i sekunder.
  • segments[].speaker_id: Högtalaretiketten för segmentet. Se Högtalardiarisering.
  • segments[].text: Transkriptionstexten för segmentet.

Högtalardiarisering

ai_transcribe Kör högtalardiarisering automatiskt: den upptäcker distinkta högtalare i ljudet och märker varje segment med en speaker_id. Diarization är alltid på under Betan och kan inte slås på eller av av användare, så ingen konfiguration krävs. Högtalarna är märkta "1", "2", "3", och så vidare i den ordning de först talar, och etiketterna är konsekventa genom hela inspelningen.

Limitations

Följande begränsningar gäller under betaversionen:

  • Varje samtal accepterar högst 1 timmes ljud. Längre ljud ger ett felmeddelande.
  • Varje samtal accepterar en inmatningsfil på högst 512 MB. En större fil ger ett fel.
  • ai_transcribe transkriberar endast ljud; videofiler stöds inte.

Exempel

Följande exempel skickar en FILE-typkolumn med namn från audio en tabell direkt till ai_transcribe.

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

Note

FIL-typen är i Beta.

Följande exempel transkriberar varje ljudfil i en Unity Catalog-volym. Den läser filerna som binär data med read_files(..., format => 'binaryFile') och skickar kolumnen content till ai_transcribe.

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

Nästa exempel utökar transkriptionen till en rad per segment, med talaretikett, tidsstämplar och text som separata kolumner. Den använder variant_explode tabellvärdesfunktion för att avnästa arrayen 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;