ElevenLabs API Nasıl Kullanılır

Herve Kom

Herve Kom

29 January 2026

ElevenLabs API Nasıl Kullanılır

ElevenLabs, metni doğal konuşmaya dönüştürür ve geniş bir ses, dil ve stil yelpazesini destekler. API, sesi uygulamalara kolayca yerleştirmeyi, anlatım süreçlerini otomatikleştirmeyi veya sesli asistanlar gibi gerçek zamanlı deneyimler oluşturmayı sağlar. Bir HTTP isteği gönderebiliyorsanız, saniyeler içinde ses üretebilirsiniz.

💡
ElevenLabs API'yi önce kod yazmadan test etmek ister misiniz? İstek göndermek, ses yanıtlarını incelemek ve ses ayarlarıyla görsel olarak denemeler yapmak için Apidog'u indirin. Apidog, API koleksiyonlarını kaydetmenize, ekibinizle paylaşmanıza ve istemci kodunu otomatik olarak oluşturmanıza olanak tanıyarak kurulum süresinden saatler kazandırır.
button

ElevenLabs API Nedir?

ElevenLabs API, ses üreten, dönüştüren ve analiz eden yapay zeka modellerine programlı erişim sağlar. Platform, bir metin-konuşma hizmeti olarak başladı ancak tam teşekküllü bir sesli yapay zeka paketine dönüştü.

ElevenLabs API resmi web sitesi

Temel yetenekler:

API, standart HTTP ve WebSocket protokolleri üzerinden çalışır. Herhangi bir dilden çağırabilirsiniz, ancak tür güvenliği ve akış desteği yerleşik olarak bulunan Python ve JavaScript/TypeScript için resmi SDK'lar mevcuttur.

ElevenLabs API Anahtarını Alma

Herhangi bir API çağrısı yapmadan önce bir API anahtarına ihtiyacınız var. İşte nasıl alacağınız:

Adım 1: Ücretsiz bir hesap oluşturun. Ücretsiz plan bile ayda 10.000 karakterle API erişimi içerir.

Adım 2: Giriş yapın ve Profil + API Anahtarı bölümüne gidin. Bunu sol alt köşedeki profil simgenize tıklayarak veya doğrudan geliştirici ayarlarına giderek bulabilirsiniz.

Adım 3: API Anahtarı Oluştur'a tıklayın. Anahtarı kopyalayın ve güvenli bir yerde saklayın—tam anahtarı bir daha göremeyeceksiniz.

Önemli güvenlik notları:

Bu kılavuzdaki örnekler için bunu bir ortam değişkeni olarak ayarlayın:

# Linux/macOS
export ELEVENLABS_API_KEY="your_api_key_here"

# Windows (PowerShell)
$env:ELEVENLABS_API_KEY="your_api_key_here"

ElevenLabs API Uç Noktalarına Genel Bakış

API, birkaç kaynak grubu etrafında düzenlenmiştir. İşte en sık kullanılan uç noktalar:

Uç NoktaYöntemAçıklama
/v1/text-to-speech/{voice_id}POSTMetni konuşma sesine dönüştür
/v1/text-to-speech/{voice_id}/streamPOSTOluşturulduğu anda sesi aktar
/v1/speech-to-speech/{voice_id}POSTKonuşmayı bir sesten başka bir sese dönüştür
/v1/voicesGETTüm mevcut sesleri listele
/v1/voices/{voice_id}GETBelirli bir sesin ayrıntılarını al
/v1/modelsGETTüm mevcut modelleri listele
/v1/userGETKullanıcı hesap bilgilerini ve kullanımını al
/v1/voice-generation/generate-voicePOSTYeni bir rastgele ses oluştur

Temel URL: https://api.elevenlabs.io

Kimlik Doğrulama: Tüm istekler xi-api-key başlığını gerektirir:

xi-api-key: your_api_key_here

cURL ile Metin-Konuşma

API'yi test etmenin en hızlı yolu bir cURL komutu kullanmaktır. Bu örnek, tüm planlarda bulunan varsayılan seslerden biri olan Rachel sesini (ID: 21m00Tcm4TlvDq8ikWAM) kullanır:

curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM" \
  -H "xi-api-key: $ELEVENLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Welcome to our application. This audio was generated using the ElevenLabs API.",
    "model_id": "eleven_flash_v2_5",
    "voice_settings": {
      "stability": 0.5,
      "similarity_boost": 0.75,
      "style": 0.0,
      "use_speaker_boost": true
    }
  }' \
  --output speech.mp3

Başarılı olursa, oluşturulan sesle birlikte bir speech.mp3 dosyası alırsınız. Herhangi bir medya oynatıcıyla oynatın.

İsteği ayrıştırma:

Yanıt ham ses verilerini döndürür. Varsayılan biçim MP3'tür, ancak output_format sorgu parametresini ekleyerek başka biçimler de isteyebilirsiniz:

# MP3 yerine PCM sesi al
curl -X POST "https://api.elevenlabs.io/v1/text-to-speech/21m00Tcm4TlvDq8ikWAM?output_format=pcm_44100" \
  -H "xi-api-key: $ELEVENLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "Hello world", "model_id": "eleven_flash_v2_5"}' \
  --output speech.pcm

Python SDK Kullanma

Resmi Python SDK'sı, tür ipuçları, yerleşik ses çalma ve akış desteği ile entegrasyonu basitleştirir.

Kurulum

pip install elevenlabs

Sesi doğrudan hoparlörlerinizden çalmak için mpv veya ffmpeg'ye de ihtiyacınız olabilir:

# macOS
brew install mpv

# Ubuntu/Debian
sudo apt install mpv

Temel Metin-Konuşma

import os
from elevenlabs.client import ElevenLabs
from elevenlabs import play

client = ElevenLabs(
    api_key=os.getenv("ELEVENLABS_API_KEY")
)

audio = client.text_to_speech.convert(
    text="The ElevenLabs API makes it easy to add realistic voice output to any application.",
    voice_id="JBFqnCBsd6RMkjVDRZzb",  # George voice
    model_id="eleven_multilingual_v2",
    output_format="mp3_44100_128",
)

play(audio)

Sesi Dosyaya Kaydet

from elevenlabs.client import ElevenLabs

client = ElevenLabs(api_key="your_api_key")

audio = client.text_to_speech.convert(
    text="This audio will be saved to a file.",
    voice_id="21m00Tcm4TlvDq8ikWAM",
    model_id="eleven_flash_v2_5",
)

with open("output.mp3", "wb") as f:
    for chunk in audio:
        f.write(chunk)

print("Audio saved to output.mp3")

Mevcut Sesleri Listele

from elevenlabs.client import ElevenLabs

client = ElevenLabs(api_key="your_api_key")

response = client.voices.search()

for voice in response.voices:
    print(f"Name: {voice.name}, ID: {voice.voice_id}, Category: {voice.category}")

Bu, önceden hazırlanmış sesler, klonlanmış sesler ve eklediğiniz topluluk sesleri dahil olmak üzere hesabınızdaki tüm mevcut sesleri yazdırır.

Asenkron Destek

asyncio kullanan uygulamalar için SDK, AsyncElevenLabs'ı sağlar:

import asyncio
from elevenlabs.client import AsyncElevenLabs

client = AsyncElevenLabs(api_key="your_api_key")

async def generate_speech():
    audio = await client.text_to_speech.convert(
        text="This was generated asynchronously.",
        voice_id="21m00Tcm4TlvDq8ikWAM",
        model_id="eleven_flash_v2_5",
    )

    with open("async_output.mp3", "wb") as f:
        async for chunk in audio:
            f.write(chunk)

    print("Async audio saved.")

asyncio.run(generate_speech())

JavaScript SDK Kullanma

Resmi Node.js SDK'sı (@elevenlabs/elevenlabs-js), tam TypeScript desteği sağlar ve Node.js ortamlarında çalışır.

Kurulum

npm install @elevenlabs/elevenlabs-js

Temel Metin-Konuşma

import { ElevenLabsClient, play } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient({
  apiKey: process.env.ELEVENLABS_API_KEY,
});

