API-Anleitung für Text-to-Speech

, 16-09-2025

Die API ist erst verfügbar, nachdem Sie Ihr Konto aufgeladen haben.

JSON API-Stimmen https://speechgen.io/index.php?r=api/voices.

Über die API stehen 2 Text-Voiceover-Optionen zur Verfügung:

1. Option – schnelle Sprachausgabe kurzer Texte.
2. Option – Festlegen einer Sprachausgabeaufgabe.

Integrationsbeispiele

Erfahren Sie, wie Sie die Erstellung von Sprachinhalten optimieren können, indem Sie SpeechGen.io mit dem Automatisierungsservice MAKE integrieren. Dieser Leitfaden behandelt die Automatisierung von Text-to-Speech-Prozessen und macht die Generierung von Sprachinhalten für verschiedene Anwendungen einfacher und effizienter.

1. Option – schnelle Sprachausgabe kurzer Texte

URL für Variante 1: https://speechgen.io/index.php?r=api/text

Der Text wird an die API gesendet, Sie erhalten sofortige Ergebnisse.

Diese Option hat ein maximales Limit von 2000 Zeichen. Und auch maximal 2 Sprachwechsel. Wenn die Limits überschritten werden, erhalten Sie einen Fehler (Status = -1).

Anforderungsformat

$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, ];

Obligatorische Parameter:

'token' - 'SekretKeyInYourProfile' 'email' - 'yourMail@gmail.com' 'voice' - 'Stimme' 'text' - 'Text für Text-to-Speech'

Optionale Parameter:

'format' - Format der Ergebnisdatei, Standard = mp3, mögliche Werte ( 'mp3', 'wav', 'ogg') 'speed' - Wiedergabegeschwindigkeit, Standard 1, (Bereich von 0,1 bis 2,0) 'pitch'- Tonhöhe der Stimme, Standard 0, (Bereich von -20 bis 20) 'emotion' - Emotion der Stimme, Standard 'good', mögliche Werte ( 'good', 'evil', 'neutral'). 'pause_sentence' - Die Länge der Pause zwischen Sätzen in Millisekunden. 'pause_paragraph' - Die Länge der Pause zwischen Absätzen in Millisekunden. 'bitrate'=>48000 - Bitrate von 8000 bis 192000 Hz.

Emotionen sind nicht für alle Stimmen verfügbar. Schauen Sie hier nach.

Die Antwort kommt in JSON:

{ "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" }

Beschreibung:

"id" - eindeutige Stimm-ID "status" - aktueller Sprachausgabestatus. Verfügbar aus 3 Werten: 0 - Prozess 1 - erfolgreich abgeschlossen -1 - Fehler "file" - Pfad zur Audiodatei, verfügbar, wenn Status = 1 "file_cors" - Pfad zur Audiodatei CORS "error" - Fehlermeldung, falls Status = -1 "parts" - Anzahl der Sprachausgaben "parts_done" - Anzahl der abgeschlossenen Teile "duration" - Dauer der Audiodatei in Sekunden, verfügbar, wenn Status = 1 "format" - Format der Audiodatei "balans" - Limit-Guthaben "cost" - Kosten der Sprachausgabe. (wird erhöht, wenn Sprachausgabeteile synchronisiert werden)

Beispiel für eine kurze Text-Sprachausgabe in PHP, Variante 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/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);

Option 2 – Festlegen einer Sprachausgabeaufgabe für den Text.

URL für Option 2: https://speechgen.io/index.php?r=api/longtext

Schritt 1: Der Text wird an die API gesendet und eine eindeutige Sprach-ID (id) erhalten.
Schritt 2:  Fordern Sie das Ergebnis der Synchronisation an, indem Sie den Synchronisationsidentifikator (id) senden.

Diese Methode hat keine Einschränkungen und ermöglicht die Synchronisation von Texten mit bis zu 1.000.000 Zeichen. Die Synchronisation erfolgt nach Priorität (Wer zuerst kommt, mahlt zuerst) und kann je nach Textlänge 1 bis mehrere Minuten dauern.

Anforderungsformat

$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, ];

Obligatorische Parameter:

'token' - 'SekretKeyInYourProfile' 'email' - 'yourMail@gmail.com' 'voice' - 'Stimme' 'text' - 'Text'

Optionale Parameter:

'format' - Format der Ergebnisdatei, Standard = mp3, mögliche Werte ( 'mp3', 'wav', 'ogg') 'speed' - Geschwindigkeit, Standard 1, (Bereich von 0,1 bis 2,0) 'pitch'- Tonhöhe der Stimme, Standard 0, (Bereich von -20 bis 20) 'emotion' - emotionale Färbung, Standard 'good', mögliche Werte ( 'good', 'evil', 'neutral'). 'pause_sentence' - Die Länge der Pause zwischen Sätzen in Millisekunden. 'pause_paragraph' - Die Länge der Pause zwischen Absätzen in Millisekunden. 'bitrate'=>48000 - Bitrate von 8000 bis 192000 Hz.

Nicht für alle Stimmen verfügbar, hier nachschauen.

Die Antwort kommt in JSON:

{ "id":"4153594", "status":"0", "parts":"5", "parts_done":"0", "format":"mp3", "error":"", "balans":"3331.2720000314", "cost":"0.00" }

Beschreibung:

"id" - eindeutige Stimm-ID "status" - aktueller Sprachausgabestatus. Verfügbar aus 2 Werten: 1 - Aufgabe erfolgreich hinzugefügt -1 - Fehler "error" - Fehlermeldung, falls Status = -1 "parts" - Anzahl der Sprachausgaben "parts_done" - Anzahl der abgeschlossenen Teile "format" - Format der Audiodatei "balans" - das Guthaben der Kontolimits "cost" - Kosten der Sprachausgabe. (wird erhöht, wenn Sprachausgabeteile synchronisiert werden)

Schritt 2. Nach dem Erstellen einer Aufgabe und dem Erhalt einer Kennung (id) muss eine Anfrage an https://speechgen.io/index.php?r=api/result gesendet werden, um das Ergebnis zu ermitteln.

Anforderungsformat

$data = [ 'token'=>'SekretKeyInYourProfile', 'email'=>'yourMail@gmail.com', 'id'=>4153594, ];

Obligatorische Parameter:

'token' - SekretKeyInYourProfile 'email' - yourMail@gmail.com 'id' - Eindeutige Stimm-ID aus Schritt 1

Die Antwort kommt in JSON:

{ "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" }

Beschreibung:

"id" - eindeutige Stimm-ID "status" - aktueller Sprachausgabestatus. Verfügbar aus 3 Werten: 0 - in Bearbeitung 1 - erfolgreich abgeschlossen -1 - Fehler "file" - Pfad zur Audiodatei, verfügbar, wenn Status = 1 "error" - Fehlermeldung, falls Status = -1 "parts" - Anzahl der Sprachausgaben "parts_done" - Anzahl der abgeschlossenen Teile "duration" - Dauer der Audiodatei in Sekunden, verfügbar, wenn Status = 1 "format" - Format der Audiodatei "balans" - das Guthaben der Kontolimits "cost" - Kosten der Sprachausgabe. (wird erhöht, wenn Sprachausgabeteile synchronisiert werden) "cuts" - Array von Fragmenten, wenn der Tag "cut" im Text verwendet wird

Beispiel für eine kurze Test-Sprachausgabe in PHP, Variante 2

//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); }

Wir benutzen Cookies, um Ihnen das beste Erlebnis auf der Website zu bieten. Mehr Informationen: Privacy Policy

Cookies akzeptieren