Przejdź do nawigacji

Promptowanie keytermów

Ten przewodnik pokazuje, jak używać promptowania keytermów z API Speech to Text.

Przewodnik krok po kroku · Zakłada, że masz za sobą szybki start Speech to Text .

Omówienie

Promptowanie keytermów jest dostępne w Scribe v3, Scribe v3 Live, Scribe v2, Scribe v2 Medical (batch) i Scribe v2 Realtime oraz wiąże się z dodatkową opłatą. Szczegółowe informacje znajdziesz na stronie cen API .

Promptowanie keytermów to funkcja, która pozwala wyróżniać słowa lub frazy, aby zwiększyć szansę, że model je transkrybuje. Przydaje się to do transkrypcji rzadko występujących w nagraniu słów lub zdań, takich jak nazwy produktów, imiona czy inne konkretne terminy. Keytermy są skuteczniejsze niż ukierunkowane słowa kluczowe lub słowniki niestandardowe oferowane przez inne modele, ponieważ model korzysta z kontekstu, aby zdecydować, czy transkrybować dany termin.

Batch (Scribe v3 / Scribe v2 / Scribe v2 Medical)Realtime (Scribe v3 Live / Scribe v2 Realtime)
Maks. liczba keytermów100050
Maks. liczba znaków na keyterm5020

W transkrypcji batch każdy keyterm może też zawierać maksymalnie 5 słów.

W przypadku większego słownika realtime Scribe v3 Live akceptuje również bibliotekę keytermów zawierającą do 10 000 terminów.

Na przykład jeśli nazwa twojej firmy nie jest popularną frazą albo ma nietypową pisownię lub wymowę, możesz użyć keytermów, aby model poprawnie ją transkrybował. Weźmy następujące nagranie:

Bez promptowania keytermów model może transkrybować powyższe tak:

I work at eleven labs.

Używa to niewłaściwego stylu dla nazwy firmy. Dzięki promptowaniu keytermów możesz zadbać, aby model transkrybował powyższe z poprawną pisownią i stylem:

I work at ElevenLabs.

Kontekst

Model potrafi używać kontekstu, aby określić, czy termin powinien zostać transkrybowany. Po podaniu keytermu „ElevenLabs” powyższe nagranie jest transkrybowane zgodnie z oczekiwaniami, ale model nadal poprawnie transkrybuje także poniższe nagranie na podstawie kontekstu:

Daje to następującą transkrypcję:

I've worked at many labs. In fact I've worked at eleven labs.

Transkrypcja batch

Promptowanie keytermów jest zintegrowane z API Speech to Text dla batch przez przekazanie parametru keyterms do metody convert.

import os
from dotenv import load_dotenv
from io import BytesIO
import requests
from elevenlabs.client import ElevenLabs
load_dotenv()
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
)
audio_url = (
"https://storage.googleapis.com/eleven-public-cdn/documentation_assets/audio/stt-keyterm-prompting.mp3"
)
response = requests.get(audio_url)
audio_data = BytesIO(response.content)
transcription = elevenlabs.speech_to_text.convert(
file=audio_data,
model_id="scribe_v3", # Model to use
# Keyterms to prompt the model with.
# Up to 1000 keyterms can be provided, with a maximum length of 50 characters each
keyterms=["ElevenLabs"],
)
print(transcription)

Strumieniowanie w czasie rzeczywistym

Promptowanie keytermów jest także dostępne w WebSocket API Speech to Text w czasie rzeczywistym. Przekaż parametr keyterms podczas łączenia.

connection = await elevenlabs.speech_to_text.realtime.connect(RealtimeUrlOptions(
model_id="scribe_v3_live",
keyterms=["ElevenLabs"],
))

Gdy korzystasz bezpośrednio z WebSocket API, przekaż keytermy jako parametry zapytania:

wss://api.elevenlabs.io/v1/speech-to-text/realtime?model_id=scribe_v3_live&keyterms=ElevenLabs&keyterms=AnotherTerm

Biblioteka keytermów

Biblioteka keytermów jest dostępna tylko w Scribe v3 Live (scribe_v3_live).

Promptowanie keytermów najlepiej sprawdza się przy kilku terminach, o których wiesz, że pojawią się w audio. Biblioteka keytermów to duży słownik dla całej dziedziny, np. słownik medyczny, terminy prawne lub katalog produktów. Model korzysta z biblioteki tylko wtedy, gdy usłyszy prawdopodobne dopasowanie.

Wyślij bibliotekę jako keyterm_library w pierwszej wiadomości input_audio_chunk sesji:

{
"message_type": "input_audio_chunk",
"audio_base_64": "<base64-encoded audio>",
"commit": false,
"sample_rate": 16000,
"keyterm_library": ["Acetaminophen", "Metoprolol", "Atorvastatin"]
}

Biblioteka keytermów ma następujące limity:

  • Do 10 000 terminów.
  • Do 50 znaków na termin.
  • Łącznie do 2 MB tekstu.
  • Terminy nie mogą być puste.

W tej samej sesji możesz połączyć bibliotekę keytermów z parametrem zapytania keyterms. Sesje korzystające z któregokolwiek z nich są jednokrotnie rozliczane według stawki za promptowanie keytermów.

keyterm_library jest akceptowane tylko w pierwszym input_audio_chunk sesji. Wysłanie go w późniejszym fragmencie lub wysłanie biblioteki przekraczającej limity zwraca input_error i zamyka połączenie.

Oficjalne SDK nie obsługują jeszcze keyterm_library. Aby z niego skorzystać, połącz się bezpośrednio z WebSocket API.

Kolejne kroki