[PYTHON] [Einführung in AWS] Ich habe versucht, mit der Sprach-Text-Konvertierung zu spielen ♪

Es sieht genauso aus, aber hier gibt es fast kein Material. Ich habe es geschafft, die Referenz zu sehen. Die Stimme von gestern Abend wird veröffentlicht. Ich habe das heute Abend in Text umgewandelt. Sprachgenerierung

【Referenz】 ①Getting Started (AWS SDK for Python (Boto))Transkribieren Sie die Stimme mit Amazon Transcribe. S3 → Lambda → Transkribieren → Erstellen einer Transkriptionspipeline mit S3

Aus Referenz ① kann der folgende Code erstellt werden. Es sieht fast genauso aus wie Referenz ①, aber wenn Sie Referenz ③ an einer Stelle betrachten, wird das Ausgabeziel als OutputBucketName = 'Bucket Name' angegeben. Ohne dies könnte ich nicht wissen, wo es ausgegeben wurde.

from __future__ import print_function
import time
import boto3
transcribe = boto3.client('transcribe')
job_name = "test_tran3"
job_uri = "https://Eimername.s3.amazonaws.com/speech.mp3"
transcribe.start_transcription_job(
    TranscriptionJobName=job_name,
    Media={'MediaFileUri': job_uri},
    MediaFormat='mp3',  #wav, mp4, mp3
    LanguageCode='ja-JP', #'en-US'
    OutputBucketName='muauanmp3'
)
while True:
    status = transcribe.get_transcription_job(TranscriptionJobName=job_name)
    if status['TranscriptionJob']['TranscriptionJobStatus'] in ['COMPLETED', 'FAILED']:
        break
    print("Not ready yet...")
    time.sleep(5)
print(status)

Der obige Code gibt die folgende Ausgabe. Noch nicht fertig wird alle 5 Sekunden einmal ausgegeben, aber es scheint, dass es ungefähr 30 Sekunden dauert, da es 6 Mal oder mehr ausgegeben wird. Und ich spucke das Ergebnis aus, aber ich verstehe nicht viel.

$ python3 boto_transcribe.py
Not ready yet...
...
Not ready yet...
{'TranscriptionJob': {'TranscriptionJobName':..., 'content-length': '506', 'connection': 'keep-alive'}, 'RetryAttempts': 0}}

Überprüfen Sie daher die s3-Bucket-Datei wie in Referenz (2) gezeigt. Sie können Dateien wie test_tran3.json sehen, die mit der Audiodatei language.mp3 ausgegeben wurden.

$ aws s3 ls s3://Eimername
2020-06-19 04:52:36          2 .write_access_check_file.temp
...
2020-06-18 23:44:17      35467 speech.mp3
...
2020-06-19 04:45:47       1472 test_tran2.json
2020-06-19 04:54:09       1663 test_tran3.json

Kopieren Sie dann s3: // Bucket-Name /test_tran3.json auf den ec2-Server.

$ aws s3 cp s3://Eimername/test_tran3.json ./
download: s3://Eimername/test_tran3.json to ./test_tran3.json

Geben Sie abschließend den Inhalt von json mit dem folgenden Befehl aus. Wenn die Sprache korrekt ist, ist die Ausgabe wie unten gezeigt korrekt, aber das Ergebnis der Transkription derselben Audiodatei mit englischen Spezifikationen ist im Alphabet wie unten gezeigt, aber es ist seltsam! Trotzdem habe ich einige Audio-Text-Konvertierungen durchgeführt.

$ cat test_tran3.json |jq .results[][0].transcript
"Hallo auch Yokohama Tokyo trübe kleine Stimme ist Mizukis"

$ cat test_tran2.json |jq .results[][0].transcript
"Tokyo, Yokohama, Moscow See Commodities, Cueva Mitic Sundays."

Wenn ich es jedoch tatsächlich benutze, möchte ich es immer noch mit Python-Code machen, anstatt es von Hand zu basteln. Als Ergebnis verschiedener Untersuchungen wurde festgestellt, dass die folgenden Referenzen gemacht werden können.

