Sintesi vocale utilizzando Amazon Polly in PHP
Amazon Polly è un servizio cloud ben fatto che ci consente di convertire il testo in un discorso realistico. Inoltre, Amazon Polly offre miglioramenti rivoluzionari nella qualità del parlato attraverso un nuovo approccio di apprendimento automatico. Offrono ai clienti le voci di sintesi vocale più naturali e umane possibili.
I vantaggi dell’utilizzo di Amazon Polly includono:
- Alta qualità
- Bassa latenza
- Supporto per un ampio portafoglio di lingue e voci
- Conveniente
- Soluzione basata su cloud
Esistono diverse applicazioni in cui Amazon Polly può essere utile. Alcuni di questi sono: applicazioni come i lettori di notizie. giochi, piattaforme di eLearning, applicazioni per ipovedenti, ecc. Puoi leggere di più su questo servizio nella loro documentazione.
In questo articolo, ti mostro come convertire il testo in parlato con Amazon Polly e PHP.
Console Polly di Amazon
Se non vuoi creare un’applicazione PHP, puoi utilizzare direttamente la console Polly. Puoi accedervi effettuando il login al tuo account AWS. Dopo l’accesso, vai alla console Amazon Polly. In questa pagina, otterrai le opzioni per l’aggiunta di parlato in formato testo o SSML. Puoi scegliere la regione, l’id vocale e ascoltare un discorso o anche scaricarlo in formato MP3.
L’utilizzo della console è un’opzione se sei l’amministratore e non desideri condividere le credenziali dell’account con nessuno. Ma cosa succede se vuoi creare un’applicazione che svolga l’esatto compito di convertire il testo in voce e ti permetta di scaricare MP3 di parlato convertito.
Sintesi vocale con Amazon Polly e PHP
Per creare l’applicazione PHP per Amazon Polly devi prima ottenere le tue credenziali di sicurezza AWS. Puoi ottenerlo accedendo all’account AWS e quindi facendo clic su "Le mie credenziali di sicurezza".
Una volta ottenute le credenziali, installa l’ SDK AWS per PHP utilizzando Composer. Eseguire il comando seguente per l’installazione della libreria.
composer require aws/aws-sdk-php
Dopo l’installazione, creare un modulo che consenta all’utente di caricare un file e inviarlo al server per l’elaborazione.
<form method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<button type="submit" name="submit">Submit</button>
</form>
Come accennato in precedenza, l’utente può trasmettere la voce sia in testo normale che in formato SSML. Preferisco usare SSML che ci consente di controllare il discorso generato dal testo fornito. Utilizzando SSML, possiamo includere una pausa all’interno del testo, modificare la velocità del parlato, enfatizzare parole o frasi specifiche, ecc. Leggi di più su questo su Utilizzo di SSML. Fondamentalmente, è necessario utilizzare i tag forniti da SSML nel testo.
Per questo tutorial, sto costruendo un file di testo normale con tag SSML. Il mio file di testo è il seguente.
fittizio.txt
<speak>
<prosody rate='medium'>Hi, I am Sajid. I do blogging at Artisans Web.</prosody>
</speak>
Successivamente, al momento dell’invio del modulo, il file di testo caricato verrà inviato al servizio cloud AWS e in cambio i file MP3 verranno scaricati automaticamente. Scrivi il codice per esso come segue.
<?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();
}
}
?>
Sostituisci i segnaposto con i valori effettivi. Nel codice sopra, ho passato il valore per ‘VoiceId’ è ‘Matthew’. ‘Matthew’ è un ID vocale che aggiunge un accento vocale nella lingua inglese (USA) (en-US). Naturalmente, l’utente può scegliere qualsiasi ID vocale preferito. Otterrai l’elenco delle voci disponibili nella loro pagina Voci in Amazon Polly.
Vai avanti e provalo. Quando carichi il tuo file di testo, otterrai il file audio MP3 del tuo testo.
Si tratta di convertire il testo in parlato utilizzando Amazon Polly in PHP. Mi piacerebbe sentire i tuoi pensieri o suggerimenti nella sezione commenti qui sotto.
articoli Correlati
- Carica file su Amazon S3 utilizzando AWS PHP SDK
- Come caricare file su S3 utilizzando Laravel Filesystem