Récemment, je jouais avec Shogi AI, donc l'article a été négligé, mais du vendredi au samedi, j'ai participé à "Own AWS Hackason (provisoire)" et j'ai fait le titre et j'ai fait mes débuts sur AWS, alors je l'ai laissé Je vais le garder. Pour tous les participants, j'étais un débutant en ferroutage, mais ce fut une période de 24 heures très enrichissante.
** Voici une histoire chronologique. ** ** ・ Connectez-vous à aws ・ Vérifiez le type de solution IA ・ Confirmation de speech2text ** ・ Apprentissage Shogi AI ** ・ Confirmation Pykakasi ** ・ Installation Mecab @ AWS ** ** ・ QA_conversation modifiée pour prendre en charge AWS ** ** ・ Enregistrez en fichier mp3 avec text2speech @ AWS ** ・ Téléchargement en masse de fichiers mp3 @TeraTerm ** - La publication de fichiers mp3 dans un fichier S3 #confidential était un obstacle ** ** ・ Génération automatique de fichier audio public S3 **
** Les opérations suivantes n'ont pas pu être effectuées en raison du délai d'attente ** 。。。 ・ Transfert et renvoi MP3 au fur et à mesure que la conversation progresse 。。。 ・ Conversion de texte vocal par speech2text ・ Parlez sur votre smartphone ·Achevée
・ Apprenez l'IA Shogi dans l'environnement [email protected] ・ Portage des applications de conversation -Jouer de l'audio converti sur le Web avec text2speech de polly
L'environnement était principalement fourni par l'organisateur, et le style était d'écrire la progression sur le Wiki créé sur ec2. En d'autres termes, créez une instance en fonction de votre propre application. J'ai donc choisi l'environnement GPU p2.xlarge pour l'apprentissage automatique. Vous pouvez désormais utiliser tous les frameworks pour l'apprentissage automatique. Presque comme indiqué ci-dessous, mais la demande d'assouplissement des restrictions n'était pas nécessaire car l'organisateur l'avait fixée à l'avance. 【référence】 Si vous souhaitez exécuter Chainer sur GPU, il est facile d'utiliser l'AMI Deep Learning Base (Ubuntu).
Le déroulement est comme dans l'article ci-dessus, mais j'ajouterai une petite description supplémentaire. Cette paire de clés est importante et vous en aurez besoin lors de la connexion à SSH, vous devez donc la stocker dans un endroit sûr. De plus, lors de la création d'une instance, les informations suivantes sont définies et le fichier peut être téléchargé. Ces informations sont essentielles lors de la création d'applications à l'aide de solutions AWS et doivent être conservées en lieu sûr.
aws_access_key_id
aws_secret_access_key
-Installez TeraTerm. -Entrez un nom d'hôte tel que [ec2- \ * \ * - \ * \ * - \ * \ * \ * - \ * \ *. Us-west-2.compute.amazonaws.com] dans l'hôte et OK. Lorsque vous vous connectez, il vous sera demandé plus loin, alors entrez le nom d'utilisateur: ubuntu et la paire de clés privées et connectez-vous avec OK. ・ Une fois connecté, copiez et collez [source activate chainer_p36] depuis le site suivant et collez-le à nouveau pour activer l'environnement chainer_p36. 【référence】 Chainer@aws -Faites un ensemble de fichiers Zip et transférez-le avec la fonction de transfert de TeraTerm, et développez-le dans un Dir approprié d'ec2.
Cette fois, j'ai essayé d'exécuter train_policy_value_resnet.py de Shogi AI, mais cela a pris beaucoup de temps par rapport à le faire dans l'environnement local. Pour le moment, j'utilisais GPU, mais comme le CPU était à 100%, j'utilise CuDNN localement, mais j'ai été déçu de ne pas avoir vérifié s'il était installé.
Le fichier est Utiliser la version nano @ ubuntu de l'application de conversation l'autre jour. J'enverrai ce matériel. Surtout, même s'il s'agit d'apprentissage automatique, DL n'est pas utilisé, alors créez une nouvelle instance t2.large d'ubuntu18.04 et exécutez-la. Par rapport au prix, c'est un ordre de grandeur moins cher comme indiqué ci-dessous.
p2.xlarge 4 12 61 Gio EBS uniquement 0.9USD/temps
t2.grand 2 variable 8 Gio EBS uniquement 0.0928USD/temps
【référence】 Liste de prix Amazon EC2
Le plus grand défi du portage est l'installation de Mecab. J'ai des problèmes avec n'importe quel environnement, mais j'ai des problèmes avec t2.large ubuntu 18.04 sur AWS. Les bases sont présentées ci-dessous comme pour nano. 【référence】 Installer mecab sur ubuntu 18.10 Cependant, j'ai également reçu une erreur de module No nommé "Mecab". La cause est inconnue, mais je l'ai réinstallée ci-dessous et cela a fonctionné.
sudo pip3 install --no-cache-dir mecab-python3
En outre, le dictionnaire est entré sans aucun problème par la méthode ci-dessus. Je n'installe pas pyaudio car je ne corrige pas la génération de sons, mais j'ai installé pykakasi et je l'ai confirmé. Maintenant, cela fonctionne lorsque je supprime l'appel de fonction text2speak () dans qa_conversation_nano.py.
Cette application veut finalement avoir une conversation vocale. Donc, je voulais utiliser speech2text et text2speech s'ils existaient, mais j'ai décidé de l'utiliser car AWS ne prend en charge que text2speech en japonais.
AWS a beaucoup d'explications, mais il semble que vous deviez vous habituer à aller droit au but. J'ai donc trouvé le code suivant. Si vous l'utilisez, le texte saisi dans Texte sera converti en fichier audio et le fichier mp3 sera placé dans le Dir spécifié du serveur ec2. Ici, entrez la clé générée lors de la création de l'instance ci-dessus sur le côté droit de chacun des aws_access_key_id = et aws_secret_access_key =,.
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()
Pour le japonais, définissez VoiceId = 'Mizuki' et mettez le japonais dans Text. Il semble que vous puissiez faire divers ajustements, mais cette fois, c'est la valeur par défaut en raison de contraintes de temps. Amazon Polly Voice
J'ai pu le faire avec le code suivant. En fait, il y avait un problème ici. En d'autres termes, j'ai eu une erreur indiquant que les clés sont différentes. Cela était dû au fait que l'authentification se produisait lors de ce transfert et qu'il allait automatiquement examiner le fichier confidentiel et lire l'ancienne clé. Donc, cette fois, j'ai supprimé ce fichier et l'ai téléchargé normalement.
# -*- 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')
s3_client = boto3.client('s3')
# Upload the file to S3
s3_client.upload_file('test.txt', 'bucket-name', 'test-remote.txt')
À ce stade, vous pouvez générer du son avec du html normal.
<html>
<body>
<figure>
<figcaption>Listen to the Answer:</figcaption>
<audio
autoplay
controls
src="https://******.s3-****.amazonaws.com/mp3/speech0.mp3">
Your browser does not support the
<code>audio</code> element.
</audio>
</figure>
</body>
</html>
・ J'ai pu faire mes débuts sur AWS en participant au "Own AWS Hackason (provisoire)" ・ J'ai essayé de jouer à l'application de conversation sur AWS ・ Text2speech n'était pas clair
・ Speech2text ne prend pas en charge le japonais dans AWS, il est donc nécessaire d'envisager des contre-mesures. ・ Parlez sur votre smartphone
Recommended Posts