Instrucciones de la API para Texto a Voz

, 16-09-2025

La API solo está disponible después de haber financiado su cuenta.

Voces de la API JSON https://speechgen.io/index.php?r=api/voices.

Hay 2 opciones de voz para texto disponibles a través de la API:

Opción 1: voz rápida de textos cortos.
Opción 2: configuración de una tarea de voz.

Ejemplos de integración

Descubra cómo optimizar la creación de contenido de voz integrando SpeechGen.io con el servicio de automatización MAKE. Esta guía cubre la automatización de procesos de texto a voz, haciendo que la generación de contenido de voz para diversas aplicaciones sea más simple y eficiente.

Opción 1: voz rápida de textos cortos

URL para la variante 1: https://speechgen.io/index.php?r=api/text

El texto se envía a la API y usted obtiene resultados inmediatos.

Esta opción tiene un límite máximo de 2000 caracteres. Y también un máximo de 2 cambios de voz. Si se superan los límites, recibirá un error (estado = -1).

Formato de solicitud

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

Parámetros obligatorios:

'token' - 'SekretKeyInYourProfile' 'email' - 'yourMail@gmail.com' 'voice' - 'Voz' 'text' - 'Texto para Texto a Voz'

Parámetros opcionales:

'format' - formato del archivo resultante, por defecto = mp3, valores posibles ( 'mp3', 'wav', 'ogg') 'speed' - velocidad de reproducción, por defecto 1, (rango de 0.1 a 2.0) 'pitch'- tono de voz, por defecto 0, (rango de -20 a 20) 'emotion' - emoción de la voz, por defecto 'good', valores posibles ( 'good', 'evil', 'neutral'). 'pause_sentence' - El tamaño de la pausa entre frases en milisegundos. 'pause_paragraph' - El tamaño de la pausa entre párrafos en milisegundos. 'bitrate'=>48000 - Tasa de bits de 8000 a 192000 Hz.

La emoción no está disponible para todas las voces, consúltelo aquí.

La respuesta llega en 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" }

Descripción:

"id" - ID de voz único "status" - estado actual de la voz. Disponible en 3 valores: 0 - proceso 1 - completado con éxito -1 - error "file" - ruta del archivo de audio, disponible si status= 1 "file_cors" - ruta del archivo de audio CORS "error" - texto del error, en caso de, si status = -1 "parts" - número de voces "parts_done" - número de piezas completadas "duration" - duración del archivo de audio en segundos, disponible si status = 1 "format" - formato del archivo de audio "balans" - saldo límite "cost" - costos de voz. (aumenta a medida que se doblan las partes de voz)

Ejemplo de voz rápida de texto en 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);

Opción 2: configurar una tarea de voz para el texto.

URL para la opción 2: https://speechgen.io/index.php?r=api/longtext

Paso 1: El texto se envía a la API y se obtiene un ID de voz único (id).
Paso 2:  Solicite el resultado de la voz enviando el identificador de voz (id).

Este método no tiene limitaciones y permite la voz de textos de hasta 1.000.000 de caracteres. La voz se realiza por orden de prioridad (el primero en llegar es el primero en ser atendido) y puede tardar de 1 a varios minutos, dependiendo de la longitud del texto.

Formato de solicitud

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

Parámetros obligatorios:

'token' - 'SekretKeyInYourProfile' 'email' - 'yourMail@gmail.com' 'voice' - 'Voz' 'text' - 'Texto'

Parámetros opcionales:

'format' - formato del archivo resultante, por defecto = mp3, valores posibles( 'mp3', 'wav', 'ogg') 'speed' - velocidad, por defecto 1, (rango de 0.1 a 2.0) 'pitch'- tono de voz, por defecto 0, (rango de -20 a 20) 'emotion' - coloración emocional, por defecto 'good', valores posibles ( 'good', 'evil', 'neutral'). 'pause_sentence' - El tamaño de la pausa entre frases en milisegundos. 'pause_paragraph' - El tamaño de la pausa entre párrafos en milisegundos. 'bitrate'=>48000 - Tasa de bits de 8000 a 192000 Hz.

No disponible para todas las voces, consúltelo aquí.

La respuesta llega en JSON:

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

Descripción:

"id" - ID de voz único "status" - estado actual de la voz. Disponible en 2 valores: 1 - tarea añadida con éxito -1 - error "error" - texto del error, en caso de, si status = -1 "parts" - número de voces "parts_done" - número de piezas completadas "format" - formato del archivo de audio "balans" - el saldo de los límites de la cuenta "cost" - costos de voz. (aumenta a medida que se doblan las partes de voz)

Paso 2. Después de crear una tarea y obtener un identificador (id), se debe enviar una solicitud a https://speechgen.io/index.php?r=api/result, para conocer el resultado.

Formato de solicitud

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

Parámetros obligatorios:

'token' - SekretKeyInYourProfile 'email' - yourMail@gmail.com 'id' - ID de voz único obtenido en el paso 1

La respuesta llega en 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" }

Descripción:

"id" - ID de voz único "status" - estado actual de la voz. Disponible en 3 valores: 0 - en proceso 1 - completado con éxito -1 - error "file" - ruta del archivo de audio, disponible si status = 1 "error" - texto del error, en caso de, si status = -1 "parts" - número de voces "parts_done" - número de piezas completadas "duration" - duración del archivo de audio en segundos, disponible si status = 1 "format" - formato del archivo de audio "balans" - el saldo de los límites de la cuenta "cost" - costos de voz. (aumenta a medida que se doblan las partes de voz) "cuts" - Matriz de fragmentos, si se utiliza la etiqueta "cut" en el texto

Ejemplo de voz de prueba corta en 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); }

Utilizamos cookies para garantizar que obtenga la mejor experiencia en nuestro sitio web. Más información: Política de privacidad

Accept Aceptar cookies