> 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.

# Utwórz mowę

POST https://api.elevenlabs.io/v1/text-to-speech/{voice_id}
Content-Type: application/json

Zamienia tekst na mowę przy użyciu wybranego głosu i zwraca audio.

Reference: https://elevenlabs.io/docs/api-reference/text-to-speech/convert

## Servers

- `https://api.elevenlabs.io` (Production, default)
- `https://api.us.elevenlabs.io` (Production US)
- `https://api.eu.residency.elevenlabs.io` (Production EU)
- `https://api.in.residency.elevenlabs.io` (Production India)
- `https://api.sg.residency.elevenlabs.io` (Production Singapore)

## Request

### Path parameters

- `voice_id` (string, required) — ID głosu do użycia. Wszystkie dostępne głosy możesz wyświetlić za pomocą endpointu [Pobierz głosy](/docs/api-reference/voices/search).

### Query parameters

- `enable_logging` (boolean, optional, default: true) — Gdy enable_logging ma wartość false, dla żądania zostanie użyty tryb zerowej retencji. Funkcje historii, w tym łączenie żądań, będą niedostępne dla tego żądania. Z trybu zerowej retencji mogą korzystać tylko klienci Enterprise.
- `optimize_streaming_latency` (integer, optional, nullable, deprecated) — Możesz włączyć optymalizacje opóźnienia kosztem jakości. Najniższe możliwe końcowe opóźnienie zależy od modelu. Dostępne wartości: 0 - tryb domyślny (bez optymalizacji opóźnienia) 1 - standardowe optymalizacje opóźnienia (około 50% możliwej poprawy opóźnienia z opcji 3) 2 - silne optymalizacje opóźnienia (około 75% możliwej poprawy opóźnienia z opcji 3) 3 - maksymalne optymalizacje opóźnienia 4 - maksymalne optymalizacje opóźnienia z wyłączonym normalizatorem tekstu, aby jeszcze bardziej zmniejszyć opóźnienie (najniższe opóźnienie, ale możliwa błędna wymowa np. liczb i dat). Domyślnie None.
- `output_format` (enum, optional, default: mp3_44100_128) — Output format of the generated audio. Formatted as codec_sample_rate_bitrate. So an mp3 with 22.05kHz sample rate at 32kbs is represented as mp3_22050_32. MP3 with 192kbps bitrate requires you to be subscribed to Creator tier or above. PCM and WAV formats with 44.1kHz sample rate requires you to be subscribed to Pro tier or above. Note that the μ-law format (sometimes written mu-law, often approximated as u-law) is commonly used for Twilio audio inputs.
  - Allowed values: `alaw_8000`, `mp3_22050_32`, `mp3_24000_48`, `mp3_44100_128`, `mp3_44100_192`, `mp3_44100_32`, `mp3_44100_64`, `mp3_44100_96`, `opus_48000_128`, `opus_48000_192`, `opus_48000_32`, `opus_48000_64`, `opus_48000_96`, `pcm_16000`, `pcm_22050`, `pcm_24000`, `pcm_32000`, `pcm_44100`, `pcm_48000`, `pcm_8000`, `ulaw_8000`, `wav_16000`, `wav_22050`, `wav_24000`, `wav_32000`, `wav_44100`, `wav_48000`, `wav_8000`

### Body (application/json)

This endpoint expects a Body_text_to_speech_full.

