[PYTHON] [Einführung in AWS] Das erste Lambda ist Transcribe ♪

Dies ist eine Aufzeichnung, die ich als Referenz für ein Memorandum ausprobiert habe. Ich denke, der Referenzartikel ist für jeden einfach, der weiß, dass er ordentlich geschrieben ist, aber für AWS-Anfänger war er schwierig. Ich möchte diesen Bereich schlammig erklären. Was ich also getan habe, ist endlich der Referenzartikel. 【Referenz】 ・ S3 → Lambda → Transkribieren → Erstellen einer Transkriptionspipeline mit S3

Was ich getan habe

・ Erstellen Sie einen Bucket für (Eingabe) in 1 S3 ・ 2 Öffnen Sie Lambda ・ 3 Definition und Bedeutung der Lambda-Funktion ・ 4 Lesen von CloudWatch-Protokollen ・ Erstellen Sie einen Bucket für (Ausgabe) in 5 S3 ・ 6 Lambda-Korrektur ・ 7 So ändern Sie die Ausführungsrolle ・ 8 Lambda-Funktion bearbeiten ・ 9 So überprüfen Sie die Transkription

・ 1 Erstellen Sie einen Bucket für (Eingabe) in S3. ・ 5 Erstellen Sie einen Bucket für (Ausgabe) in S3

Wenn Sie auf den Dienst oben links in AWS klicken, werden alle Dienste angezeigt, und Sie können hier verschiedene Menüs auswählen. Wenn Sie s3 als Speicher auswählen, können Sie zu der Seite springen, auf der Sie einen Bucket für s3 erstellen können. Erstellen Sie ihn dort. Ich denke, es funktioniert auch, wenn alle Sicherheitsvorkehrungen verboten sind (Objekte werden veröffentlicht). Erstellen Sie Ein- und Ausgaben mit den entsprechenden Bucket-Namen.

・ 2 Öffnen Sie Lambda

Zeigen Sie alle Dienste wie oben an. Öffnen Sie diesmal Lambda für die Berechnung. Die Seite zur Funktionserstellung wird geöffnet Wenn es nicht geöffnet wird, klicken Sie auf Funktion erstellen. Dann springt die Seite des Referenzbildes ①. Hier können Sie zum nächsten Bildschirm wechseln, indem Sie [Design verwenden] - [s3-get-object-python] - [Einstellungen] auswählen.

・ 3 Definition und Bedeutung der Lambda-Funktion

Erstens ist die Lambda-Funktion eine wichtige Methode zum Definieren einer Funktion, bei der ein Trigger ohne Server abgerufen wird, und es handelt sich um einen Umlage-Service, der eine Gebühr für den vollständigen Umzug kostet. ** ** ** Wir definieren also eine Funktion mit fast einer einzigen Funktion.

Lassen Sie uns abschließend das Verhalten der Funktion definieren. Funktionsname, alles, was einzigartig ist, sieht gut aus Rollenname, dies muss eindeutig sein. Selbst wenn die Funktion gelöscht wird, wird sie nicht gelöscht. Daher muss sie separat gelöscht werden. S3-Trigger; Name des Eingabe-Buckets für die Eingabe Trigger aktivieren, prüfen Das folgende Skelett wird ausgespuckt, aber es stellt sich heraus, dass diese Funktion bereits funktioniert. Das heißt, es ist ersichtlich, dass ein Protokoll aufgezeichnet wird, wenn etwas in den Eingabebereich gelegt (übertragen) wird. Mit Blick auf den Inhalt ist es wie folgt Erstens ist Lib wie folgt

import json
import urllib.parse
import boto3

Holen Sie sich s3 Objekt

print('Loading function')
s3 = boto3.client('s3')

Die Funktion lambda_handler führt die in # beschriebene Operation aus. Das heißt, es erhält ein Objekt vom Ereignis und zeigt seinen Inhalt an. Bucket gibt den oben definierten s3-Bucket-Namen zurück. Schlüssel gibt den Dateinamen zurück. Holen Sie sich den Dateinamen usw. als Antwort in den Bucket. Dieser Inhaltstyp wird zurückgegeben. Unter Ausnahme ist die Fehlerroutine.

def lambda_handler(event, context):
    #print("Received event: " + json.dumps(event, indent=2))
    # Get the object from the event and show its content type
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = urllib.parse.unquote_plus(event['Records'][0]['s3']['object']['key'], encoding='utf-8')
    try:
        response = s3.get_object(Bucket=bucket, Key=key)
        print("CONTENT TYPE: " + response['ContentType'])
        return response['ContentType']
    except Exception as e:
        print(e)
        print('Error getting object {} from bucket {}. Make sure they exist and your bucket is in the same region as this function.'.format(key, bucket))
        raise e