【Referenz】 ④ Dateien mit boto3 in S3 hochladen und herunterladenJSON-Zeichenfolge / Datei mit Pandas lesen (read_json)Erklären Sie die verschachtelte Struktur von Arrays und wie Sie mit Python Werte in JSON erhalten! Wenn Sie diese Methoden in Ihren Code einfügen, erhalten Sie: Mit anderen Worten ① Laden Sie die JSON-Datei herunter ② Lesen Sie mit Pandas ③ Geben Sie das gewünschte Teil aus Das ist die Methode.

import pandas as pd
s3 = boto3.resource('s3') #S3-Objekt abrufen

bucket = s3.Bucket('Eimername') #Bucket-Definition
bucket.download_file('test_tran3.json', 'test_tran3.json') #Download auf ec2; Datei herunterladen, Datei nach dem Download
df = pd.read_json('test_tran3.json') #Lesen Sie die JSON-Datei mit Pandas

print(df['results'][1][0]['transcript']) #Extrahieren Sie die Konvertierungszeichenfolge aus der JSON-Datei

Als Ergebnis einer Reihe von Arbeiten wurden die folgenden Sätze erfolgreich erhalten.

Hallo auch Yokohama Tokyo trübe kleine Stimme ist Mizukis

·Variation

App-Anwendung

Es ist ein einzelnes Element, und es scheint, dass Protokolle und Übersetzungen normal verwendet werden können. In Kombination mit der Textstimme der letzten Nacht können Sie außerdem sehen, dass die folgende Sequenz erstellt werden kann.

Text-Stimme-...-Stimme-Text

Damit ... .. .. Es gibt verschiedene Möglichkeiten, das Teil zu bearbeiten. Notieren Sie das Lesen der Papiere und Materialien sowie die Reihenfolge der Fragen im Text. Mit anderen Worten können der ursprüngliche Text / die ursprüngliche Stimme und die verarbeitete Stimme / der verarbeitete Text unterschiedlich sein. Auch andere Sequenzen sind möglich. Im Fall einer Konversations-App ist die obige Anordnung umgekehrt

Stimme-Text-Conversation App-Text-Stimme

Es ist möglich, dass. Dies ist eine Sequenz wie Alexa. In diesem Fall handelt es sich um eine textbasierte Konvertierung, sodass Sie anscheinend normal übersetzen können.

Voice QA

Eine Stimme wie Alexa - ich denke, ich kann eine QS-App erstellen. Wenn Sie Fragen per Spracheingabe wie ein Smartphone annehmen und die oben genannte Anwendung dahinter ausführen, kann anscheinend auch eine Echtzeit-Sprach-QS durchgeführt werden.

Twitter-Unterstützung

Es ist nicht auf Twitter beschränkt, aber der Punkt ist, dass die Eingabe per Sprache und die Ausgabe per Sprache erfolgen kann. .. .. .. Sie müssen jedoch Ihr Bestes geben, um diese Apps zu erstellen.

Zusammenfassung

・ Ich habe mit der Sprach-Text-Konvertierung gespielt ・ Ich konnte mit Python eine Reihe von Aktionen erstellen

-Wenn die JSON-Datei vorhanden ist, kann sie nicht zweimal ausgeführt werden. Daher muss sie in einer Reihe von Sequenzen gelöscht werden, um jedes Mal denselben Job auszuführen. ・ Lass uns eine App machen. .. .. ・ Lassen Sie uns eine Textübersetzung durchführen

Recommended Posts