- `text` (string, required) — Tekst, który zostanie przekształcony w mowę.
- `model_id` (string, optional, default: eleven_multilingual_v2) — Identyfikator modelu, który zostanie użyty. Możesz sprawdzić dostępne modele za pomocą GET /v1/models. Model musi obsługiwać zamianę tekstu na mowę, co możesz sprawdzić we właściwości can_do_text_to_speech.
- `language_code` (string, optional, nullable) — Kod języka (ISO 639-1) używany do wymuszenia języka modelu i normalizacji tekstu. Jeśli model nie obsługuje podanego kodu języka, zostanie on zignorowany. Ten parametr nie jest obsługiwany przez modele multilingual_v2.
- `voice_settings` (VoiceSettingsResponseModel, optional, nullable) — Ustawienia głosu nadpisujące zapisane ustawienia danego głosu. Są stosowane tylko w tym żądaniu.
- `pronunciation_dictionary_locators` (list of PronunciationDictionaryVersionLocatorRequestModel, optional, nullable) — Lista lokalizatorów słowników wymowy (id, version_id), które zostaną zastosowane do tekstu. Będą stosowane po kolei. W jednym żądaniu możesz podać do 3 lokalizatorów
- `seed` (integer, optional, nullable) — Jeśli podano, nasz system dołoży starań, by generowanie było deterministyczne, więc powtarzane żądania z tym samym seedem i parametrami powinny zwracać ten sam wynik. Determinizm nie jest gwarantowany. Musi być liczbą całkowitą od 0 do 4294967295.
- `previous_text` (string, optional, nullable) — Tekst poprzedzający tekst bieżącego żądania. Może poprawić ciągłość mowy przy łączeniu wielu generacji lub wpłynąć na ciągłość mowy w bieżącej generacji.
- `next_text` (string, optional, nullable) — Tekst następujący po tekście bieżącego żądania. Może poprawić ciągłość mowy przy łączeniu wielu generacji lub wpłynąć na ciągłość mowy w bieżącej generacji.
- `previous_request_ids` (list of string, optional, nullable) — Lista request_id próbek wygenerowanych przed tą generacją. Można jej użyć, aby poprawić ciągłość mowy przy dzieleniu dużego zadania na kilka żądań. Najlepsze wyniki uzyskasz, używając tego samego modelu dla wszystkich generacji. Jeśli wyślesz zarówno previous_text, jak i previous_request_ids, previous_text zostanie zignorowane. Możesz wysłać maksymalnie 3 request_ids.
- `next_request_ids` (list of string, optional, nullable) — Lista request_id próbek następujących po tej generacji. next_request_ids jest szczególnie przydatne do zachowania ciągłości mowy podczas ponownego generowania próbki z problemami z jakością audio. Na przykład, jeśli wygenerowano 3 klipy mowy i chcesz poprawić klip 2, przekazanie identyfikatora żądania klipu 3 jako next_request_id (oraz klipu 1 jako previous_request_id) pomoże zachować naturalny tok połączonej mowy. Najlepsze wyniki uzyskasz, używając tego samego modelu dla wszystkich generacji. Jeśli wyślesz zarówno next_text, jak i next_request_ids, next_text zostanie zignorowane. Możesz wysłać maksymalnie 3 request_ids.
- `use_pvc_as_ivc` (boolean, optional, nullable) — Czy używać wersji IVC profesjonalnego głosu. Może to poprawić ekspresję i zmniejszyć opóźnienie.
- `apply_text_normalization` (enum, optional, default: auto) — Ten parametr kontroluje normalizację tekstu w trzech trybach: „auto”, „on” i „off”. W trybie „auto” system automatycznie zdecyduje, czy zastosować normalizację tekstu, np. zapisywanie liczb słownie. W trybie „on” normalizacja tekstu będzie zawsze stosowana, a w trybie „off” zostanie pominięta.
  - Allowed values: `auto`, `on`, `off`
- `apply_language_text_normalization` (boolean, optional, default: false) — Ten parametr kontroluje normalizację tekstu dla języka. Pomaga w poprawnej wymowie tekstu w niektórych obsługiwanych językach. OSTRZEŻENIE: ten parametr może znacznie zwiększyć opóźnienie żądania. Obecnie obsługiwany tylko dla języka japońskiego.
- `audio_effects` (EffectsSpec-Input, optional, nullable) — Efekty audio zastosowane do wygenerowanego audio. Nieznane identyfikatory zwracają błąd 404, a `param` wskazuje nazwę pola. Pogłos (`environment_id` z `send_level` powyżej 0) i niezerowe `pan` tworzą dźwięk stereo oraz są odrzucane z błędem 400 dla formatów wyjściowych `ulaw_*`, `alaw_*` i `pcm_*`. Efekty nie zmieniają kosztu żądania.

## Response

### 200

Wygenerowany plik audio

- File download.

## Errors

### 422 Unprocessable Entity Error

Błąd walidacji

- `detail` (list of ValidationError, optional)

## Types

### VoiceSettingsResponseModel

- `stability` (double, optional, nullable, default: 0.5) — Określa stabilność głosu i losowość między kolejnymi generacjami. Niższe wartości zapewniają głosowi szerszy zakres emocji. Wyższe wartości mogą dać monotonny głos z ograniczonymi emocjami.
- `use_speaker_boost` (boolean, optional, nullable, default: true) — To ustawienie zwiększa podobieństwo do oryginalnego mówcy. Wymaga nieco większej mocy obliczeniowej, co z kolei zwiększa opóźnienie.
- `similarity_boost` (double, optional, nullable, default: 0.75) — Określa, jak dokładnie AI ma trzymać się oryginalnego głosu podczas próby jego odtworzenia.
- `style` (double, optional, nullable, default: 0) — Określa stopień wyrazistości stylu głosu. To ustawienie wzmacnia styl oryginalnego mówcy. Zużywa dodatkowe zasoby obliczeniowe i może zwiększyć opóźnienie, jeśli ma wartość inną niż 0.
- `speed` (double, optional, nullable, default: 1) — Dostosowuje szybkość głosu. Wartość 1.0 oznacza domyślną szybkość, wartości mniejsze niż 1.0 spowalniają mowę, a większe niż 1.0 ją przyspieszają.
- `clone_strength` (double, optional, nullable) — Określa, jak dobrze głos pasuje do próbek profesjonalnego klonu głosu — od 0 (nisko) do 1 (wysoko). W większości przypadków zalecamy wartość 0. Zwiększ ją tylko, jeśli występują problemy z domyślnymi ustawieniami. Dotyczy tylko profesjonalnych klonów głosu dostrojonych do wybranego modelu v4.

### PronunciationDictionaryVersionLocatorRequestModel

- `pronunciation_dictionary_id` (string, required) — ID słownika wymowy.
- `version_id` (string, optional, nullable) — ID wersji słownika wymowy. Jeśli nie podano, użyta zostanie najnowsza wersja.

