Blog mit Text-to-Speech ausstatten WordPress und Amazon AI in der Praxis, Teil 1

In diesem zweiteiligen Workshop zeigen wir, wie sich ein WordPress-Blog mit Hilfe von „Amazon AI“ unter anderem mit einer Text-to-Speech-Engine ausstatten lässt. Der erste Teil befasst sich dabei im Wesentlichen mit der WordPress-Bereitstellung auf EC2.

Dieses Tutorial zeigt, wie man das Amazon Polly für WordPress-Plug-in in ein WordPress-Blog auf Basis einer EC2-Instanz installiert und konfiguriert. Das Plug-in erlaubt das Erstellen einer Audio-Version aller Blog-Einträge. Es übersetzt diese in andere Sprachen und erstellt auf Wunsch auch Podcasts.

Zur Erinnerung: Amazon Polly ist ein Dienst, der Text in lebensechte Sprache verwandelt. Anwender können auf Basis dutzender Stimmen in einer Vielzahl von Sprachen die gewünschte Stimme auswählen und ansprechende Sprachanwendungen erstellen, die in vielen verschiedenen Ländern funktionieren.

Das Amazon AI-Plug-in für WordPress ist eine inzwischen im öffentlichen Plug-in-Verzeichnis vorhandene Beispielanwendung, die zeigt, wie WordPress-Ersteller geschriebenen Inhalten mit Amazon Polly auf einfache Weise Text-to-Speech-Funktionen hinzufügen können. Nutzer können z. B. einen Audio-Feed für textbasierten Inhalt erstellen und in einen eingebetteten Player einfügen, um die Barrierefreiheit ihrer WordPress-Site zu erhöhen.

Mit dem Beispielcode lassen sich zudem Podcasts direkt von der jeweiligen Site aus veröffentlichen und für Hörer verfügbar machen. Außerdem erlaubt das Plug-in die Übersetzung eines Posts von einer Sprache in eine andere mit Amazon Translate. Dieser neuronale maschinelle Übersetzungsdienst liefert eine schnelle, qualitativ hochwertige und kostengünstige Sprachübersetzung.

Über Amazon Translate lassen sich Inhalte wie Websites und Anwendungen für internationale Benutzer lokalisieren und große Textmengen effizient übersetzen. Da eine Web-Suche heute immer häufiger auch über Sprache erfolgt, ist es wichtig, dass mehr Inhalte einer Website in Audioformaten vorliegen.

Bereitstellen von WordPress auf AWS

Anwender können das Amazon Polly für WordPress-Plug-in zu einer WordPress-Installation hinzufügen, die auf einer EC2-Instanz, auf AWS Lightsail oder einem anderen Host außerhalb von AWS eingerichtet ist. Allerdings sind Installation, Betrieb, Verwaltung und die Integrationsmöglichkeiten von WordPress unter AWS bei Weitem einfacher und vielfältiger, als On-Premises oder in einer anderen Cloud.

Doch auch innerhalb von AWS gibt es zahlreiche Möglichkeiten, eine WordPress-Installation zu erstellen, wobei EC2 in Handarbeit und Lightsail nur zwei Beispiele sind. Auch in den Mustervorlagen für AWS Cloud Formation finden sich zwei Beispiel-Templates für WordPress auf einer Single-Instanz und Last-ausgeglichen mit Multi-AZ-RDS-Datenbank.

Ferner lässt sich WordPress relativ einfach auf Amazon Elastic Beanstalk bereitstellen. Wir verwenden für diesen Workshop eine EC2-Instanz mit Amazon Linux und stellen WordPress größtenteils direkt im Rahmen des Bootstrapping mit Hilfe eines einfachen User-Data-Scripts bereit, das z. B. so aussehen könnte:

