Hướng dẫn API cho Chuyển đổi Văn bản thành Giọng nói

API chỉ có sẵn sau khi bạn đã nạp tiền vào tài khoản của mình.

API giọng nói JSON https://speechgen.io/index.php?r=api/voices.

Có 2 tùy chọn lồng tiếng văn bản qua API:

Tùy chọn 1 - lồng tiếng nhanh cho văn bản ngắn.
Tùy chọn 2 - thiết lập nhiệm vụ lồng tiếng.

Tùy chọn 1 - lồng tiếng nhanh cho văn bản ngắn

Url cho biến thể 1: https://speechgen.io/index.php?r=api/text

Văn bản được gửi đến API, bạn nhận kết quả ngay lập tức.

Tùy chọn này có giới hạn tối đa 2000 ký tự. Và cũng tối đa 2 thay đổi giọng nói. Nếu vượt quá giới hạn, bạn sẽ nhận được lỗi (trạng thái = -1).

Định dạng yêu cầu

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

Các tham số bắt buộc:

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

Các tham số tùy chọn:

'format' - định dạng của file kết quả, mặc định = mp3, các giá trị có thể ( 'mp3', 'wav', 'ogg') 'speed' - tốc độ phát lại, mặc định 1, (phạm vi từ 0.1 đến 2.0) 'pitch'- độ cao của giọng nói, mặc định 0, (phạm vi từ -20 đến 20) 'emotion' - cảm xúc của giọng nói, mặc định 'good', các giá trị có thể ( 'good', 'evil', 'neutral').

Cảm xúc không có sẵn cho tất cả các giọng nói, xem ở đây.

Phản hồi đến dưới dạng 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" }

Mô tả:

"id" - ID giọng nói duy nhất "status" - trạng thái lồng tiếng hiện tại. Có từ 3 giá trị: 0 - quá trình 1 - hoàn thành thành công -1 - lỗi "file" - đường dẫn file âm thanh, có sẵn nếu status= 1 "file_cors" - đường dẫn file âm thanh CORS "error" - văn bản lỗi, trong trường hợp, nếu status = -1 "parts" - số lượng lồng tiếng "parts_done" - số phần đã hoàn thành "duration" - thời lượng file âm thanh bằng giây, có sẵn nếu status = 1 "format" - định dạng file âm thanh "balans" - số dư giới hạn "cost" - chi phí lồng tiếng. (tăng lên khi các phần giọng được lồng tiếng)

Ví dụ về lồng tiếng văn bản ngắn trong PHP biến thể 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); }

Chúng tôi sử dụng cookie để đảm bảo bạn có được trải nghiệm tốt nhất trên trang web của chúng tôi. Tìm hiểu thêm: Chính sách quyền riêng tư

Chấp nhận cookie