Text-To-Speech utilisant Amazon Polly en PHP
Amazon Polly est un service cloud bien fait qui nous permet de convertir du texte en discours réaliste. De plus, Amazon Polly offre des améliorations révolutionnaires de la qualité vocale grâce à une nouvelle approche d’apprentissage automatique. Ils offrent aux clients les voix de synthèse vocale les plus naturelles et les plus humaines possibles.
Les avantages de l’utilisation d’Amazon Polly incluent :
- Haute qualité
- Faible latence
- Prise en charge d’un large portefeuille de langues et de voix
- Rentable
- Solution basée sur le cloud
Il existe plusieurs applications où Amazon Polly peut être utile. Certains d’entre eux sont des applications telles que les lecteurs de nouvelles. jeux, plateformes eLearning, applications pour personnes malvoyantes, etc. Vous pouvez en savoir plus sur ce service sur leur documentation.
Dans cet article, je vous montre comment convertir du texte en parole avec Amazon Polly et PHP.
Console Amazon Polly
Si vous ne souhaitez pas créer d’application PHP, vous pouvez utiliser directement la console Polly. Vous pouvez y accéder en vous connectant à votre compte AWS. Après la connexion, rendez-vous sur la console Amazon Polly. Sur cette page, vous obtiendrez les options pour ajouter de la parole en texte brut ou au format SSML. Vous pouvez choisir la région, l’identifiant vocal et écouter un discours ou même le télécharger au format MP3.
L’utilisation de la console est une option si vous êtes l’administrateur et que vous ne souhaitez pas partager les informations d’identification du compte avec qui que ce soit. Mais que se passe-t-il si vous souhaitez créer une application qui effectue la tâche exacte de convertir du texte en parole et vous permet de télécharger le MP3 de la parole convertie.
Text-To-Speech avec Amazon Polly et PHP
Pour créer l’application PHP pour Amazon Polly, vous devez d’abord obtenir vos informations d’identification de sécurité AWS. Vous pouvez l’obtenir en vous connectant au compte AWS, puis en cliquant sur «Mes informations d’identification de sécurité ».
Une fois que vous avez obtenu vos informations d’identification, installez le kit AWS SDK pour PHP à l’aide de Composer. Exécutez la commande ci-dessous pour l’installation de la bibliothèque.
composer require aws/aws-sdk-php
Lors de l’installation, créez un formulaire qui permet à l’utilisateur de télécharger un fichier et de l’envoyer au serveur pour le traiter.
<form method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit" name="submit">Submit</button>
</form>
Comme mentionné précédemment, l’utilisateur peut transmettre la parole soit en texte brut, soit au format SSML. Je préfère utiliser SSML qui nous permet de contrôler la parole générée à partir du texte fourni. En utilisant SSML, nous pouvons inclure une pause dans le texte, modifier le débit de parole, mettre l’accent sur des mots ou des phrases spécifiques, etc. En savoir plus à ce sujet sur Utilisation de SSML. Fondamentalement, vous devez utiliser les balises fournies par SSML dans votre texte.
Pour ce tutoriel, je crée un fichier texte brut avec des balises SSML. Mon fichier texte est le suivant.
factice.txt
<speak>
<prosody rate='medium'>Hi, I am Sajid. I do blogging at Artisans Web.</prosody>
</speak>
Ensuite, lors de la soumission du formulaire, le fichier texte téléchargé sera envoyé au service cloud AWS et en retour, les fichiers MP3 seront téléchargés automatiquement. Écrivez le code pour cela comme suit.
<?php
require_once "vendor/autoload.php";
use AwsPollyPollyClient;
if (isset($_POST['submit'])) {
try {
$config = [
'version' => 'latest',
'region' => 'YOUR_AWS_REGION',
'credentials' => [
'key' => 'ACCESS_KEY_ID',
'secret' => 'SECRET_ACCESS_KEY',
]
];
$client = new PollyClient($config);
$args = [
'OutputFormat' => 'mp3',
'Text' => file_get_contents($_FILES['file']['tmp_name']),
'TextType' => 'ssml',
'VoiceId' => 'Matthew', //pass preferred voice id here
];
$result = $client->synthesizeSpeech($args);
$resultData = $result->get('AudioStream')->getContents();
header('Content-length: '. strlen($resultData));
header('Content-Disposition: attachment; filename="text-to-speech.mp3"');
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
echo $resultData;
} catch(Exception $e) {
echo $e->getMessage();
}
}
?>
Remplacez les espaces réservés par les valeurs réelles. Dans le code ci-dessus, j’ai passé la valeur pour ‘VoiceId’ est ‘Matthew’. ‘Matthew’ est un identifiant vocal qui ajoute un accent de discours en anglais (US) (en-US). Bien sûr, l’utilisateur peut choisir n’importe quel identifiant vocal préféré. Vous obtiendrez la liste des voix disponibles sur leur page Voices in Amazon Polly.
Allez-y et testez-le. En téléchargeant votre fichier texte, vous obtiendrez le fichier audio MP3 de votre texte.
Il s’agit de convertir du texte en parole à l’aide d’Amazon Polly en PHP. J’aimerais entendre vos pensées ou vos suggestions dans la section des commentaires ci-dessous.
Articles Liés
- Charger des fichiers sur Amazon S3 à l’aide d’AWS PHP SDK
- Comment télécharger un fichier sur S3 à l’aide du système de fichiers Laravel