Edycja transkrypcji

Z tego poradnika dowiesz się, jak edytować transkrypcje za pomocą instrukcji w języku naturalnym, korzystając z API Speech to Text.

Poradnik · Zakłada, że masz za sobą szybki start ze Speech to Text .

Omówienie

Edycja transkrypcji to funkcja eksperymentalna, która wiąże się z dodatkową opłatą 30% ponad podstawowy koszt transkrypcji. Opłata naliczana jest za minimum 10 sekund audio na żądanie. Szczegółowe informacje o cenach znajdziesz na stronie cennika API .

Edycja transkrypcji pozwala dołączyć instrukcję w języku naturalnym do żądania transkrypcji. Po transkrypcji audio instrukcja jest stosowana do tekstu, a edytowana wersja wraca razem z oryginałem.

Zastępuje to osobny etap postprocessingu w twoim pipeline. Typowe zastosowania to ujednolicanie zapisu dat, godzin i jednostek, rozwijanie skrótów, usuwanie niepotrzebnych treści, stosowanie innego stylu lub tonu albo formatowanie transkrypcji.

Na przykład transkrypcja poczty głosowej z instrukcją Write all dates in ISO 8601 format (YYYY-MM-DD) zwraca obie wersje tekstu:

{
"language_code": "eng",
"language_probability": 0.9912,
"text": "Hi, this is Jill. Your appointment is confirmed for the twelfth of July twenty twenty-six, and the follow-up is on the third of August.",
"words": [
{ "text": "Hi,", "start": 0.12, "end": 0.38, "type": "word", "logprob": 0.0 },
{ "text": " ", "start": 0.38, "end": 0.41, "type": "spacing", "logprob": 0.0 },
{ "text": "this", "start": 0.41, "end": 0.55, "type": "word", "logprob": 0.0 },
...
],
"transcription_id": "Y2ZX8AxHUzTPCIualYiE",
"edited_transcript": {
"kind": "transcript",
"text": "Hi, this is Jill. Your appointment is confirmed for 2026-07-12, and the follow-up is on 2026-08-03."
}
}

Pola text i words zawsze opisują oryginalną transkrypcję. Edytowana wersja jest zwracana osobno w edited_transcript.

Integracja edycji transkrypcji

Edycja transkrypcji jest zintegrowana z API Speech to Text — przekaż parametr transcript_edit do metody convert. Instrukcja może mieć do 2000 znaków.

import os
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs
load_dotenv()
elevenlabs = ElevenLabs(
api_key=os.getenv("ELEVENLABS_API_KEY"),
)
with open("voicemail.mp3", "rb") as audio_file:
transcription = elevenlabs.speech_to_text.convert(
file=audio_file,
model_id="scribe_v2",
# Natural-language instruction applied to the finished transcript.
transcript_edit="Write all dates in ISO 8601 format (YYYY-MM-DD)",
)
print("Original:", transcription.text)
print("Edited:", transcription.edited_transcript)

Edycja transkrypcji działa zarówno z żądaniami synchronicznymi, jak i żądaniami webhook. W przypadku webhooków edited_transcript jest zawarte w obiekcie transcription payloadu webhooka.

Scribe v2 Realtime obsługuje te same instrukcje dla każdej zatwierdzonej transkrypcji. Zobacz przewodnik po edycji transkrypcji w czasie rzeczywistym.

Pisanie instrukcji

Instrukcja jest stosowana do całej transkrypcji wszędzie tam, gdzie ma zastosowanie, a każda pasująca część jest edytowana, nie tylko pierwsza. Instrukcja może zmieniać konkretne słowa lub frazy i pozostawiać resztę bez zmian albo przepisać czy opisać cały tekst. Jedna instrukcja może łączyć kilka zmian.

Poniższe przykłady pokazują zakres obsługiwanych instrukcji:

InstrukcjaEfekt
Write all dates in ISO 8601 format (YYYY-MM-DD)the twelfth of July twenty twenty-six zmienia się w 2026-07-12
Write times in 24-hour formathalf past two in the afternoon zmienia się w 14:30
Expand abbreviations such as "ETA" and "ASAP" on first useETA zmienia się w estimated time of arrival (ETA)
Add the sentiment of every sentence in brackets at the end. Choose from [positive, negative, neutral]Thanks, that was really helpful. zmienia się w Thanks, that was really helpful. [positive]
Redact every curse word with its first letter followed by stars, e.g. s***That was a damn good call. zmienia się w That was a d*** good call.
Format the transcript as a bulleted list, one sentence per bulletFormatuje całą transkrypcję

Niektóre zmiany mają dedykowane parametry, które są tańsze i bardziej przewidywalne niż instrukcja edycji. Użyj promptowania keytermami, aby zwiększyć rozpoznawanie konkretnych nazw i terminów, no_verbatim, aby usunąć słowa wypełniające i niepłynności, oraz numbers_format (gdy jest obsługiwany), aby wybrać między cyframi a słowami. Edycję transkrypcji zostaw na zmiany, których te opcje nie obejmują.

Podczas pisania instrukcji pamiętaj:

  • Jasno określ oczekiwany wynik. Write all dates in ISO 8601 format (YYYY-MM-DD) działa pewniej niż fix the dates.
  • Instrukcję można napisać w dowolnym języku, ale najlepiej działają instrukcje po angielsku. Edytowana transkrypcja pozostaje w języku oryginału.
  • Wykonywana jest wyłącznie instrukcja. Treść wypowiedziana w audio jest traktowana jako dane i nie może zmienić sposobu zastosowania instrukcji.
  • Jeśli instrukcja nie wpływa na żadną część transkrypcji, edytowana transkrypcja jest identyczna z oryginałem.

Format odpowiedzi

Gdy ustawisz transcript_edit, odpowiedź zawiera obiekt edited_transcript. Pole kind wskazuje, czy edycja się powiodła:

kindPolaOpis
transcripttextEdytowana transkrypcja. Identyczna z oryginalnym text, gdy nie wprowadzono zmian.
errorerror_type (edit_failed), messageNie udało się utworzyć edycji. Sama transkrypcja się powiodła, a oryginalny text jest nadal zwracany.

Pole nie występuje, gdy nie zażądano transcript_edit.

Nieudana edycja
{
"text": "Hi, this is Jill. Your appointment is confirmed for ...",
"edited_transcript": {
"kind": "error",
"error_type": "edit_failed",
"message": "The transcript could not be edited. Please try again."
}
}

Warto pamiętać:

  • Edytowana transkrypcja to zwykły tekst. Znaczniki czasu na poziomie słów, etykiety mówców i additional_formats nadal opisują oryginalną transkrypcję.
  • Edycja uruchamia się po ukończeniu transkrypcji, więc zwiększa opóźnienie wraz z długością transkrypcji.
  • Dodatkowa opłata jest naliczana od czasu trwania audio w żądaniu, przy minimum 10 sekund rozliczanych na żądanie.

Edycji transkrypcji nie można łączyć z entity_detection, entity_redaction ani use_multi_channel. Takie żądania są odrzucane z błędem nieprawidłowych parametrów.

Kolejne kroki