08-09-2025 , 16-09-2025
API yalnızca hesabınıza para yatırdıktan sonra kullanılabilir.
JSON API sesleri https://speechgen.io/index.php?r=api/voices.
API aracılığıyla kullanabileceğiniz 2 metinden sese dönüştürme seçeneği bulunmaktadır:
1. Seçenek - kısa metinlerin hızlı seslendirilmesi.
2. Seçenek - bir seslendirme görevi ayarlama.
SpeechGen.io'yu otomasyon hizmeti MAKE ile entegre ederek ses içeriği oluşturmayı nasıl kolaylaştıracağınızı keşfedin. Bu kılavuz, metinden sese dönüştürme işlemlerinin otomasyonunu kapsar ve çeşitli uygulamalar için ses içeriği oluşturmayı daha basit ve verimli hale getirir.
1. Seçenek için URL: https://speechgen.io/index.php?r=api/text
Bu seçenekte en fazla 2000 karakter sınırı vardır. Ayrıca en fazla 2 ses değişikliği yapılabilir. Sınırlar aşılırsa bir hata alırsınız (durum = -1).
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'voice'=>'John',
'text'=>"Text for text to Speech",
'format'=>'mp3',
'speed'=>1.1,
'pitch'=>0.8,
'emotion'=>'good',
'pause_sentence'=>300,
'pause_paragraph'=>400,
'bitrate'=>48000,
];
'token' - 'ProfilinizdekiGizliAnahtar'
'email' - 'mailAdresiniz@gmail.com'
'voice' - 'Ses'
'text' - 'Metinden Sese Metin'
'format' - sonuç dosyasının formatı, varsayılan = mp3, olası değerler ('mp3', 'wav', 'ogg')
'speed' - oynatma hızı, varsayılan 1, (0.1 ile 2.0 arası)
'pitch'- ses perdesi, varsayılan 0, (-20 ile 20 arası)
'emotion' - sesin duygusu, varsayılan 'iyi', olası değerler ('iyi', 'kötü', 'nötr').
'pause_sentence' - Cümleler arasındaki duraklama boyutu milisaniye cinsinden.
'pause_paragraph' - Paragraflar arasındaki duraklama boyutu milisaniye cinsinden.
'bitrate'=>48000 - 8000 ile 192000 Hz arası Bit Hızı.
Duygu tüm sesler için mevcut değildir, buradan bakabilirsiniz.
{
"id":"4153594",
"status":"0",
"file":"result.mp3",
"file_cors":"result_cors.mp3",
"parts":"5",
"parts_done":"2",
"duration":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.06"
}
"id" - benzersiz ses kimliği
"status" - mevcut seslendirme durumu. 3 değerden itibaren mevcuttur:
0 - işlemde
1 - başarıyla tamamlandı
-1 - hata
"file" - ses dosyası yolu, durum= 1 ise kullanılabilir
"file_cors" - ses dosyası yolu CORS
"error" - hata metni, durum = -1 ise
"parts" - seslendirme sayısı
"parts_done" - tamamlanan parça sayısı
"duration" - ses dosyası süresi saniye cinsinden, durum = 1 ise kullanılabilir
"format" - ses dosyası formatı
"balans" - limit bakiyesi
"cost" - seslendirme maliyetleri. (ses parçaları seslendirildikçe artar)
$data = [
'token' => '123456',
'email' => 'mail@mail.com',
'voice' => 'John',
'text' => "Text",
'format' => 'mp3',
'speed' => 1.1,
'pitch' => 0,
'emotion' => 'good',
];
$url = "https://speechgen.io/index.php?r=api/text";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
var_dump($response);
$response = json_decode($response, true);
if (curl_errno($ch)) {
var_dump("Connection error with text recognition server, " . curl_error($ch));
} else {
var_dump($response);
if ($response["status"] == 1) {
//Copy
echo " ok " . $response["file"];
copy($response["file"], 'Filename.' . $response["format"]);
} else {
//Error, no voiceover possible
echo $response["error"];
}
}
curl_close($ch);
Adım 1: Metin API'ye gönderilir ve benzersiz bir ses kimliği (id) alınır.
Adım 2: Seslendirme tanımlayıcısını (id) göndererek seslendirmenin sonucunu isteyin.
Bu yöntemin herhangi bir sınırı yoktur ve 1.000.000 karaktere kadar metin seslendirmesine izin verir. Seslendirme öncelik sırasına göre yapılır (ilk gelen alır) ve metnin uzunluğuna bağlı olarak 1 ila birkaç dakika sürebilir.
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'voice'=>'John',
'text'=>"Text",
'format'=>'mp3',
'speed'=>1.1,
'pitch'=>0.8,
'emotion'=>'good',
'pause_sentence'=>300,
'pause_paragraph'=>400,
'bitrate'=>48000,
];
'token' - 'ProfilinizdekiGizliAnahtar'
'email' - 'mailAdresiniz@gmail.com'
'voice' - 'Ses'
'text' - 'Metin'
'format' - sonuç dosyasının formatı, varsayılan = mp3, olası değerler ('mp3', 'wav', 'ogg')
'speed' - hız, varsayılan 1, (0.1 ile 2.0 arası)
'pitch'- ses perdesi, varsayılan 0, (-20 ile 20 arası)
'emotion' - duygusal renk, varsayılan 'iyi', olası değerler ('iyi', 'kötü', 'nötr').
'pause_sentence' - Cümleler arasındaki duraklama boyutu milisaniye cinsinden.
'pause_paragraph' - Paragraflar arasındaki duraklama boyutu milisaniye cinsinden.
'bitrate'=>48000 - 8000 ile 192000 Hz arası Bit Hızı.
Tüm sesler için mevcut değildir, buradan bakın.
{
"id":"4153594",
"status":"0",
"parts":"5",
"parts_done":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.00"
}
"id" - benzersiz ses kimliği
"status" - mevcut seslendirme durumu. 2 değerden itibaren mevcuttur:
1 - görev başarıyla eklendi
-1 - hata
"error" - hata metni, durum = -1 ise
"parts" - seslendirme sayısı
"parts_done" - tamamlanan parça sayısı
"format" - ses dosyası formatı
"balans" - hesap limitlerinin bakiyesi
"cost" - seslendirme maliyetleri. (ses parçaları seslendirildikçe artar)
Adım 2. Bir görev oluşturup bir tanımlayıcı (id) aldıktan sonra, sonucu öğrenmek için https://speechgen.io/index.php?r=api/result adresine bir istek gönderilmelidir.
$data = [
'token'=>'SekretKeyInYourProfile',
'email'=>'yourMail@gmail.com',
'id'=>4153594,
];
'token' - ProfilinizdekiGizliAnahtar
'email' - mailAdresiniz@gmail.com
'id' - 1. adımda alınan benzersiz ses kimliği
{
"id":"4153594",
"status":"0",
"file":"result.mp3",
"cuts":["result_1.mp3","result_2.mp3",...],
"parts":"5",
"parts_done":"0",
"format":"mp3",
"error":"",
"balans":"3331.2720000314",
"cost":"0.00"
}
"id" - benzersiz ses kimliği
"status" - mevcut seslendirme durumu. 3 değerden itibaren mevcuttur:
0 - devam ediyor
1 - başarıyla tamamlandı
-1 - hata
"file" - ses dosyası yolu, durum = 1 ise kullanılabilir
"error" - hata metni, durum = -1 ise
"parts" - seslendirme sayısı
"parts_done" - tamamlanan parça sayısı
"duration" - ses dosyası süresi saniye cinsinden, durum = 1 ise kullanılabilir
"format" - ses dosyası formatı
"balans" - hesap limitlerinin bakiyesi
"cost" - seslendirme maliyetleri. (ses parçaları seslendirildikçe artar)
"cuts" - parçalar dizisi, eğer metinde "cut" etiketi kullanılmışsa
//STEP 1
$data = [
'token' => '123456',
'email' => 'mail@mail.com',
'voice' => 'John',
'text' => "Text",
'format' => 'mp3',
'speed' => 1.1,
'pitch' => 0,
'emotion' => 'good',
];
$url = "https://speechgen.io/index.php?r=api/longtext";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
var_dump($response);
$response = json_decode($response, true);
$resultId = 0;
if (curl_errno($ch)) {
var_dump("Error in connecting to the text recognition server, " . curl_error($ch));
} else {
var_dump($response);
if ($response["status"] == 1) {
//Copy
echo " ok " . $response["file"];
copy($response["file"], 'FileName.' . $response["format"]);
} elseif ($response["status"] == 0) {
//Remember the voice ID, and ask for the result later
$resultId = $response["id"];
} else {
//Error, no voiceover possible
echo $response["error"];
}
}
curl_close($ch);
//STEP 2
// Every minute we make a query-check of the result
if($resultId){
$data = [
'token'=>'123456',
'email'=>'mail@mail.com',
'id'=>$resultId,
];
$url = "https://speechgen.io/index.php?r=api/result";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
var_dump($response);
$response = json_decode($response,true);
if (curl_errno($ch)) {
var_dump("Error in connecting to the text recognition server, ".curl_error($ch));
}else{
var_dump($response);
if($response["status"] == 1){
//Copy
echo " ok ".$response["file"];
copy($response["file"], 'FileMane.' . $response["format"]);
}elseif($response["status"] == 0){
//Not ready yet, we will ask for the result later
echo "In process...";
}else{
//Error, no voiceover possible
echo $response["error"];
}
}
curl_close($ch);
}