[Einführung in AWS] Ich habe versucht, mit der Sprach-Text-Konvertierung zu spielen ♪
[Einführung in AWS] Ich habe versucht, eine Konversations-App zu portieren und mit text2speech @ AWS playing zu spielen
[Einführung in AWS] Text-Voice-Konvertierung und Wiedergabe ♪
[Einführung in Pytorch] Ich habe versucht, Cifar10 mit VGG16 ♬ zu kategorisieren
[Einführung in die Simulation] Ich habe versucht, durch Simulation einer Koronainfektion zu spielen ♬
[Einführung in das Modell der Infektionskrankheiten] Ich habe versucht, zu passen und zu spielen ♬
Ich habe versucht, Autoencoder mit TensorFlow zu implementieren
Ich habe versucht, AutoEncoder mit TensorFlow zu visualisieren
Ich habe versucht, mit Hy anzufangen
Ich möchte mit aws mit Python spielen
[Einführung in Pytorch] Ich habe mit sinGAN ♬ gespielt
Ich habe versucht, CVAE mit PyTorch zu implementieren
Ich habe versucht, mit Pillow mit dem Bild zu spielen
Ich habe versucht, TSP mit QAOA zu lösen
Ich habe versucht, schlechte Tweets regelmäßig mit der AWS Lambda + Twitter API zu löschen
[Einführung in AWS] Ich habe mit Polly und Transcribe male mit Männer- und Frauenstimmen gespielt
[AWS] [GCP] Ich habe versucht, die Verwendung von Cloud-Diensten mit Python zu vereinfachen
Ich habe versucht, fMRI-Daten mit Python zu analysieren (Einführung in die Dekodierung von Gehirninformationen)
Ich habe versucht, einen URL-Verkürzungsdienst mit AWS CDK serverlos zu machen
Ich habe versucht, das Lesen von Dataset mit PyTorch zu implementieren
Ich habe versucht, lightGBM, xg Boost mit Boruta zu verwenden
Ich habe versucht, mit TF Learn die logische Operation zu lernen
Ich habe versucht, GAN (mnist) mit Keras zu bewegen
Ich habe versucht, die Daten mit Zwietracht zu speichern
Ich habe versucht, mit OpenCV Bewegungen schnell zu erkennen
Ich habe versucht, Keras in TFv1.1 zu integrieren
Ich habe versucht, mit PartiQL und MongoDB verbunden zu spielen
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
Ich habe versucht, LLVM IR mit Python auszugeben
Ich habe versucht, ein Objekt mit M2Det zu erkennen!
Ich habe versucht, die Herstellung von Sushi mit Python zu automatisieren
Ich habe versucht, das Überleben der Titanic mit PyCaret vorherzusagen
Ich habe versucht, AWS Lambda mit anderen Diensten zu verbinden
Ich habe versucht, Linux mit Discord Bot zu betreiben
Ich habe versucht, DP mit Fibonacci-Sequenz zu studieren
Ich habe versucht, Jupyter mit allen Amazon-Lichtern zu starten
Ich habe versucht, Tundele mit Naive Bays zu beurteilen
Ich habe versucht, mit tkinter mit dem Taschenrechner zu spielen
[Einführung in PID] Ich habe versucht, ♬ zu steuern und zu spielen
Ich habe AWS CDK ausprobiert!
Ich habe AWS Iot ausprobiert
Als ich versuchte, eine VPC mit AWS CDK zu erstellen, konnte ich es aber nicht schaffen
Ich habe versucht, eine Umgebung zu erstellen, um regelmäßig mit Selenium mit AWS Fargate zu überprüfen
Ich habe versucht, die Sündenfunktion mit Chainer zu trainieren
Ich habe versucht, maschinelles Lernen (Objekterkennung) mit TouchDesigner zu verschieben
Ich habe versucht, Funktionen mit SIFT von OpenCV zu extrahieren
Ich habe versucht, Faster R-CNN mit Pytorch auszuführen
Ich habe versucht, mit VOICEROID2 2 automatisch zu lesen und zu speichern
Ich habe versucht, DCGAN mit PyTorch zu implementieren und zu lernen
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, mit VOICEROID2 automatisch zu lesen und zu speichern
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
Ich habe versucht, ObjectId (Primärschlüssel) mit Pymongo zu generieren
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
Ich habe versucht, eine ML-Pipeline mit Cloud Composer zu erstellen