Diesmal ist es eine Aufzeichnung darüber, was ich vor einem halben Jahr bei meinem eigenen AWS-Hackathon getan habe (https://qiita.com/MuAuan/items/c189fc894b2d9cdd1a6a). Das letzte Mal hörte ich mir an, was ich nicht verstand, weil ein Experte in der Nähe war, aber dieses Mal erinnerte ich mich an alles, von der Registrierung für freie Slots bis zur Konvertierung von Text in Sprache mit Polly, so dass es sich in meinem Gedächtnis festsetzte. Das Linux von Ec2 läuft nutzlos, aber es befindet sich natürlich immer noch in der freien Ebene. Übrigens verbraucht am meisten 30 GB Amazon Elastic Block Storage, was 12,5% entspricht.
・ Legen Sie einen Entwicklungsstil fest ・ Letzter Code · Leichte Verbesserung ・ Hören Sie den Ton
Viele der Registrierungen sind nett, daher denke ich, dass sie durch Nachahmung erstellt werden können. 【Referenz】 Anfänger versuchen AWS Zusammenfassung der Grundeinstellungen, die nach dem Erwerb eines AWS-Kontos schnell vorgenommen werden sollten So konnte ich in Ohio sicher einen EC2-Server einrichten. Als Entwicklungsstil habe ich zuerst Programme mit vi erstellt, aber als ich mich daran gewöhnt habe, habe ich ein Programm mit Jupyter Notebook auf meinem PC erstellt und es mit Teraterm gesendet. Das ist definitiv einfacher. Darüber hinaus stehen Abrechnung und Sicherheit an erster Stelle, sind aber am wichtigsten. Anfangs habe ich den folgenden Befehl verwendet. Da ich mich jedoch ein wenig an jede Seite und jeden Dienst von AWS gewöhne, kann ich über die CLI Dateivorgänge in S3 ausführen. Ich bin jedoch zu dem Schluss gekommen, dass es schneller ist, mit Dateien direkt in S3 zu spielen. Liste der Befehle zum Betreiben von S3 mit AWS CLI
Ich habe auf die Referenz verwiesen, weil ich einen Schlüssel zur Verwendung von S3 benötige. Der Bildschirm ist etwas anders, aber Sie können sehen, was Sie tun. 【Referenz】 Zugriffsschlüssel und geheimen Schlüssel für den Betrieb von s3 of aws (IAM) abrufen
Nach der Installation verschiedener Python-Bibliotheken auf der Ubuntu-Instanz von EC2 wird beim Übertragen des Programms mit Teraterm [Benutzername ist Ubuntu](https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2- Es war Passwort-Login /). Außerdem kopiert der Host die öffentliche IPv4-IP-Adresse und gibt sie ein. Teraterm ist übrigens den ganzen Tag ohne Unterbrechung verbunden. Wenn der Speicherort der Instanz jedoch Ohio ist, sich jedoch in Tokio geändert hat, wird die Instanz als 0 angezeigt, und ich habe es zunächst eilig. Verwenden Sie den Befehl SSHSCR, wenn Sie mit Teraterm Dinge von Ihrem eigenen PC auf Ihren eigenen PC übertragen. Der folgende vorherige Code hat also funktioniert. Dieser Code konvertiert mit boto3 den in Text angezeigten Text in Joannas Stimme und speichert ihn in language.mp3.
import boto3
polly_client = boto3.Session(
aws_access_key_id=,
aws_secret_access_key=,
region_name='us-west-2').client('polly')
response = polly_client.synthesize_speech(VoiceId='Joanna',
OutputFormat='mp3',
Text = 'This is a sample text to be synthesized.')
file = open('speech.mp3', 'wb')
file.write(response['AudioStream'].read())
file.close()
Als nächstes lautet der Code, um dies in den zuvor in S3 erstellten Bucket zu übertragen, wie folgt.
# -*- coding: utf-8 -*-
import boto3
s3 = boto3.resource('s3') #S3-Objekt abrufen
bucket = s3.Bucket('s3 Eimer-name')
bucket.upload_file('Geben Sie die ec2-MP3-Datei an', 'dir spezifikation des eimers von s3')
Aber
s3_client = boto3.client('s3')
# Upload the file to S3
s3_client.upload_file('Geben Sie die ec2-MP3-Datei an', 's3 Eimer-name', 'mp3 Dateiname in s3')
Aber es funktioniert.
In diesem Fall sind die Dateien in S3 jedoch in beiden Fällen privat (solche Sicherheitseinstellungen sind die Standardeinstellungen). In diesem Fall können Sie nicht von außen auf (Wiedergabe) verweisen, es sei denn, Sie veröffentlichen jede Datei auf der S3-Site. Wenn Sie dies als Referenz verwenden, können Sie anscheinend ACL = Public festlegen, wenn es gesendet wird. Diesmal konnte ich es jedoch nicht mit dieser Methode tun, aber als Ergebnis verschiedener Versuche (** Ich glaubte, dass ich es schaffen konnte ) konnte ich es mit dem folgenden Code realisieren. 【Referenz】 [Wie kann ich mit boto3 Dateien in S3 hochladen und veröffentlichen? ](Https://www.it-swarm.dev/ja/python/boto3%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6% E3% 83% 95% E3% 82% A1% E3% 82% A4% E3% 83% AB% E3% 82% 92s3% E3% 81% AB% E3% 82% A2% E3% 83% 83% E3% 83% 97% E3% 83% AD% E3% 83% BC% E3% 83% 89% E3% 81% 97% E3% 81% A6% E5% 85% AC% E9% 96% 8B% E3% 81% 99% E3% 82% 8B% E6% 96% B9% E6% B3% 95% E3% 81% AF% EF% BC% 9F / 830216134 /) Es gibt zwei Verbesserungen im Code unten im Vergleich zu oben. ① session = Session (profile_name = "***") macht das direkte Schreiben des Schlüssels überflüssig (2) Da es veröffentlicht (referenziert) wird, während es von Bucket.upload_file übertragen wird ('ec2-Dateiname', 's3-Dateiname', ExtraArgs = {'ACL': 'public-read'}), ist es kontinuierlich. Audio kann kontinuierlich veröffentlicht werden
import boto3
from boto3 import Session
session = Session(profile_name="*****")
polly = session.client("polly")
response = polly.synthesize_speech(Text="Hallo, Tokio und Yokohama sind auch etwas bewölkt. Die Stimme ist Mizuki", OutputFormat="mp3", VoiceId="Mizuki")
file = open('Gespeicherter Dateiname in ec2', 'wb')
file.write(response['AudioStream'].read())
file.close()
s3 = boto3.resource('s3') #S3-Objekt abrufen
bucket = s3.Bucket('Bucket Dir Name für s3')
bucket.upload_file('ec2 Dateiname', 'Dateiname in s3', ExtraArgs={'ACL':'public-read'})
Jetzt haben Sie einen einseitigen Mechanismus für Konversationen und andere Apps.
Sie können es im folgenden HTML anhören.
https://Eimername.s3.amazonaws.com/index.html
$ aws s3 cp --acl public-read index.html s3://Eimername/index.html
<html>
<body>
<figure>
<figcaption>Listen to the Answer:</figcaption>
<audio
autoplay
controls
src="speech0.mp3">
Your browser does not support the
<code>audio</code> element.
</audio>
</figure>
</body>
</html>
・ Ich habe versucht, die AWS Hackason-App mit der kostenlosen Stufe AWS auszuführen. ・ Japanischer Text mit Polly-Voice-Konvertierung war für die kontinuierliche Veröffentlichung möglich
・ S3-Ich möchte Lambda herunterladen oder hochladen (Amazon Transcribe, Amazon Translate)
Recommended Posts