・ 4 Lesen von CloudWatch-Protokollen

Wenn Sie eine Funktion erstellen, können Sie eine Funktionsseite erstellen. Wenn Sie dort eingeben, ist dies [Einstellungen] [Zugriffsrechte] [Überwachung], und der Code ist unten geschrieben. Wählen Sie die [Überwachung]. Und es gibt einige Grafiken, unter denen Sie CloudWatch Logs Insights sehen können. Versuchen Sie hier, etwas von ec2 usw. in den obigen Eingabebereich zu ordnen (zu übertragen). Dann funktioniert die obige Lambda-Funktion, und diese CloudWatch-Protokolle zeigen die Aufzeichnung der Bewegung von Moment zu Moment. Fehler werden ebenfalls ausgelöst. So können Sie zumindest überprüfen, ob es funktioniert.

・ 6 Lambda-Korrektur

Schließlich machen Sie die Lambda-Funktion real. Dieses Mal können Sie die Anwendung einfach kopieren und in Referenz paste einfügen und die Bucket-Namen für Eingabe und Ausgabe ändern. Mal sehen, was passiert, wenn der Auslöser tatsächlich beim Versuch kommt. Am besten ist es, wenn der TranscriptionJobName jedes Mal generiert wird, wenn der Trigger angewendet wird, um ihn eindeutig zu halten. Daher kennt der erzeugte JSON auch die Zeit. Sie können den folgenden Code verstehen, da Bucket der Eingabe-Bucket und der Dateiname der Schlüssel ist. Anschließend wird die Ausgabedatei in den durch OutputBucketName definierten Bucket ausgegeben.

        transcribe.start_transcription_job(
            TranscriptionJobName= datetime.datetime.now().strftime('%Y%m%d%H%M%S') + '_Transcription',
            LanguageCode='ja-JP',
            Media={
                'MediaFileUri': 'https://s3.ap-northeast-1.amazonaws.com/' + bucket + '/' + key
            },
            OutputBucketName='lamoutput'
        )

・ 7 So ändern Sie die Ausführungsrolle

Wählen Sie [Zugriffsrechte]. Die Ausführungsrolle wird angezeigt. Wenn Sie darauf klicken, werden die Berechtigungen der Ausführungsrolle und die Berechtigungsrichtlinie angezeigt. Hier, AmazonS3FullAccess AmazonTranscribeFullAccess Hinzufügen. Um es hinzuzufügen, klicken Sie auf [Richtlinie anhängen] und geben Sie das Obige in die Suche ein. Aktivieren Sie also das linke und hängen Sie es an, um es hinzuzufügen.

・ 8 Lambda-Funktion bearbeiten

Wie 6, jedoch den folgenden Code direkt auf der Funktionsseite ändern und speichern.

・ 9 So überprüfen Sie die Transkription

Wenn Sie in diesem Zustand eine MP3-Datei in die Eingabe einfügen, ist das Ergebnis der Übertragung meiner Meinung nach die JSON-Datei in der Ausgabe. Ich denke, es wird einige Zeit dauern, aber es wird schneller ausgegeben als mein eigenes Programm. Sie können die aktuelle Situation anhand der obigen CloudWatch-Protokolle anzeigen. Übrigens können Sie es im Ausgabe-Bucket möglicherweise nur sehen, wenn Sie es neu laden. Seien Sie also vorsichtig. Wenn Sie die JSON-Datei veröffentlichen, können Sie sie problemlos herunterladen. Als ich es einfach öffnete, waren die Charaktere verstümmelt. Als ich es mit Notepad öffnete, konnte ich den Inhalt wunderschön sehen. Außerdem finde ich es schön, die heruntergeladene JSON-Datei mit Pandas zu lesen und den transkribierten Text zu überprüfen. Ich habe bisher darüber nachgedacht, die obige Funktion zu verwenden, aber ich habe heute Abend aufgegeben, weil es schwierig zu sein scheint.

Zusammenfassung

・ Lambda-Funktionsdebüt

・ Da die Konvertierung schnell ist, möchte ich Polly implementieren und auf Konversations-Apps anwenden. ・ Polly wird versuchen, es auf die gleiche Weise zu schaffen

Recommended Posts

