Cette fois, c'est un record de faire ce que j'ai fait lors de mon propre hackathon AWS il y a six mois. La dernière fois, j'écoutais ce que je ne comprenais pas parce qu'il y avait un expert à proximité, mais cette fois je me suis souvenu de tout, de l'inscription aux créneaux horaires gratuits à la conversion de texte en voix avec Polly, donc cela s'est installé dans ma mémoire. Le Linux d'Ec2 fonctionne inutilement, mais bien sûr il est toujours dans le niveau gratuit. À propos, celui qui consomme le plus est 30 Go d'Amazon Elastic Block Storage, soit 12,5%.
・ Établir un style de développement ・ Dernier code · Légère amélioration ・ Écoutez le son
La plupart des enregistrements sont gentils, donc je pense que cela peut être créé en les imitant. 【référence】 Les débutants essaient AWS Résumé des paramètres initiaux à effectuer rapidement après l'acquisition d'un compte AWS Ainsi, j'ai pu installer un serveur EC2 dans l'Ohio en toute sécurité. En tant que style de développement, j'avais l'habitude de créer des programmes avec vi au début, mais comme je m'y suis habitué, j'ai créé un programme avec Jupyter Notebook sur mon PC et l'ai envoyé avec Teraterm. C'est certainement plus facile. De plus, la facturation et la sécurité sont au-dessus, mais les plus importants. Au départ, j'ai utilisé la commande suivante. Cependant, au fur et à mesure que je m'habitue un peu à chaque page et service d'AWS, je peux effectuer des opérations sur les fichiers S3 à partir de la CLI, mais j'en suis venu à penser qu'il est plus rapide de jouer avec des fichiers directement sur S3. Liste des commandes pour l'exploitation de S3 avec l'AWS CLI
J'ai fait référence à la référence car j'ai besoin d'une clé pour utiliser S3. L'écran est un peu différent, mais vous pouvez voir ce que vous faites. 【référence】 Obtenez la clé d'accès et la clé secrète pour faire fonctionner s3 de aws (IAM)
Après avoir installé diverses bibliothèques Python sur l'instance ubuntu d'EC2, lors du transfert du programme avec Teraterm, [nom d'utilisateur est ubuntu](https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2- C'était login-mot de passe /). De plus, l'hôte copiera et entrera l'adresse IP publique IPv4. À propos, Teraterm est connecté toute la journée sans déconnexion. Cependant, si l'emplacement de l'instance est Ohio mais qu'il est devenu Tokyo, l'instance est affichée comme 0 et je suis pressé au début. Lorsque vous transférez des choses de votre propre PC vers votre propre PC avec Teraterm, utilisez la commande SSHSCR. Ainsi, le code précédent suivant a fonctionné. Ce code utilise boto3 pour convertir le texte affiché dans Text dans la voix de Joanna et l'enregistrer dans speech.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()
Ensuite, le code pour transférer cela dans le compartiment créé à l'avance dans S3 est le suivant.
# -*- coding: utf-8 -*-
import boto3
s3 = boto3.resource('s3') #Obtenir l'objet S3
bucket = s3.Bucket('seau s3-name')
bucket.upload_file('Spécifiez le fichier mp3 ec2', 'spécification dir du compartiment de s3')
Mais
s3_client = boto3.client('s3')
# Upload the file to S3
s3_client.upload_file('Spécifiez le fichier mp3 ec2', 'seau s3-name', 'nom de fichier mp3 en s3')
Mais ça marche.
Cependant, dans ce cas, les fichiers de S3 sont privés dans les deux cas (ces paramètres de sécurité sont la valeur par défaut). Dans ce cas, vous ne pouvez pas faire référence à (lire) de l'extérieur sauf si vous publiez chaque fichier sur le site S3. Si vous le faites comme référence, il semble que vous puissiez définir ACL = Public lors de son envoi. Cependant, cette fois je n'ai pas pu le faire avec cette méthode, mais à la suite de divers essais (** je croyais pouvoir le faire ), j'ai pu le réaliser avec le code suivant. 【référence】 [Comment télécharger et publier des fichiers sur S3 en utilisant boto3? ](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 /) Il y a deux améliorations dans le code ci-dessous par rapport à ce qui précède. ① session = Session (profile_name = "***") élimine le besoin d'écrire la clé directement (2) Puisqu'il est publié (référencé) tel qu'il est transféré par bucket.upload_file ('nom de fichier ec2', 'nom de fichier s3', ExtraArgs = {'ACL': 'public-read'}), il est continu. L'audio peut être publié en continu
import boto3
from boto3 import Session
session = Session(profile_name="*****")
polly = session.client("polly")
response = polly.synthesize_speech(Text="Bonjour, Tokyo et Yokohama sont aussi un peu nuageux. La voix est Mizuki", OutputFormat="mp3", VoiceId="Mizuki")
file = open('Nom de fichier enregistré dans ec2', 'wb')
file.write(response['AudioStream'].read())
file.close()
s3 = boto3.resource('s3') #Obtenir l'objet S3
bucket = s3.Bucket('Nom du répertoire de compartiment pour s3')
bucket.upload_file('nom de fichier ec2', 'Nom de fichier en s3', ExtraArgs={'ACL':'public-read'})
Vous disposez désormais d'un mécanisme unilatéral pour les conversations et autres applications.
Vous pouvez l'écouter dans le html suivant.
https://Nom du godet.s3.amazonaws.com/index.html
$ aws s3 cp --acl public-read index.html s3://Nom du godet/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>
・ J'ai essayé d'exécuter l'application AWS Hackason en utilisant l'offre gratuite AWS. ・ Le texte japonais utilisant la conversion Polly-Voice était possible pour une publication continue
・ S3-Je souhaite télécharger ou effectuer un téléchargement avec Lambda (Amazon Transcribe, Amazon Translate)
Recommended Posts