const audio = await elevenlabs.textToSpeech.convert(
  "21m00Tcm4TlvDq8ikWAM",  // Rachel voice ID
  {
    text: "Hello from the ElevenLabs JavaScript SDK!",
    modelId: "eleven_multilingual_v2",
  }
);

await play(audio);

Dosyaya Kaydet (Node.js)

import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
import { createWriteStream } from "fs";
import { Readable } from "stream";
import { pipeline } from "stream/promises";

const elevenlabs = new ElevenLabsClient({
  apiKey: process.env.ELEVENLABS_API_KEY,
});

const audio = await elevenlabs.textToSpeech.convert(
  "21m00Tcm4TlvDq8ikWAM",
  {
    text: "This audio will be written to a file using Node.js streams.",
    modelId: "eleven_flash_v2_5",
  }
);

const readable = Readable.from(audio);
const writeStream = createWriteStream("output.mp3");
await pipeline(readable, writeStream);

console.log("Audio saved to output.mp3");

Hata Yönetimi

import { ElevenLabsClient, ElevenLabsError } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient({
  apiKey: process.env.ELEVENLABS_API_KEY,
});

try {
  const audio = await elevenlabs.textToSpeech.convert(
    "21m00Tcm4TlvDq8ikWAM",
    {
      text: "Testing error handling.",
      modelId: "eleven_flash_v2_5",
    }
  );
  await play(audio);
} catch (error) {
  if (error instanceof ElevenLabsError) {
    console.error(`API Error: ${error.message}, Status: ${error.statusCode}`);
  } else {
    console.error("Unexpected error:", error);
  }
}

SDK, başarısız istekleri varsayılan olarak 2 kez, 60 saniyelik zaman aşımı ile yeniden dener. Her iki değer de yapılandırılabilir.

Gerçek Zamanlı Ses Akışı

Sohbet robotları, sesli asistanlar veya gecikmenin önemli olduğu herhangi bir uygulama için akış, yanıtın tamamı oluşturulmadan sesi çalmaya başlamanıza olanak tanır. Bu, kullanıcıların anında yanıt beklediği sohbet yapay zekası için kritik öneme sahiptir.

Python Akışı

from elevenlabs import stream
from elevenlabs.client import ElevenLabs

client = ElevenLabs(api_key="your_api_key")

audio_stream = client.text_to_speech.stream(
    text="Streaming allows you to start hearing audio almost instantly, without waiting for the entire generation to complete.",
    voice_id="JBFqnCBsd6RMkjVDRZzb",
    model_id="eleven_flash_v2_5",
)

# Play streamed audio through speakers in real time
stream(audio_stream)

JavaScript Akışı

import { ElevenLabsClient, stream } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

const audioStream = await elevenlabs.textToSpeech.stream(
  "JBFqnCBsd6RMkjVDRZzb",
  {
    text: "This audio streams in real time with minimal latency.",
    modelId: "eleven_flash_v2_5",
  }
);

stream(audioStream);

WebSocket Akışı

