Instrukcja API do zamiany tekstu na mowę

, 16-09-2025

API jest dostępne dopiero po zasileniu konta.

Głosy API JSON https://speechgen.io/index.php?r=api/voices.

Dostępne są 2 opcje zamiany tekstu na mowę przez API:

Opcja 1 - szybka zamiana krótkich tekstów na mowę.
Opcja 2 - ustawienie zadania zamiany tekstu na mowę.

Przykłady integracji

Dowiedz się, jak usprawnić tworzenie treści głosowych, integrując SpeechGen.io z usługą automatyzacji MAKE. Ten przewodnik obejmuje automatyzację procesów zamiany tekstu na mowę, dzięki czemu generowanie treści głosowych do różnych zastosowań jest prostsze i bardziej efektywne.

Opcja 1 - szybka zamiana krótkich tekstów na mowę

Adres URL dla wariantu 1: https://speechgen.io/index.php?r=api/text

Tekst jest wysyłany do API, a wyniki otrzymujesz natychmiast.

Ta opcja ma limit 2000 znaków. Oraz maksymalnie 2 zmiany głosu. Jeśli limity zostaną przekroczone, otrzymasz błąd (status = -1).

Format zapytania

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

Obowiązkowe parametry:

'token' - 'SekretnyKluczWTwoimProfilu' 'email' - 'twójMail@gmail.com' 'voice' - 'Głos' 'text' - 'Tekst do zamiany na mowę'

Opcjonalne parametry:

'format' - format pliku wynikowego, domyślnie = mp3, możliwe wartości ('mp3', 'wav', 'ogg') 'speed' - prędkość odtwarzania, domyślnie 1, (zakres od 0.1 do 2.0) 'pitch'- wysokość głosu, domyślnie 0, (zakres od -20 do 20) 'emotion' - emocja głosu, domyślnie 'dobry', możliwe wartości ('dobry', 'zły', 'neutralny'). 'pause_sentence' - wielkość pauzy między zdaniami w milisekundach. 'pause_paragraph' - wielkość pauzy między akapitami w milisekundach. 'bitrate'=>48000 - Szybkość transmisji od 8000 do 192000 Hz.

Emocje nie są dostępne dla wszystkich głosów, sprawdź tutaj.

Odpowiedź przychodzi w formacie 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" }

Opis:

"id" - unikalny identyfikator głosu "status" - bieżący status zamiany na mowę. Dostępne z 3 wartości: 0 - przetwarzanie 1 - zakończono pomyślnie -1 - błąd "file" - ścieżka do pliku audio, dostępna jeśli status= 1 "file_cors" - ścieżka do pliku audio CORS "error" - tekst błędu, w przypadku, gdy status = -1 "parts" - liczba zamian na mowę "parts_done" - liczba ukończonych części "duration" - czas trwania pliku audio w sekundach, dostępny jeśli status = 1 "format" - format pliku audio "balans" - limit salda "cost" - koszty zamiany na mowę. (zwiększa się w miarę dubbingowania części głosu)

Przykład szybkiej zamiany tekstu na mowę w PHP wariant 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);

Opcja 2 - ustawienie zadania zamiany tekstu na mowę.

Adres URL dla opcji 2: https://speechgen.io/index.php?r=api/longtext

Krok 1: Tekst jest wysyłany do API i uzyskiwany jest unikalny identyfikator głosu (id).
Krok 2:  Poproś o wynik dubbingu, wysyłając identyfikator dubbingu (id).

Ta metoda nie ma ograniczeń i pozwala na dubbing tekstu do 1 000 000 znaków. Dubbing odbywa się w kolejności priorytetu (kto pierwszy, ten lepszy) i może trwać od 1 do kilku minut, w zależności od długości tekstu.

Format zapytania

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

Obowiązkowe parametry:

'token' - 'SekretnyKluczWTwoimProfilu' 'email' - 'twójMail@gmail.com' 'voice' - 'Głos' 'text' - 'Tekst'

Opcjonalne parametry:

'format' - format pliku wynikowego, domyślnie = mp3, możliwe wartości ('mp3', 'wav', 'ogg') 'speed' - prędkość, domyślnie 1, (zakres od 0.1 do 2.0) 'pitch'- wysokość głosu, domyślnie 0, (zakres od -20 do 20) 'emotion' - zabarwienie emocjonalne, domyślnie 'dobry', możliwe wartości ('dobry', 'zły', 'neutralny'). 'pause_sentence' - wielkość pauzy między zdaniami w milisekundach. 'pause_paragraph' - wielkość pauzy między akapitami w milisekundach. 'bitrate'=>48000 - Szybkość transmisji od 8000 do 192000 Hz.

Nie dostępne dla wszystkich głosów, sprawdź tutaj.

Odpowiedź przychodzi w formacie JSON:

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

Opis:

"id" - unikalny identyfikator głosu "status" - bieżący status zamiany na mowę. Dostępne z 2 wartości: 1 - zadanie dodane pomyślnie -1 - błąd "error" - tekst błędu, w przypadku, gdy status = -1 "parts" - liczba zamian na mowę "parts_done" - liczba ukończonych części "format" - format pliku audio "balans" - saldo limitów konta "cost" - koszty zamiany na mowę. (zwiększa się w miarę dubbingowania części głosu)

Krok 2. Po utworzeniu zadania i uzyskaniu identyfikatora (id), należy wysłać zapytanie do https://speechgen.io/index.php?r=api/result, aby poznać wynik.

Format zapytania

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

Obowiązkowe parametry:

'token' - SekretnyKluczWTwoimProfilu 'email' - twójMail@gmail.com 'id' - unikalny identyfikator głosu uzyskany w kroku 1

Odpowiedź przychodzi w formacie 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" }

Opis:

"id" - unikalny identyfikator głosu "status" - bieżący status zamiany na mowę. Dostępne z 3 wartości: 0 - w trakcie 1 - zakończono pomyślnie -1 - błąd "file" - ścieżka do pliku audio, dostępna jeśli status = 1 "error" - tekst błędu, w przypadku, gdy status = -1 "parts" - liczba zamian na mowę "parts_done" - liczba ukończonych części "duration" - czas trwania pliku audio w sekundach, dostępny jeśli status = 1 "format" - format pliku audio "balans" - limit salda "cost" - koszty zamiany na mowę. (zwiększa się w miarę dubbingowania części głosu) "cuts" - Tablica fragmentów, jeśli w tekście użyto tagu "cut"

Przykład szybkiej zamiany tekstu na mowę w PHP wariant 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); }

Używamy plików cookie, aby zapewnić najlepszą jakość korzystania z naszej witryny. Dowiedz się więcej: Polityka prywatności

Zaakceptuj Cookies