[Einführung in AWS] Das erste Lambda ist Transcribe ♪
Holen Sie sich die Region, in der AWS Lambda ausgeführt wird
Die einfachste AWS Lambda-Implementierung
[Einführung in die Udemy Python3 + -Anwendung] 58. Lambda
[AWS SAM] Einführung in die Python-Version
[Einführung in AWS] Ich habe mit Polly und Transcribe male mit Männer- und Frauenstimmen gespielt
[Einführung in Python] Was ist der Unterschied zwischen einer Liste und einem Taple?
Poste regelmäßig mit AWS Lambda auf Twitter!
Wahrscheinlich die einfachste Einführung in TensorFlow
Entspricht die Zahl einer Ganzzahl?
Stellen Sie mit AWS Lambda Python eine Verbindung zu s3 her
[Einführung in AWS] Text-Voice-Konvertierung und Wiedergabe ♪
[Einführung in Python] Wie wird mit der continue-Anweisung wiederholt?
Zusammenfassung des Schreibens von AWS Lambda
Sie können Python mithilfe der Bibliothek in eine AWS Lambda-Funktion verwandeln
[AWS; Einführung in Lambda] 2. Extrahieren Sie Sätze aus der JSON-Datei und speichern Sie S3 ♬
[Einführung in AWS] Ich habe versucht, eine Konversations-App zu portieren und mit text2speech @ AWS playing zu spielen
[AWS] Umgang mit Wordpress "Die Antwort ist nicht die richtige JSON-Antwort."
Was ist ein Algorithmus? Einführung in den Suchalgorithmus] ~ Python ~
Einführung in Python Bereiten wir die Entwicklungsumgebung vor
So verwenden Sie MkDocs zum ersten Mal
[Einführung in Python3 Tag 20] Kapitel 9 Enträtseln des Webs (9.1-9.4)
Einführung in Python mit Atom (unterwegs)
[AWS / Lambda] Laden einer externen Python-Bibliothek
Zusammenfassung des Studiums von Python zur Verwendung von AWS Lambda
[Einführung in den Algorithmus] Finden Sie den kürzesten Weg [Python3]
[Einführung in die Udemy Python3 + -Anwendung] 9. Drucken Sie zunächst mit print
[Einführung in die Udemy Python3 + -Anwendung] 54. Was ist Docstrings?
Von der Einführung von Pyethapp bis zur Vertragsabwicklung
Tag 66 [Einführung in Kaggle] Die einfachste Titanic-Vorhersage
[Einführung in Python] Grundlegende Verwendung von Lambda-Ausdrücken
Versuchen Sie zum ersten Mal, in Qiita zu posten
Einführung in MQTT (Einführung)
Einführung in Scrapy (1)
Einführung in Scrapy (3)
Erste Schritte mit Supervisor
Einführung in Tkinter 1: Einführung
Einführung in PyQt
Einführung in Scrapy (2)
[Einführung in Python] Was ist die empfohlene Pip-Installationsmethode für das Paketverwaltungssystem?
Es war ein Leben, das ich auf AWS Lambda OCR wollte, um die Charaktere zu lokalisieren.
[Linux] Einführung in Linux
Einführung in Scrapy (4)
TensorFlow-Laufzeit AttributeError: Modul 'Intensorflow' hat kein Attribut Das erste, was Sie vermuten müssen, wenn Sie 'konstant' werden.
Einführung in discord.py (2)
[Einführung in Python] Was ist das wichtige "if __name__ == '__ main__':" beim Umgang mit Modulen?
[Einführung in das Modell für Infektionskrankheiten] Was ist der Unterschied zwischen der April-Epidemie und dieser Epidemie? .. .. ‼
Verwenden Sie AWS Lambda, um einen Mechanismus zu erstellen, der Slack benachrichtigt, wenn der von CloudWatch überwachte Wert in Python überschritten wird
Linux ist in erster Linie so etwas
[Einführung in Python] Wie iteriere ich mit der Bereichsfunktion?
Terraform konfiguriert, um AWS Lambda von Amazon SQS aus zu starten
So konfigurieren Sie Layer auf Lambda mit AWS SAM
Ich habe versucht, mit AWS Lambda einen AMI zu erhalten
Amazon SNS → AWS Lambda → Slack → Führen Sie AWS-Befehle in AWS Chatbot aus
Der erste Schritt, um Blender von Python verfügbar zu machen
Ich möchte Lambda mit Python auf Mac AWS!
[Einführung in die Udemy Python3 + -Anwendung] 27. Verwendung des Wörterbuchs