En düşük gecikme için WebSocket bağlantılarını kullanın. Bu, metnin parçalar halinde geldiği (örneğin bir LLM'den) gerçek zamanlı sesli ajanlar için idealdir:

import asyncio
import websockets
import json
import base64

async def stream_tts_websocket():
    voice_id = "21m00Tcm4TlvDq8ikWAM"
    model_id = "eleven_flash_v2_5"
    uri = f"wss://api.elevenlabs.io/v1/text-to-speech/{voice_id}/stream-input?model_id={model_id}"

    async with websockets.connect(uri) as ws:
        # Send initial config
        await ws.send(json.dumps({
            "text": " ",
            "voice_settings": {"stability": 0.5, "similarity_boost": 0.75},
            "xi_api_key": "your_api_key",
        }))

        # Send text chunks as they arrive (e.g., from an LLM)
        text_chunks = [
            "Hello! ",
            "This is streaming ",
            "via WebSockets. ",
            "Each chunk is sent separately."
        ]

        for chunk in text_chunks:
            await ws.send(json.dumps({"text": chunk}))

        # Signal end of input
        await ws.send(json.dumps({"text": ""}))

        # Receive audio chunks
        audio_data = b""
        async for message in ws:
            data = json.loads(message)
            if data.get("audio"):
                audio_data += base64.b64decode(data["audio"])
            if data.get("isFinal"):
                break

        with open("websocket_output.mp3", "wb") as f:
            f.write(audio_data)
        print("WebSocket audio saved.")

asyncio.run(stream_tts_websocket())

Ses Seçimi ve Yönetimi

ElevenLabs yüzlerce ses sunar. Doğru olanı seçmek, uygulamanızın kullanıcı deneyimi için önemlidir.

Varsayılan Sesler

Bu sesler, ücretsiz katman dahil tüm planlarda mevcuttur:

Ses AdıSes KimliğiAçıklama
Rachel21m00Tcm4TlvDq8ikWAMSakin, genç kadın
Drew29vD33N1CtxCmqQRPOHJDengeli erkek
Clyde2EiwWnXFnvU5JabPnv8nSavaş gazisi karakteri
Paul5Q0t7uMcjvnagumLfvZiMuhabir
DomiAZnzlk1XvdvUeBnXmlldGüçlü, iddialı kadın
DaveCYw3kZ02Hs0563khs1FjKonuşkan İngiliz erkek
FinD38z5RcWu1voky8WS1jaİrlandalı erkek
SarahEXAVITQu4vr4xnSDxMaLYumuşak, genç kadın

Ses Kimliklerini Bulma

Tüm mevcut sesleri aramak için API'yi kullanın:

curl -X GET "https://api.elevenlabs.io/v1/voices" \
  -H "xi-api-key: $ELEVENLABS_API_KEY" | python3 -m json.tool

Veya kategoriye göre filtreleyin (önceden hazırlanmış, klonlanmış, oluşturulmuş):

from elevenlabs.client import ElevenLabs

client = ElevenLabs(api_key="your_api_key")

# List only premade voices
response = client.voices.search(category="premade")

for voice in response.voices:
    print(f"{voice.name}: {voice.voice_id}")

ElevenLabs web sitesinden de bir ses kimliğini doğrudan kopyalayabilirsiniz: bir ses seçin, üç noktalı menüye tıklayın ve Ses Kimliğini Kopyala'yı seçin.

Doğru Modeli Seçme

ElevenLabs, her biri farklı kullanım durumları için optimize edilmiş birden fazla model sunar:

ElevenLabs Modelleri listesi
# List all available models with details
from elevenlabs.client import ElevenLabs

client = ElevenLabs(api_key="your_api_key")
models = client.models.list()

for model in models:
    print(f"Model: {model.name}")
    print(f"  ID: {model.model_id}")
    print(f"  Languages: {len(model.languages)}")
    print(f"  Max chars: {model.max_characters_request_free_user}")
    print()

ElevenLabs API'yi Apidog ile Test Etme

Entegrasyon kodu yazmadan önce, API uç noktalarını etkileşimli olarak test etmek yardımcı olur. Apidog bunu kolaylaştırır — istekleri görsel olarak yapılandırabilir, yanıtları inceleyebilir (ses dahil) ve memnun kaldığınızda istemci kodu oluşturabilirsiniz.

button

Adım 1: Yeni Bir Proje Kurma

Apidog'u açın ve yeni bir proje oluşturun. Adını "ElevenLabs API" koyun veya uç noktaları mevcut bir projeye ekleyin.

Adım 2: Kimlik Doğrulamayı Yapılandırma

Proje Ayarları > Kimlik Doğrulama'ya gidin ve genel bir başlık ayarlayın:

Bu, kimlik doğrulamayı projedeki her isteğe otomatik olarak ekler.

Adım 3: Metin-Konuşma İsteği Oluşturma

Yeni bir POST isteği oluşturun:

{
  "text": "Testing the ElevenLabs API through Apidog. This makes it easy to experiment with different voices and settings.",
  "model_id": "eleven_flash_v2_5",
  "voice_settings": {
    "stability": 0.5,
    "similarity_boost": 0.75
  }
}

Gönder'e tıklayın. Apidog, yanıt başlıklarını gösterir ve sesi doğrudan indirmenize veya oynatmanıza olanak tanır.

Adım 4: Parametrelerle Deneme Yapma

Apidog'un arayüzünü kullanarak ham JSON'u düzenlemeden ses kimliklerini hızla değiştirebilir, modelleri değiştirebilir veya ses ayarlarını yapabilirsiniz. Kolay karşılaştırma için farklı yapılandırmaları koleksiyonunuzda ayrı uç noktalar olarak kaydedin.

Adım 5: İstemci Kodu Oluşturma

İsteğin çalıştığını onayladıktan sonra, Apidog'da Kod Oluştur'a tıklayarak Python, JavaScript, cURL, Go, Java ve daha fazlası için kullanıma hazır istemci kodu alın. Bu, API belgelerinden çalışan koda manuel çeviriyi ortadan kaldırır.

Şimdi deneyin:Apidog'u ücretsiz indirin

Ses Ayarları ve İnce Ayar

Ses ayarları, bir sesin nasıl duyulduğunu ayarlamanıza olanak tanır. Bu parametreler voice_settings nesnesinde gönderilir:

ParametreAralıkVarsayılanEtki
stability0.0 - 1.00.5Daha yüksek = daha tutarlı, daha az etkileyici. Daha düşük = daha değişken, daha duygusal.
similarity_boost0.0 - 1.00.75Daha yüksek = orijinal sese daha yakın. Daha düşük = daha fazla varyasyon.
style0.0 - 1.00.0Daha yüksek = daha abartılı stil. Gecikmeyi artırır. Sadece Multilingual v2 için geçerlidir.
use_speaker_boostbooleantrueOrijinal konuşmacıya benzerliği artırır. Küçük gecikme artışı.

Pratik örnekler:

from elevenlabs.client import ElevenLabs

client = ElevenLabs(api_key="your_api_key")

# Narration voice: consistent, stable
narration = client.text_to_speech.convert(
    text="Chapter One. It was a bright cold day in April.",
    voice_id="21m00Tcm4TlvDq8ikWAM",
    model_id="eleven_multilingual_v2",
    voice_settings={
        "stability": 0.8,
        "similarity_boost": 0.8,
        "style": 0.2,
        "use_speaker_boost": True,
    },
)

# Conversational voice: expressive, natural
conversational = client.text_to_speech.convert(
    text="Oh wow, that's actually a great idea! Let me think about how we could make it work.",
    voice_id="JBFqnCBsd6RMkjVDRZzb",
    model_id="eleven_multilingual_v2",
    voice_settings={
        "stability": 0.3,
        "similarity_boost": 0.6,
        "style": 0.5,
        "use_speaker_boost": True,
    },
)

Yönergeler:

ElevenLabs API Fiyatlandırması ve Hız Sınırları

ElevenLabs, kredi tabanlı bir fiyatlandırma sistemi kullanır. İşte dökümü:

ElevenLabs Fiyatlandırması

Sorun Giderme

HataNedenÇözüm
401 YetkilendirilmemişGeçersiz veya eksik API anahtarı xi-api-key başlık değerinizi kontrol edin
422 İşlenemeyen VarlıkGeçersiz istek gövdesivoice_id'nin var olduğundan ve metnin boş olmadığından emin olun
429 Çok Fazla İstekHız sınırı aşıldıÜstel geri çekilme ekleyin veya planınızı yükseltin
Ses robotik geliyorYanlış model veya ayarlarMultilingual v2'yi stabilite 0.5 ile deneyin
Telaffuz hatalarıMetin normalleştirme sorunuSayıları/kısaltmaları heceleyin veya SSML benzeri biçimlendirme kullanın

Sonuç

ElevenLabs API, geliştiricilere bugün mevcut en gerçekçi konuşma sentezlerinden bazılarına erişim sağlar. İster birkaç satır anlatıma ister tam teşekküllü gerçek zamanlı bir ses hattına ihtiyacınız olsun, API basit cURL çağrılarından üretim WebSocket akışlarına kadar ölçeklenir.

Uygulamanıza gerçekçi ses eklemeye hazır mısınız? ElevenLabs API uç noktalarını test etmek, ses ayarlarıyla deney yapmak ve istemci kodu oluşturmak için Apidog'u indirin — hepsi ücretsiz, kredi kartı gerekmez.

button

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin