Hướng dẫn API Text to Speech

, 16-09-2025

API chỉ khả dụng sau khi bạn đã nạp tiền vào tài khoản.

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

Có 2 tùy chọn đọc văn bản qua API:

Tùy chọn 1 - đọc nhanh các văn bản ngắn.
Tùy chọn 2 - thiết lập tác vụ đọc văn bản.

Ví dụ tích hợp

Khám phá cách hợp lý hóa việc tạo nội dung giọng nói bằng cách tích hợp SpeechGen.io với dịch vụ tự động hóa MAKE. Hướng dẫn này bao gồm việc tự động hóa các quy trình chuyển văn bản thành giọng nói, giúp việc tạo nội dung giọng nói cho các ứng dụng khác nhau trở nên đơn giản và hiệu quả hơn.

Tùy chọn 1 - đọc nhanh các văn bản ngắn

URL cho tùy chọn 1: https://speechgen.io/index.php?r=api/text

Văn bản được gửi đến API, bạn nhận được 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 có tối đa 2 lần thay đổi giọng nói. Nếu vượt quá giới hạn, bạn sẽ nhận được lỗi (status = -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' - 'Khóa bí mật trong hồ sơ của bạn' 'email' - 'yourMail@gmail.com' 'voice' - 'Giọng nói' 'text' - 'Văn bản để chuyển thành giọng nói'

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

'format' - định dạng của tệp kết quả, mặc định = mp3, các giá trị có thể có ( 'mp3', 'wav', 'ogg') 'speed' - tốc độ phát lại, mặc định là 1, (phạm vi từ 0.1 đến 2.0) 'pitch'- cao độ giọng nói, mặc định là 0, (phạm vi từ -20 đến 20) 'emotion' - cảm xúc giọng nói, mặc định là 'good', các giá trị có thể có ( 'good', 'evil', 'neutral'). 'pause_sentence' - Kích thước tạm dừng giữa các câu tính bằng mili giây. 'pause_paragraph' - Kích thước tạm dừng giữa các đoạn văn tính bằng mili giây. 'bitrate'=>48000 - Tốc độ bit từ 8000 đến 192000 Hz.

Cảm xúc không khả dụng cho tất cả các giọng nói, xem tại đâ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 đọc hiện tại. Có sẵn từ 3 giá trị: 0 - đang xử lý 1 - hoàn thành thành công -1 - lỗi "file" - đường dẫn tệp âm thanh, có sẵn nếu status= 1 "file_cors" - đường dẫn tệp âm thanh CORS "error" - văn bản lỗi, trong trường hợp có lỗi, nếu status = -1 "parts" - số lượng bản đọc "parts_done" - số lượng bản đọc đã hoàn thành "duration" - thời lượng tệp âm thanh tính bằng giây, có sẵn nếu status = 1 "format" - định dạng tệp âm thanh "balans" - số dư giới hạn "cost" - chi phí đọc. (tăng lên khi các phần giọng nói được đọc)

Ví dụ đọc văn bản ngắn bằng PHP tùy chọn 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);

Tùy chọn 2 - thiết lập tác vụ đọc văn bản.

URL cho tùy chọn 2: https://speechgen.io/index.php?r=api/longtext

Bước 1: Văn bản được gửi đến API và nhận được ID giọng nói duy nhất (id).
Bước 2:  Yêu cầu kết quả đọc bằng cách gửi mã định danh đọc (id).

Phương pháp này không có giới hạn và cho phép đọc văn bản lên đến 1.000.000 ký tự. Việc đọc diễn ra theo thứ tự ưu tiên (ai đến trước được phục vụ trước) và có thể mất từ 1 đến vài phút, tùy thuộc vào độ dài của văn bản.

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

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

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

'token' - 'Khóa bí mật trong hồ sơ của bạn' 'email' - 'yourMail@gmail.com' 'voice' - 'Giọng nói' 'text' - 'Văn bản'

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

'format' - định dạng của tệp kết quả, mặc định = mp3, các giá trị có thể có( 'mp3', 'wav', 'ogg') 'speed' - tốc độ, mặc định là 1, (phạm vi từ 0.1 đến 2.0) 'pitch'- cao độ giọng nói, mặc định là 0, (phạm vi từ -20 đến 20) 'emotion' - sắc thái cảm xúc, mặc định là 'good', các giá trị có thể có ( 'good', 'evil', 'neutral'). 'pause_sentence' - Kích thước tạm dừng giữa các câu tính bằng mili giây. 'pause_paragraph' - Kích thước tạm dừng giữa các đoạn văn tính bằng mili giây. 'bitrate'=>48000 - Tốc độ bit từ 8000 đến 192000 Hz.

Không khả dụng cho tất cả các giọng nói, xem tại đây.

Phản hồi đến dưới dạng JSON:

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

Mô tả:

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

Bước 2. Sau khi tạo tác vụ và nhận được mã định danh (id), một yêu cầu phải được gửi đến https://speechgen.io/index.php?r=api/result, để biết kết quả.

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

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

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

'token' - Khóa bí mật trong hồ sơ của bạn 'email' - yourMail@gmail.com 'id' - ID giọng nói duy nhất thu được ở bước 1

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

Mô tả:

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

Ví dụ đọc văn bản ngắn bằng PHP tùy chọn 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