Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime
Die ai_transcribe() Funktion transkribiert eine Audiodatei in Text. Es gibt das Transkript als Satz von zeitgestempelten Segmenten zurück und beschriftet jedes Segment mit einem Lautsprecher mittels automatischer Speaker-Diarisierung. Die Ausgabe ist ein VARIANT Wert, sodass du sie an andere KI-Funktionen verketten kannst.
Important
Dieses Feature befindet sich in der Betaversion. Um sie zu nutzen, muss ein Workspace-Administrator KI-Transkribieren auf der Vorschauseite aktivieren. Siehe Manage Azure Databricks Previews.
Datensicherheit
Ihre Dokumentdaten werden innerhalb des Databricks-Sicherheitsperimeters verarbeitet. Databricks speichert die Parameter, die in die KI-Funktionsaufrufe eingegeben werden, nicht, behält aber Metadaten-Laufdetails, wie zum Beispiel die verwendete Databricks-Runtime-Version.
Anforderungen
- Diese Funktion ist nur in einigen Regionen verfügbar, siehe Verfügbarkeit der KI-Funktion.
- Wenn Sie serverlose Berechnung verwenden, ist auch Folgendes erforderlich:
- Die serverlose Umgebungsversionsnummer muss auf 3 oder höher festgelegt werden, da dies Funktionen wie
VARIANTermöglicht. - Muss Python oder SQL verwenden. Weitere serverlose Features und Einschränkungen finden Sie unter Serverless Compute-Einschränkungen.
- Die serverlose Umgebungsversionsnummer muss auf 3 oder höher festgelegt werden, da dies Funktionen wie
- Die
ai_transcribeFunktion ist mit Databricks-Notizbüchern, SQL-Editor, Databricks-Workflows, Aufträgen oder Lakeflow-Pipelines verfügbar. -
ai_transcribeDie Kosten werden als Teil desAI_FUNCTIONSProdukts erfasst.
Unterstützte Eingabedateiformate
Für Eingabedaten verwenden Sie entweder einen FILE-Ausdruck , der auf eine Audiodatei verweist, oder einen BINARY Ausdruck, der die Bytes der Audiodatei enthält. Wenn die Quelldateien in einem Unity-Katalog-Volume gespeichert sind, generiere die Binärspalte mit dem Spark-Formatleser binaryFile , wie in den Beispielen gezeigt.
ai_transcribe transkribiert nur Audio. Videodateien werden nicht unterstützt. Während der Beta werden folgende Audioformate unterstützt:
- MP3
- WAV
- FLAC
- Opus
- M4A
Unterstützte Sprachen
Während der Beta unterstützt es ai_transcribe englische und spanische Audio. Audio in anderen Sprachen kann ungenaue Transkripte liefern.
Syntax
ai_transcribe(content)
Arguments
content ist das einzige erforderliche Argument.
-
content: Ein FILE-Ausdruck , der auf eine Audiodatei verweist, oder einenBINARYAusdruck, der die Bytes der Audiodatei enthält, wie zum Beispiel diecontentvon erzeugte Spalteread_files(..., format => 'binaryFile').
Rückkehr
ai_transcribe gibt einen VARIANT Wert zurück, wobei das Transkript in zeitgestempelte Abschnitte aufgeteilt ist. Jedes Segment trägt außerdem ein speaker_id Etikett aus der automatischen Lautsprecher-Diarisierung. Siehe Speaker-Diarisierung.
Die Ausgabe hat folgendes 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
}
]
}
}
Die Antwortfelder sind wie folgt:
-
error_message:nullwenn der Aufruf erfolgreich ist, oder eine Zeichenkette, die das Scheitern beschreibt. -
response.duration_seconds: Die Gesamtdauer des Audios, in Sekunden. -
response.segments: Ein Array von Transkriptsegmenten, in Zeitreihenfolge. Um das vollständige Transkript zu erhalten, fügen Sie die Werte der Segmentetextin der richtigen Reihenfolge an. -
segments[].startundsegments[].end: Die Start- und Endzeit des Segments in Sekunden. -
segments[].speaker_id: Das Lautsprecherlabel für den Beitrag. Siehe Speaker-Diarisierung. -
segments[].text: Der Text des Transkripts des Segments.
Lautsprecherdiarisierung
ai_transcribe führt automatisch die Lautsprecherdiarisierung durch: Es erkennt unterschiedliche Lautsprecher im Audio und kennzeichnet jedes Segment mit einem speaker_id. Die Diarisierung ist während der Beta immer aktiviert und kann von den Nutzern nicht ein- oder ausgeschaltet werden, daher ist keine Konfiguration erforderlich. Die Lautsprecher sind mit , "2", "3", und so weiter in der Reihenfolge beschriftet"1", in der sie zuerst sprechen, und die Bezeichnungen sind über die gesamte Aufnahme hinweg einheitlich.
Limitations
Die folgenden Einschränkungen gelten während der Betaversion:
- Jeder Anruf akzeptiert höchstens eine Stunde Audio. Längere Audiosignale liefern einen Fehler.
- Jeder Anruf akzeptiert eine Eingabedatei von höchstens 512 MB. Eine größere Datei liefert einen Fehler zurück.
-
ai_transcribetranskribiert nur Audio; Videodateien werden nicht unterstützt.
Beispiele
Das folgende Beispiel übergibt eine FILE-Typ-Spalte , die aus einer Tabelle benannt audio ist, direkt an ai_transcribe.
SELECT
audio.uri AS path,
ai_transcribe(audio) AS transcription
FROM my_catalog.my_schema.audio_files;
Note
Der DATEI-Typ befindet sich in der Beta.
Das folgende Beispiel transkribiert jede Audiodatei in einem Unity-Catalog-Volume. Sie liest die Dateien als Binärdaten mit und read_files(..., format => 'binaryFile') übergibt die Spalte content an ai_transcribe.
SELECT
path,
ai_transcribe(content) AS transcription
FROM READ_FILES('/Volumes/catalog/schema/volume/audio/', format => 'binaryFile');
Das nächste Beispiel erweitert das Transkript auf eine Zeile pro Segment, wobei das Sprecherlabel, Zeitstempel und Text als separate Spalten fungieren. Es verwendet variant_explode die tabellenwertige Funktion, um das segments Array zu entschachteln.
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;