API instrukcija tekstui į kalbą

, 20-12-2023

API prieinama tik po to, kai papildysite savo sąskaitą.

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

Per API prieinamos 2 teksto įgarsinimo parinktys:

1 parinktis - greitas trumpų tekstų įgarsinimas.
2 parinktis - įgarsinimo užduoties nustatymas.

1 parinktis - greitas trumpų tekstų įgarsinimas

Url variantui 1: https://speechgen.io/index.php?r=api/text

Tekstas siunčiamas į API, gaunate nedelsiant rezultatus.

Ši parinktis turi maksimalų 2000 simbolių limitą. Taip pat maksimaliai 2 balsų keitimai. Jei viršijami limitai, gausite klaidą (statusas = -1).

Užklausos formatas

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

Mandatory parameters:

'token' - 'SekretKeyInYourProfile' 'email' - 'yourMail@gmail.com' 'voice' - 'Voice' 'text' - 'Text for text to Speech'

Optional parameters:

'format' - format of the resulting file, by default = mp3, possible values ( 'mp3', 'wav', 'ogg') 'speed' - playback speed, by default 1, (range from 0.1 to 2.0) 'pitch'- voice pitch, by default 0, (range from -20 to 20) 'emotion' - emotion of voice , by default 'good', possible values ( 'good', 'evil', 'neutral').

Emotion Not available for all voices, look it here.

The answer comes 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" }

Description:

"id" - unique voice ID "status" - current voiceover status. Available from 3 values: 0 - process 1 - completed successfully -1 - error "file" - audio file path, available if status= 1 "file_cors" - audio file path CORS "error" - error text, in the event of, if status = -1 "parts" - number of voiceovers "parts_done" - number of pieces completed "duration" - audio file duration in seconds, available if status = 1 "format" - audio file format "balans" - limit balance "cost" - voiceover costs. (is increased as the voice parts are dubbed)

Example of a short text voiceover in PHP variant 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 is to set a voice-over task for the text.

Url for option 2: https://speechgen.io/index.php?r=api/longtext

Step 1: Text is sent to the API and a unique voice ID is obtained(id).
Step 2:  Request the result of the dubbing by sending the dubbing identifier (id).

This method has no limitations and allows text dubbing of up to 1,000,000 characters. The dubbing takes place in order of priority (first come, first served) and can take from 1 to several minutes, depending on the length of the text.

Request format

$data = [ 'token'=>'SekretKeyInYourProfile', 'email'=>'yourMail@gmail.com', 'voice'=>'John', 'text'=>"Text", 'format'=>'mp3', 'speed'=>1.1, 'pitch'=>0.8, 'emotion'=>'good', ];

Mandatory parameters:

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

Optional parameters:

'format' - format of the resulting file, by default = mp3, possible values( 'mp3', 'wav', 'ogg') 'speed' - speed, by default 1, (range from 0.1 to 2.0) 'pitch'- voice pitch, by default 0, (range from -20 to 20) 'emotion' - emotional coloration, by default 'good', possible values ( 'good', 'evil', 'neutral').

Not available for all voices, look here.

The response comes in JSON:

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

Description:

"id" - unique voice ID "status" - current voiceover status. Available from 2 values: 1 - task added successfully -1 - error "error" - error text, in case of, if status = -1 "parts" - number of voiceovers "parts_done" - number of pieces completed "format" - audio file format "balans" - the balance of the account limits "cost" - voiceover costs. ( is increased as the voice parts are dubbed)

Step 2. After creating a task and obtaining an identifier (id), a request must be sent to https://speechgen.io/index.php?r=api/result, to find out the result.

Request format

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

Mandatory parameters:

'token' - SekretKeyInYourProfile 'email' - yourMail@gmail.com 'id' - Unique voice ID obtained in step 1

The response comes 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" }

Description:

"id" - unique voice ID "status" - current voiceover status. Available from 3 values: 0 - in the midst of 1 - completed successfully -1 - error "file" - audio file path, available if status = 1 "error" - error text, in case of, if status = -1 "parts" - number of voiceovers "parts_done" - number of pieces completed "duration" - audio file duration in seconds, available if status = 1 "format" - audio file format "balans" - the balance of the account limits "cost" - voiceover costs. ( is increased as the voice parts are dubbed) "cuts" - Array of fragments, if the "cut" tag is used in the text

Example of a short test voiceover in PHP variant 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); }

Mes naudojame slapukus, kad užtikrintume geriausią patirtį mūsų svetainėje. Sužinokite daugiau: Privatumo politika

Priimti Cookies