Instruções da API para Texto para Voz

, 16-09-2025

A API só está disponível depois de ter financiado a sua conta.

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

Existem 2 opções de narração de texto disponíveis através da API:

1ª opção - narração rápida de textos curtos.
2ª opção - configuração de uma tarefa de narração.

Exemplos de integração

Descubra como otimizar a criação de conteúdo de voz integrando o SpeechGen.io com o serviço de automação MAKE. Este guia aborda a automação de processos de texto para voz, tornando mais simples e eficiente a geração de conteúdo de voz para várias aplicações.

1ª opção - narração rápida de textos curtos

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

O texto é enviado para a API, obtém resultados imediatos.

Esta opção tem um limite máximo de 2000 caracteres. E também um máximo de 2 alterações de voz. Se os limites forem excedidos, receberá um erro (status = -1).

Formato do pedido

$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 obrigatórios:

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

Parâmetros opcionais:

'format' - formato do ficheiro resultante, por defeito = mp3, valores possíveis ( 'mp3', 'wav', 'ogg') 'speed' - velocidade de reprodução, por defeito 1, (intervalo de 0.1 a 2.0) 'pitch'- tom da voz, por defeito 0, (intervalo de -20 a 20) 'emotion' - emoção da voz, por defeito 'good', valores possíveis ( 'good', 'evil', 'neutral'). 'pause_sentence' - O tamanho da pausa entre frases em milissegundos. 'pause_paragraph' - O tamanho da pausa entre parágrafos em milissegundos. 'bitrate'=>48000 - Taxa de bits de 8000 a 192000 Hz.

Emoção Não disponível para todas as vozes, veja aqui.

A resposta vem em 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" }

Descrição:

"id" - ID único da voz "status" - estado atual da narração. Disponível a partir de 3 valores: 0 - em processamento 1 - concluído com sucesso -1 - erro "file" - caminho do ficheiro de áudio, disponível se status= 1 "file_cors" - caminho do ficheiro de áudio CORS "error" - texto do erro, em caso de, se status = -1 "parts" - número de narrações "parts_done" - número de partes concluídas "duration" - duração do ficheiro de áudio em segundos, disponível se status = 1 "format" - formato do ficheiro de áudio "balans" - limite de saldo "cost" - custos da narração. (é aumentado à medida que as partes da voz são dubladas)

Exemplo de narração de texto curto em 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);

Opção 2 é definir uma tarefa de narração para o texto.

URL para a opção 2: https://speechgen.io/index.php?r=api/longtext

Passo 1: O texto é enviado para a API e é obtido um ID de voz único (id).
Passo 2:  Solicite o resultado da dublagem enviando o identificador de dublagem (id).

Este método não tem limitações e permite a dublagem de texto até 1.000.000 de caracteres. A dublagem ocorre por ordem de prioridade (primeiro a chegar, primeiro a ser servido) e pode levar de 1 a vários minutos, dependendo do comprimento do texto.

Formato do pedido

$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 obrigatórios:

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

Parâmetros opcionais:

'format' - formato do ficheiro resultante, por defeito = mp3, valores possíveis( 'mp3', 'wav', 'ogg') 'speed' - velocidade, por defeito 1, (intervalo de 0.1 a 2.0) 'pitch'- tom da voz, por defeito 0, (intervalo de -20 a 20) 'emotion' - coloração emocional, por defeito 'good', valores possíveis ( 'good', 'evil', 'neutral'). 'pause_sentence' - O tamanho da pausa entre frases em milissegundos. 'pause_paragraph' - O tamanho da pausa entre parágrafos em milissegundos. 'bitrate'=>48000 - Taxa de bits de 8000 a 192000 Hz.

Não disponível para todas as vozes, veja aqui.

A resposta vem em JSON:

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

Descrição:

"id" - ID único da voz "status" - estado atual da narração. Disponível a partir de 2 valores: 1 - tarefa adicionada com sucesso -1 - erro "error" - texto do erro, em caso de, se status = -1 "parts" - número de narrações "parts_done" - número de partes concluídas "format" - formato do ficheiro de áudio "balans" - o saldo dos limites da conta "cost" - custos da narração. (é aumentado à medida que as partes da voz são dubladas)

Passo 2. Após criar uma tarefa e obter um identificador (id), deve ser enviado um pedido para https://speechgen.io/index.php?r=api/result, para saber o resultado.

Formato do pedido

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

Parâmetros obrigatórios:

'token' - SekretKeyInYourProfile 'email' - yourMail@gmail.com 'id' - ID único da voz obtido no passo 1

A resposta vem em 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" }

Descrição:

"id" - ID único da voz "status" - estado atual da narração. Disponível a partir de 3 valores: 0 - em curso 1 - concluído com sucesso -1 - erro "file" - caminho do ficheiro de áudio, disponível se status = 1 "error" - texto do erro, em caso de, se status = -1 "parts" - número de narrações "parts_done" - número de partes concluídas "duration" - duração do ficheiro de áudio em segundos, disponível se status = 1 "format" - formato do ficheiro de áudio "balans" - o saldo dos limites da conta "cost" - custos da narração. (é aumentado à medida que as partes da voz são dubladas) "cuts" - Matriz de fragmentos, se a etiqueta "cut" for usada no texto

Exemplo de narração de texto curto em 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); }

Usamos cookies para garantir que você tenha a melhor experiência em nosso site. Saiba mais: Política

Aceitar Cookies