### EffectsSpec-Input

Efekty audio stosowane do wygenerowanej mowy: preset filtra, odczuwana odległość, środowisko pogłosu, tło szumów i panoramowanie stereo. Pozostaw domyślne wartości wszystkich pól, aby uzyskać nieprzetworzone audio.

- `filter_preset_id` (string, optional, nullable) — ID presetu filtra zmieniającego brzmienie głosu, np. `phone` lub `old_radio`. Listę prawidłowych ID uzyskasz przez `GET /v1/audio-effects/catalog`.
- `distance` (double, optional, default: 0) — Jak daleko od mikrofonu brzmi mówca: od 0 (blisko, bez zmian) do 1 (daleko). Wyższe wartości tłumią niskie i wysokie częstotliwości oraz, gdy ustawiono środowisko, przesuwają balans z głosu bez efektów w stronę pogłosu.
- `environment_id` (string, optional, nullable) — ID środowiska pogłosu umieszczającego głos w przestrzeni, np. `small_room` lub `hall`. Listę prawidłowych ID uzyskasz przez `GET /v1/audio-effects/catalog`. Pogłos jest renderowany stereo i dodaje wybrzmienie trwające do kilku sekund po zakończeniu mowy.
- `background_noise_id` (string, optional, nullable) — ID tła szumów zapętlonego pod głosem, np. `cafe` lub `keyboard`. Listę prawidłowych ID uzyskasz przez `GET /v1/audio-effects/catalog`.
- `send_level` (double, optional, default: 1) — Ile głosu trafia do pogłosu, od 0 (brak) do 1 (całość). Dotyczy tylko sytuacji, gdy ustawiono `environment_id`; 0 wyłącza pogłos.
- `pan` (double, optional, default: 0) — Pozycja głosu w stereo: od -1 (skrajnie po lewej), przez 0 (środek), do 1 (skrajnie po prawej). Przesuwany jest tylko głos; pogłos i szum tła pozostają na środku.

### ValidationError

- `loc` (list of ValidationErrorLocItems, required)
- `msg` (string, required)
- `type` (string, required)

### ValidationErrorLocItems

- string
- integer

## Examples

**Request**

```json
{
  "text": "The first move is what sets everything in motion.",
  "model_id": "eleven_multilingual_v2"
}
```

**SDK Code**

```python
import requests

url = "https://api.elevenlabs.io/v1/text-to-speech/JBFqnCBsd6RMkjVDRZzb"

querystring = {"output_format":"mp3_44100_128"}

payload = {
    "text": "The first move is what sets everything in motion.",
    "model_id": "eleven_multilingual_v2"
}
headers = {
    "xi-api-key": "xi-api-key",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://api.elevenlabs.io/v1/text-to-speech/JBFqnCBsd6RMkjVDRZzb?output_format=mp3_44100_128';
const options = {
  method: 'POST',
  headers: {'xi-api-key': 'xi-api-key', 'Content-Type': 'application/json'},
  body: '{"text":"The first move is what sets everything in motion.","model_id":"eleven_multilingual_v2"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.elevenlabs.io/v1/text-to-speech/JBFqnCBsd6RMkjVDRZzb?output_format=mp3_44100_128"

	payload := strings.NewReader("{\n  \"text\": \"The first move is what sets everything in motion.\",\n  \"model_id\": \"eleven_multilingual_v2\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("xi-api-key", "xi-api-key")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.elevenlabs.io/v1/text-to-speech/JBFqnCBsd6RMkjVDRZzb?output_format=mp3_44100_128")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["xi-api-key"] = 'xi-api-key'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"text\": \"The first move is what sets everything in motion.\",\n  \"model_id\": \"eleven_multilingual_v2\"\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.elevenlabs.io/v1/text-to-speech/JBFqnCBsd6RMkjVDRZzb?output_format=mp3_44100_128")
  .header("xi-api-key", "xi-api-key")
  .header("Content-Type", "application/json")
  .body("{\n  \"text\": \"The first move is what sets everything in motion.\",\n  \"model_id\": \"eleven_multilingual_v2\"\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.elevenlabs.io/v1/text-to-speech/JBFqnCBsd6RMkjVDRZzb?output_format=mp3_44100_128', [
  'body' => '{
  "text": "The first move is what sets everything in motion.",
  "model_id": "eleven_multilingual_v2"
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'xi-api-key' => 'xi-api-key',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.elevenlabs.io/v1/text-to-speech/JBFqnCBsd6RMkjVDRZzb?output_format=mp3_44100_128");
var request = new RestRequest(Method.POST);
request.AddHeader("xi-api-key", "xi-api-key");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"text\": \"The first move is what sets everything in motion.\",\n  \"model_id\": \"eleven_multilingual_v2\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "xi-api-key": "xi-api-key",
  "Content-Type": "application/json"
]
let parameters = [
  "text": "The first move is what sets everything in motion.",
  "model_id": "eleven_multilingual_v2"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.elevenlabs.io/v1/text-to-speech/JBFqnCBsd6RMkjVDRZzb?output_format=mp3_44100_128")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```