✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Text-till-tal med Amazon Polly i PHP

21

Amazon Polly är en snyggt gjort molntjänst som låter oss konvertera text till verklighetstroget tal. Dessutom levererar Amazon Polly banbrytande förbättringar av talkvaliteten genom en ny maskininlärningsmetod. De erbjuder kunderna de mest naturliga och mänskliga text-till-tal-rösterna.

Fördelarna med att använda Amazon Polly inkluderar:

  • Hög kvalitet
  • Låg latens
  • Stöd för en stor portfölj av språk och röster
  • Kostnadseffektiv
  • Molnbaserad lösning

Det finns flera applikationer där Amazon Polly kan vara användbart. Några av dem är – applikationer som nyhetsläsare. spel, eLearning-plattformar, applikationer för synskadade etc. Du kan läsa mer om den här tjänsten i deras dokumentation.

I den här artikeln visar jag dig hur du konverterar text till tal med Amazon Polly och PHP.

Amazon Polly Console

Om du inte vill bygga en PHP-applikation kan du använda Polly-konsolen direkt. Du kan komma åt den genom att logga in på ditt AWS-konto. Efter inloggning, gå över till Amazon Polly-konsolen. På denna sida får du alternativ för att lägga till tal i vanlig text eller SSML-format. Du kan välja region, röst-ID och lyssna på ett tal eller till och med ladda ner det i MP3-format.

Att använda konsolen är ett alternativ om du är administratör och inte vill dela kontouppgifter med någon. Men tänk om du vill bygga ett program som gör den exakta uppgiften att konvertera text till tal och låta dig ladda ner MP3 med konverterat tal.

Text-till-tal med Amazon Polly och PHP

För att bygga PHP-applikationen för Amazon Polly måste du först få dina AWS-säkerhetsuppgifter. Du kan få det genom att logga in på AWS-kontot och klicka sedan på ‘Mina säkerhetsuppgifter’.

Text-till-tal med Amazon Polly i PHP

När du har fått dina referenser installerar du AWS SDK för PHP med Composer. Kör kommandot nedan för installation av biblioteket.

composer require aws/aws-sdk-php

Vid installationen skapar du ett formulär som låter användaren ladda upp en fil och skicka den till servern för bearbetning.

<form method="post" enctype="multipart/form-data">
    <input type="file" name="file" />
    <button type="submit" name="submit">Submit</button>
</form>

Som tidigare nämnts kan användaren skicka tal antingen i ren text eller SSML-format. Jag föredrar att använda SSML som gör det möjligt för oss att kontrollera genererat tal från den tillhandahållna texten. Med hjälp av SSML kan vi inkludera en paus i texten, ändra talhastighet, betona specifika ord eller fraser etc. Läs mer om detta på Använda SSML. I grund och botten måste du använda taggar från SSML i din text.

För den här handledningen bygger jag en vanlig textfil med SSML-taggar. Min textfil är som följer.

dummy.txt

<speak>
    <prosody rate='medium'>Hi, I am Sajid. I do blogging at Artisans Web.</prosody>
</speak>

Därefter skickas uppladdad textfil till AWS molntjänst och sedan återlämnas MP3-filer automatiskt. Skriv koden för det enligt följande.

<?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();
    }
}
?>

Ersätt platshållarna med de faktiska värdena. I ovanstående kod har jag skickat värdet för ‘VoiceId’ är ‘Matthew’. ‘Matthew’ är ett röst-ID som lägger till en talaccent på engelska (US) (en-US). Naturligtvis kan användaren välja vilket röst-ID som helst. Du kommer att få en lista över tillgängliga röster på deras röster i Amazon Polly- sidan.

Fortsätt och testa det. När du laddar upp din textfil får du MP3-ljudfilen till din text.

Det handlar om att konvertera text till tal med Amazon Polly i PHP. Jag skulle vilja höra dina tankar eller förslag i kommentarsektionen nedan.

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer