✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Text-to-Speech mit Amazon Polly in PHP

39

Amazon Polly ist ein gut gemachter Cloud-Service, der es uns ermöglicht, Text in lebensechte Sprache umzuwandeln. Darüber hinaus bietet Amazon Polly durch einen neuen Ansatz für maschinelles Lernen bahnbrechende Verbesserungen der Sprachqualität. Sie bieten Kunden möglichst natürliche und menschenähnliche Text-to-Speech-Stimmen.

Zu den Vorteilen der Verwendung von Amazon Polly gehören:

  • Hohe Qualität
  • Geringe Wartezeit
  • Unterstützung für ein großes Portfolio an Sprachen und Stimmen
  • Kosteneffizient
  • Cloud-basierte Lösung

Es gibt mehrere Anwendungen, bei denen Amazon Polly nützlich sein kann. Einige von ihnen sind – Anwendungen wie Newsreader. Spiele, eLearning-Plattformen, Anwendungen für Sehbehinderte usw. Weitere Informationen zu diesem Dienst finden Sie in der Dokumentation.

In diesem Artikel zeige ich Ihnen, wie Sie mit Amazon Polly und PHP Text in Sprache umwandeln.

Amazon Polly-Konsole

Wenn Sie keine PHP-Anwendung erstellen möchten, können Sie die Polly-Konsole direkt verwenden. Sie können darauf zugreifen, indem Sie sich bei Ihrem AWS-Konto anmelden. Gehen Sie nach der Anmeldung zur Amazon Polly-Konsole. Auf dieser Seite erhalten Sie die Optionen zum Hinzufügen von Sprache im Klartext- oder SSML-Format. Sie können die Region und die Sprach-ID auswählen und eine Rede anhören oder sogar im MP3-Format herunterladen.

Die Verwendung der Konsole ist eine Option, wenn Sie der Administrator sind und die Kontoanmeldeinformationen mit niemandem teilen möchten. Aber was ist, wenn Sie eine Anwendung erstellen möchten, die genau die Aufgabe übernimmt, Text in Sprache umzuwandeln und es Ihnen ermöglicht, MP3 der konvertierten Sprache herunterzuladen.

Text-to-Speech mit Amazon Polly und PHP

Um die PHP-Anwendung für Amazon Polly zu erstellen, müssen Sie zunächst Ihre AWS-Sicherheitsdaten abrufen. Sie erhalten es, indem Sie sich beim AWS-Konto anmelden und dann auf „Meine Sicherheitsanmeldeinformationen” klicken.

Text-to-Speech mit Amazon Polly in PHP

Nachdem Sie Ihre Anmeldeinformationen erhalten haben, installieren Sie das AWS SDK for PHP mit dem Composer. Führen Sie den folgenden Befehl aus, um die Bibliothek zu installieren.

composer require aws/aws-sdk-php

Erstellen Sie nach der Installation ein Formular, mit dem der Benutzer eine Datei hochladen und zur Verarbeitung an den Server senden kann.

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

Wie bereits erwähnt, kann der Benutzer Sprache entweder im Klartext- oder SSML-Format weitergeben. Ich ziehe es vor, SSML zu verwenden, das es uns ermöglicht, die generierte Sprache aus dem bereitgestellten Text zu steuern. Mit SSML können wir eine Pause in den Text einfügen, die Sprechgeschwindigkeit ändern, bestimmte Wörter oder Sätze hervorheben usw. Lesen Sie mehr darüber unter Verwenden von SSML. Grundsätzlich müssen Sie in Ihrem Text von SSML bereitgestellte Tags verwenden.

Für dieses Tutorial erstelle ich eine Nur-Text-Datei mit SSML-Tags. Meine Textdatei ist wie folgt.

dummy.txt

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

Als nächstes wird beim Absenden des Formulars die hochgeladene Textdatei an den AWS Cloud-Service gesendet und im Gegenzug werden MP3-Dateien automatisch heruntergeladen. Schreiben Sie den Code dafür wie folgt.

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

Ersetzen Sie die Platzhalter durch die tatsächlichen Werte. Im obigen Code habe ich den Wert für "VoiceId" "Matthew" übergeben. ‘Matthew’ ist eine Sprach-ID, die einen Sprachakzent in englischer (US) (en-US) Sprache hinzufügt. Natürlich kann der Benutzer jede bevorzugte Sprach-ID wählen. Sie erhalten die Liste der verfügbaren Stimmen auf der Seite " Stimmen in Amazon Polly ".

Fahren Sie fort und testen Sie es. Beim Hochladen Ihrer Textdatei erhalten Sie die MP3-Audiodatei Ihres Textes.

Es dreht sich alles um die Konvertierung von Text in Sprache mit Amazon Polly in PHP. Ich würde gerne Ihre Gedanken oder Vorschläge im Kommentarbereich unten hören.

Zum Thema passende Artikel

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen