> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Użyj własnej transkrypcji

> **Note**
>
> **Poradnik** · Zakłada, że wiesz, jak tworzyć projekty dubbingu, zgodnie z instrukcją
> [quickstart dubbingu](/docs/pl/eleven-api/guides/cookbooks/dubbing).

> **Warning**
>
> Dodawanie własnej transkrypcji i tłumaczeń jest dostępne tylko w przestrzeniach roboczych Enterprise. Skontaktuj się z
> [działem sprzedaży](https://elevenlabs.io/contact-sales), aby uzyskać dostęp.

Domyślnie Dubbing API transkrybuje materiały źródłowe i tłumaczy maszynowo transkrypcję na każdy język docelowy. Jeśli masz już dokładną transkrypcję — napisy, scenariusz lub profesjonalnie przetłumaczony tekst — możesz użyć jej zamiast tego. Ten przewodnik opisuje format pliku transkrypcji, tworzenie projektu z transkrypcji i dodawanie własnych tłumaczeń podczas dodawania języka.

## Format pliku transkrypcji

Transkrypcja to plik JSON z jedną tablicą `segments` na najwyższym poziomie. Każdy segment to jedna wypowiedź: wypowiedziany tekst, czas rozpoczęcia i zakończenia oraz opcjonalnie osoba, która go wypowiada.

**`transcript.json`**

```json title="transcript.json"
{
  "segments": [
    {
      "external_id": "line_0",
      "speaker_id": "speaker_0",
      "start_s": 0.0,
      "end_s": 14.5,
      "text": "With my soft and whispery American accent, I'm the ideal choice for creating ASMR content, meditation guides, or adding an intimate feel to your narrative projects."
    }
  ]
}
```

| Pole          | Wymagane | Opis                                                                                                                                                                           |
| ------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `text`        | Tak      | Tekst wypowiadany w segmencie.                                                                                                                                                 |
| `start_s`     | Tak      | Czas rozpoczęcia segmentu w sekundach.                                                                                                                                         |
| `end_s`       | Tak      | Czas zakończenia segmentu w sekundach.                                                                                                                                         |
| `speaker_id`  | Nie      | Identyfikator grupujący segmenty wypowiadane przez tę samą osobę, aby każdy mówca był dubbingowany tym samym głosem. Segmenty bez niego korzystają z jednego domyślnego mówcy. |
| `external_id` | Nie      | Twój identyfikator segmentu — maksymalnie 128 znaków, unikalny w transkrypcji. Służy jako klucz tłumaczeń i jest zwracany przy każdym odczycie transkrypcji.                   |
| `translation` | Nie      | Przetłumaczony tekst segmentu używany do zainicjowania języka docelowego utworzonego przez `target_language`. Jeśli zawiera go dowolny segment, muszą go zawierać wszystkie.   |

### Zasady dotyczące segmentów

Transkrypcja jest walidowana podczas tworzenia projektu:

* Segmenty muszą być uporządkowane według `start_s`.
* Segment musi trwać od 0,1 do 25 sekund, a `end_s` musi być większe niż `start_s`.
* Segmenty z tym samym `speaker_id` nie mogą się nakładać, ale mogą stykać się na końcach. Segmenty różnych mówców mogą się nakładać, aby odzwierciedlić jednoczesną mowę.
* Transkrypcja może zawierać maksymalnie 20 000 segmentów, a plik może mieć maksymalnie 4 MiB.

Wybieraj raczej krótsze niż dłuższe segmenty: dziel zdania wszędzie tam, gdzie pauza trwa co najmniej sekundę. Granice segmentów określają synchronizację zdubbingowanego audio z materiałem źródłowym, więc transkrypcja z dokładnymi, naturalnymi podziałami daje lepiej zsynchronizowany dubbing.

## Utwórz projekt z transkrypcji

Przekaż plik transkrypcji podczas tworzenia projektu. `source_language` jest wymagane przy dodawaniu transkrypcji, ponieważ materiał źródłowy nie jest transkrybowany automatycznie. Języki podaje się jako tagi BCP-47, na przykład `es` lub `fr-CA`. Wszystkie akceptowane wartości znajdziesz w sekcji [obsługiwane języki i dialekty](/docs/pl/overview/capabilities/dubbing#supported-languages).

```python
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("transcript.json", "rb") as transcript:
    project = elevenlabs.dubbing.project.create(
        source_url="https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3",
        source_language="en",
        transcript=transcript,
    )

print(project.project_id)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import "dotenv/config";
import { createReadStream } from "fs";

const elevenlabs = new ElevenLabsClient();

const project = await elevenlabs.dubbing.project.create({
  sourceUrl: "https://storage.googleapis.com/eleven-public-cdn/audio/marketing/nicole.mp3",
  sourceLanguage: "en",
  transcript: createReadStream("transcript.json"),
});

console.log(project.projectId);
```

Projekt nadal przetwarza materiał źródłowy, zanim będzie można utworzyć dubbing, więc odpytywanie powtarzaj, aż jego status będzie mieć wartość `ready`, jak pokazano w [quickstarcie](/docs/pl/eleven-api/guides/cookbooks/dubbing). Twoje segmenty są używane bez zmian; automatyczna transkrypcja nie jest uruchamiana.

## Dodaj własne tłumaczenia

Podczas dodawania języka docelowego przekaż mapę `translations`, aby użyć własnych tłumaczeń zamiast tłumaczenia maszynowego. Kluczami mapy są `external_id` każdego segmentu źródłowego lub jego wewnętrzne `id`, jeśli nie podano własnego identyfikatora. Mapa musi obejmować każdy segment źródłowy dokładnie raz.

```python
project_id = "proj_1601kwkyxp0hfzvtmyxwqxx6mcy3"

language = elevenlabs.dubbing.project.language.create(
    project_id,
    target_language="fr",
    translations={
        "line_0": "Avec mon accent américain doux et murmuré, je suis le choix idéal pour créer du contenu ASMR, des guides de méditation, ou pour apporter une touche d'intimité à vos projets narratifs.",
    },
)
```

```typescript
const projectId = "proj_1601kwkyxp0hfzvtmyxwqxx6mcy3";

const language = await elevenlabs.dubbing.project.language.create(projectId, {
  targetLanguage: "fr",
  translations: {
    line_0:
      "Avec mon accent américain doux et murmuré, je suis le choix idéal pour créer du contenu ASMR, des guides de méditation, ou pour apporter une touche d'intimité à vos projets narratifs.",
  },
});
```

Każdy język docelowy wymaga osobnego wywołania create, więc powtórz to żądanie dla każdego języka dubbingu. Mapa `translations` może zawierać maksymalnie 20 000 wpisów o łącznej wielkości tekstu do 4 MiB.

Jeśli segmenty nie mają `external_id`, odczytaj źródłową transkrypcję, aby uzyskać wewnętrzne `id` każdego segmentu, i użyj ich jako kluczy:

```python
transcript = elevenlabs.dubbing.project.transcript.get(project_id)
for segment in transcript.segments:
    print(segment.id, segment.text)
```

```typescript
const transcript = await elevenlabs.dubbing.project.transcript.get(projectId);
for (const segment of transcript.segments) {
  console.log(segment.id, segment.text);
}
```

### Dodaj tłumaczenia podczas tworzenia projektu

W przypadku jednego języka docelowego możesz pominąć osobną mapę `translations`, dodając `translation` do każdego segmentu w pliku transkrypcji i przekazując `target_language` podczas tworzenia projektu. Język docelowy zostanie utworzony w kolejce z twoimi tłumaczeniami i zacznie się generować, gdy projekt będzie gotowy.

**`transcript.json`**

```json title="transcript.json"
{
  "segments": [
    {
      "external_id": "line_0",
      "speaker_id": "speaker_0",
      "start_s": 0.0,
      "end_s": 14.5,
      "text": "With my soft and whispery American accent, I'm the ideal choice for creating ASMR content, meditation guides, or adding an intimate feel to your narrative projects.",
      "translation": "Avec mon accent américain doux et murmuré, je suis le choix idéal pour créer du contenu ASMR, des guides de méditation, ou pour apporter une touche d'intimité à vos projets narratifs."
    }
  ]
}
```

## Kwestie jakości

Jakość dubbingu zależy od transkrypcji i tłumaczeń, na których się opiera. Czasy segmentów i tekst są używane bezpośrednio do synchronizacji i udźwiękowienia dubbingu, więc niedokładne czasy lub tekst obniżają jakość wyniku. Tłumaczenia są generowane tak, by zmieściły się w czasie danego segmentu: tłumaczenie znacznie dłuższe lub krótsze od oryginału wpływa na tempo zdubbingowanej mowy, dlatego staraj się, by miały podobną długość wypowiedzi.

## Dalsze kroki

#### [Dopracuj i wygeneruj dubbing ponownie](/docs/pl/eleven-api/guides/how-to/dubbing/refine-and-regenerate)

Edytuj źródłową transkrypcję i tłumaczenia, a potem wygeneruj dubbing ponownie

#### [Dubbing w wielu językach](/docs/pl/eleven-api/guides/how-to/dubbing/multiple-languages)

Dodaj kilka języków docelowych do jednego projektu

#### [Dokumentacja API](/docs/pl/api-reference/dubbing/create-project)

Poznaj wszystkie parametry i formaty odpowiedzi Dubbing API