#!/bin/bash
# Gilt für Fuer Amazon Linux 1 mit MySQL
yum update –y
yum install -y httpd24 php70 mysql56-server php70-mysqlnd
cd /var/www/html
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
cp -r wordpress/* /var/www/html/
rm -rf wordpress
rm -rf latest.tar.gz
chmod -R 755 wp-content
chown -R apache:apache wp-content
service httpd start
sudo service mysqld start
chkconfig httpd on

Vor dem Bereitstellen der Instanz muss allerdings eine IAM-Rolle mit passenden Berechtigungen für Polly vorbereitet werden, welche beim Bereitstellen der Instanz für diese verwendet werden soll.

Erstellen der AWS-Berechtigungen für WordPress

Läuft die EC2-Instanz mit WordPress und einer öffentlichen IP-Adresse – für den produktiven Einsatz ist es natürlich immer besser, in AWS eine ElasticIP zu verwenden – muss man in IAM eine neue IAM-Richtlinie mit folgenden Inhalt erstellen:

{
   „Version“: „2012-10-17“,
   „Statement“: [
      {
         „Sid“: „Permissions1“,
         „Effect“: „Allow“,
         „Action“: [
            „polly:SynthesizeSpeech“,
            „s3:HeadBucket“,
            „polly:DescribeVoices“
         ],
      „Resource“: „*“
      },
      {
         „Sid“: „Permissions2“,
         „Effect“: „Allow“,
         „Action“: [
            „s3:ListBucket“,
            „s3:GetBucketAcl“,
            „s3:GetBucketPolicy“,
            „s3:PutObject“,
            „s3:DeleteObject“,
            „s3:CreateBucket“,
            „s3:PutObjectAcl“
         ],
         „Resource“: „arn:aws:s3:::<audio_for_wordpress*>“
      }
   ]
}

Diese ist unter den Namen „PollyForWordPressPolicy“ abzuspeichern. Die folgende Bildergalerie zeigt, wie wir mit der IAM-Rolle weiter verfahren.

Wurde die neue EC2-Instanz mit WordPress und öffentlicher IP-Adresse erfolgreich bereitgestellt und gestartet muss WordPress initial konfiguriert werden. Dieser Schritt unterscheidet sich nicht wesentlich von der AWS-Konfiguration on-premises, allerdings sind in Amazon Linux auf EC2 einige Schritte möglicherweise etwas anders, als auf Debian-, Ubuntu-, SUSE- oder RHEL-Basis.

In unserem Beispiel betreiben wir die erforderliche MySQL-Datenbank wie am User-Data-Script zu erkennen ist direkt auf der Instanz selbst. Als Betriebssystem kommt Amazon Linux (nicht Amazon Linux 2) zum Einsatz. Das ist wichtig, denn Amazon Linux verwendet z. B. „systemd“ statt „upstart“.

Im Netz kursieren aber auch zahlreiche Tutorials für eine LAMP-Installation auf Basis von Amazon Linux 2 und MariaDB. Die Default-Credentials für MySQL lauteten übrigens root/<ohne Passwort>. Allerdings existiert die Datenbank für WordPress noch nicht.

Im Rahmen des Setup-Prozesses von WordPress erfolgt die Erstkonfiguration. ( Bild: Drilling / WordPress)

Exkurs PhpMyAdmin

Wer sich das Anpassen der Credentials und der Datenbank über ein Webinterface vereinfachen möchte kann zunächst PhpMyAdmin installieren, wozu man sich per SSH mit der Console der Instanz verbinden muss. Die Installation von PHP erfolgt dann mit:

sudo yum install php70-mbstring.x86_64 php70-zip.x86_64 –y

Nach einem Neustart von Apache mittels …

sudo service httpd restart

… navigiert man mit …

cd /var/www/html

… ins www-Root und installiert phymyadmin am schnellsten mit:

sudo wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz

Dann legt man einen PhpMyAdmin-Ordner an und extrahiert das Paket in diesen.

sudo mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin –strip-components 1

Anschließend ist PhpMyAdmin unter der URL http://<IP-EC2-Instanz/phpmyadmin verfügbar. Wer PhpMyAdmin nicht benötigt, kann die erforderliche Datenbank für WordPress aber auch wie folgt mit der MySQL-Console anlegen:

mysql -u root -p
mysql> CREATE DATABASE blog;

Infolge dessen sollte im WordPress-Setup auch die Verbindung zur Datenbank funktionieren, wie im vorangestellten Bild zu sehen. Die abgebildete wp-config.php kopiert man am besten in die Zwischenablage und fügt sie von dort direkt „in“ die EC2-Instanz im entsprechenden Verzeichnis ein. Das ist einfacher, als die mitgelieferte wp-config.php.sample anzupassen.

Hier weiterelesen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.