Instruction API pour la synthèse vocale

, 16-09-2025

L'API est disponible uniquement après avoir approvisionné votre compte.

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

Il existe 2 options de voix off de texte disponibles via l'API :

Option 1 : voix off rapide de textes courts.
Option 2 : définition d'une tâche de voix off.

Exemples d'intégration

Découvrez comment simplifier la création de contenu vocal en intégrant SpeechGen.io avec le service d'automatisation MAKE. Ce guide couvre l'automatisation des processus de synthèse vocale, rendant la génération de contenu vocal plus simple et plus efficace pour diverses applications.

Option 1 : voix off rapide de textes courts

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

Le texte est envoyé à l'API, vous obtenez des résultats immédiats.

Cette option a une limite maximale de 2000 caractères. Et aussi un maximum de 2 changements de voix. Si les limites sont dépassées, vous obtiendrez une erreur (statut = -1).

Format de la requête

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

Paramètres obligatoires :

'token' - 'CléSecrèteDansVotreProfil' 'email' - 'votreMail@gmail.com' 'voice' - 'Voix' 'text' - 'Texte pour la synthèse vocale'

Paramètres optionnels :

'format' - format du fichier résultant, par défaut = mp3, valeurs possibles ('mp3', 'wav', 'ogg') 'speed' - vitesse de lecture, par défaut 1, (plage de 0.1 à 2.0) 'pitch' - hauteur de la voix, par défaut 0, (plage de -20 à 20) 'emotion' - émotion de la voix, par défaut 'good', valeurs possibles ('good', 'evil', 'neutral'). 'pause_sentence' - La taille de la pause entre les phrases en millisecondes. 'pause_paragraph' - La taille de la pause entre les paragraphes en millisecondes. 'bitrate'=>48000 - Débit binaire de 8000 à 192000 Hz.

L'émotion n'est pas disponible pour toutes les voix, regardez ici.

La réponse arrive 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" }

Description :

"id" - identifiant unique de la voix "status" - statut actuel de la voix off. Disponible à partir de 3 valeurs : 0 - en cours 1 - terminé avec succès -1 - erreur "file" - chemin du fichier audio, disponible si statut= 1 "file_cors" - chemin du fichier audio CORS "error" - texte de l'erreur, en cas de, si statut = -1 "parts" - nombre de voix off "parts_done" - nombre de parties terminées "duration" - durée du fichier audio en secondes, disponible si statut = 1 "format" - format du fichier audio "balans" - solde de la limite "cost" - coûts de la voix off. (augmente à mesure que les parties vocales sont doublées)

Exemple de voix off de texte court 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);

Option 2 : définir une tâche de voix off pour le texte.

URL pour l'option 2 : https://speechgen.io/index.php?r=api/longtext

Étape 1 : Le texte est envoyé à l'API et un identifiant vocal unique (id) est obtenu.
Étape 2 : Demandez le résultat du doublage en envoyant l'identifiant du doublage (id).

Cette méthode n'a pas de limitations et permet le doublage de texte jusqu'à 1 000 000 de caractères. Le doublage s'effectue par ordre de priorité (premier arrivé, premier servi) et peut prendre de 1 à plusieurs minutes, en fonction de la longueur du texte.

Format de la requête

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

Paramètres obligatoires :

'token' - 'CléSecrèteDansVotreProfil' 'email' - 'votreMail@gmail.com' 'voice' - 'Voix' 'text' - 'Texte'

Paramètres optionnels :

'format' - format du fichier résultant, par défaut = mp3, valeurs possibles ('mp3', 'wav', 'ogg') 'speed' - vitesse, par défaut 1, (plage de 0.1 à 2.0) 'pitch' - hauteur de la voix, par défaut 0, (plage de -20 à 20) 'emotion' - coloration émotionnelle, par défaut 'good', valeurs possibles ('good', 'evil', 'neutral'). 'pause_sentence' - La taille de la pause entre les phrases en millisecondes. 'pause_paragraph' - La taille de la pause entre les paragraphes en millisecondes. 'bitrate'=>48000 - Débit binaire de 8000 à 192000 Hz.

Non disponible pour toutes les voix, regardez ici.

La réponse arrive en JSON :

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

Description :

"id" - identifiant unique de la voix "status" - statut actuel de la voix off. Disponible à partir de 2 valeurs : 1 - tâche ajoutée avec succès -1 - erreur "error" - texte de l'erreur, en cas de, si statut = -1 "parts" - nombre de voix off "parts_done" - nombre de parties terminées "format" - format du fichier audio "balans" - solde des limites du compte "cost" - coûts de la voix off. (augmente à mesure que les parties vocales sont doublées)

Étape 2. Après avoir créé une tâche et obtenu un identifiant (id), une requête doit être envoyée à https://speechgen.io/index.php?r=api/result, pour connaître le résultat.

Format de la requête

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

Paramètres obligatoires :

'token' - CléSecrèteDansVotreProfil 'email' - votreMail@gmail.com 'id' - Identifiant vocal unique obtenu à l'étape 1

La réponse arrive 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" }

Description :

"id" - identifiant unique de la voix "status" - statut actuel de la voix off. Disponible à partir de 3 valeurs : 0 - en cours 1 - terminé avec succès -1 - erreur "file" - chemin du fichier audio, disponible si statut = 1 "error" - texte de l'erreur, en cas de, si statut = -1 "parts" - nombre de voix off "parts_done" - nombre de parties terminées "duration" - durée du fichier audio en secondes, disponible si statut = 1 "format" - format du fichier audio "balans" - solde des limites du compte "cost" - coûts de la voix off. (augmente à mesure que les parties vocales sont doublées) "cuts" - Tableau de fragments, si la balise "cut" est utilisée dans le texte

Exemple de voix off de test court 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); }

Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site Web. En savoir plus : Politique de confidentialité

Accepter les cookies