ai_transcribe funkcja

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Funkcja transkrybuje ai_transcribe() plik audio na tekst. Zwraca transkrypcję jako zestaw segmentów oznaczonych czasem i oznacza każdy segment głośnikiem, używając automatycznej dziennikarzacji mówcy. Wyjściem jest wartość VARIANT , więc możesz ją łączyć z innymi funkcjami AI.

Ważna

Ta funkcja jest dostępna w wersji beta. Aby z niego korzystać, administrator przestrzeni roboczej musi włączyć AI Transcribe na stronie Podglądów . Zobacz Zarządzanie wersjami zapoznawczami usługi Azure Databricks.

Bezpieczeństwo danych

Dane dokumentu są przetwarzane w ramach strefy bezpieczeństwa Databricks. Databricks nie przechowuje parametrów przekazywanych do wywołań funkcji AI, ale zachowuje szczegóły metadanych, takie jak używana wersja Databricks Runtime.

Wymagania

  • Ta funkcja jest dostępna tylko w niektórych regionach. Zobacz Dostępność funkcji sztucznej inteligencji.
  • Jeśli używasz bezserwerowych obliczeń, wymagane są również następujące elementy:
    • Wersja środowiska bezserwerowego musi być ustawiona na 3 lub nowszą, ponieważ umożliwia to korzystanie z funkcji takich jak VARIANT.
    • Musi używać języka Python lub SQL. Aby uzyskać dodatkowe funkcje i ograniczenia bezserwerowe, zobacz Ograniczenia obliczeniowe bezserwerowe.
  • Funkcja ai_transcribe jest dostępna przy użyciu notesów usługi Databricks, edytora SQL, przepływów pracy usługi Databricks, zadań lub potoków lakeflow.
  • ai_transcribe koszty są zapisane jako część AI_FUNCTIONS produktu.

Obsługiwane formaty plików wejściowych

Dla danych wejściowych użyj wyrażenia typu PLIK , które odnosi się do pliku audio, lub wyrażenia BINARY zawierającego bajty pliku audio. Jeśli pliki źródłowe są przechowywane w wolumie Unity Catalog, wygeneruj kolumnę binarną za pomocą czytnika formatu Spark binaryFile , jak pokazano na przykładach.

ai_transcribe Tylko transkrypcje dźwięku. Pliki wideo nie są obsługiwane. W becie obsługiwane są następujące formaty audio:

  • MP3
  • WAV
  • FLAC (Free Lossless Audio Codec - bezstratny kodek audio)
  • Opus
  • M4A

Obsługiwane języki

W becie obsługuje ai_transcribe dźwięk angielski i hiszpański. Nagrania audio w innych językach mogą zwracać niedokładne transkrypcje.

Syntax

ai_transcribe(content)

Arguments

content jest jedynym wymaganym argumentem.

  • content: Wyrażenie typu PLIK, które odnosi się do pliku audio, lub wyrażenie BINARY zawierające bajty pliku audio, takie jak kolumna content generowana przez read_files(..., format => 'binaryFile').

Zwroty

ai_transcribe zwraca wartość VARIANT , w której transkrypcja jest podzielona na segmenty oznaczone znacznikiem czasowym. Każdy segment posiada również etykietę speaker_id z automatycznego dziennika głośników. Zobacz dziennik mówcy.

Wynik ma następujący schemat:

{
  "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
      }
    ]
  }
}

Pola odpowiedzi są następujące:

  • error_message: null gdy wywołanie się powiedzie, lub ciąg opisujący niepowodzenie.
  • response.duration_seconds: Całkowity czas trwania nagrania, w sekundach.
  • response.segments: Tablica segmentów transkrypcji, w kolejności czasowej. Aby uzyskać pełną transkrypcję, połącz wartości segmentów text w kolejności.
  • segments[].start oraz segments[].end: Czas rozpoczęcia i zakończenia segmentu, w sekundach.
  • segments[].speaker_id: Etykieta głośnika segmentu. Zobacz dziennik mówcy.
  • segments[].text: Tekst transkrypcji segmentu.

Dziennik mówcy

ai_transcribe Automatycznie uruchamia dziennik głośników: wykrywa odrębne głośniki w nagraniu i oznacza każdy segment literą speaker_id. Diaryzacja jest zawsze włączona podczas bety i użytkownicy nie mogą jej włączać ani wyłączać, więc konfiguracja nie jest wymagana. Głośniki są oznaczone jako "1", "2", "3", i tak dalej w kolejności, w jakiej mówią pierwsza, a etykiety są spójne na całym nagraniu.

Ograniczenia

W wersji beta obowiązują następujące ograniczenia:

  • Każde połączenie akceptuje maksymalnie godzinę nagrania audio. Dłuższy dźwięk zwraca błąd.
  • Każde wywołanie akceptuje plik wejściowy o powierzchni maksymalnie 512 MB. Większy plik zwraca błąd.
  • ai_transcribe transkrypcje wyłącznie dźwięku; pliki wideo nie są obsługiwane.

Przykłady

Poniższy przykład przekazuje kolumnę typu FILE o nazwie z audio tabeli bezpośrednio do ai_transcribe.

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

Note

Typ pliku jest w wersji beta.

Poniższy przykład transkrybuje każdy plik audio w tomie katalogu Unity. Odczytuje pliki jako dane binarne z i read_files(..., format => 'binaryFile') przekazuje kolumnę content do ai_transcribe.

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

Następny przykład rozszerza transkrypcję do jednego wiersza na segment, z etykietą mówiącego, znacznikami czasu i tekstem jako osobnymi kolumnami. Do rozgnieżdżenia tablicy segments używa variant_explode funkcji tabelowej.

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;