[PYTHON] Transkribieren Sie WAV-Dateien mit der Cloud Speech API

Zweck

** So transkribieren Sie WAV-Datei-Audio mit der Google Cloud Speech-to-Text-API ** [Artikel zum Transkribieren von FLAC-Dateien](https://qiita.com/knyrc/items/ 7aab521edfc9bfb06625) wurde als Referenz zum Transkribieren der WAV-Datei verwendet. Mit dieser Methode können Sie ** transkribieren, ohne in das FLAC-Format zu konvertieren.

Klicken Sie hier, um den Code anzuzeigen

[Wichtig] Vorbereitung der WAV-Datei

** Da die Cloud Speech-to-Text-API die für die Transkription erforderlichen Informationen aus den Header-Informationen der WAV-Datei erhält **, muss im Voraus bestätigt werden, ob der Header der in Voice zu konvertierenden WAV-Datei normal ist. Die in den Headerinformationen zu bestätigenden Informationen sind ** ob es sich um PCM (fmt_wave_format_type) und Abtastfrequenz (fmt_samples_per_sec) ** handelt.

Wenn Sie die Spezifikationen der Cloud Speech-to-Text-API überprüfen möchten, klicken Sie im VS-Code auf Recognition Config. Bitte springen Sie zur Definitionsquelle (# google.cloud.speech.v1.RecognitionConfig).

Überprüfen Sie den WAV-Dateikopf

Überprüfen Sie die Header-Informationen, indem Sie das in Artikel zum Lesen der Header-Informationen der WAVE-Datei mit Python beschriebene Programm ausführen.

Normale WAV-Datei

--fmt_samples_per_sec: 8000-48000 (16000 ist das Beste) --fmt_wave_format_type: 1 (zeigt auf PCM)

Beispiel für eine schlechte WAV-Datei

Wenn die WAV-Datei ein schlechtes Format hat

Siehe hier und ** WAV-Datei mit Macs Standard-App "Musik" exportieren ** Es funktionierte!

** [Achtung] Mit iMovie exportierte WAV-Dateien und mit QuickTime Player bearbeitete WAV-Dateien konnten nicht verschoben werden, da die Header nicht normal sind! ** ** **

Erstellen eines Dienstkontoschlüssels

Lesen Sie im Wesentlichen Artikel zum Transkribieren von FLAC-Dateien und erstellen Sie einen ** json-Schlüssel **.

** [Achtung] Dieses Mal wird die in Google Cloud Storage hochgeladene WAV-Datei transkribiert. Daher muss Cloud Storage-Zugriff auf das Dienstkonto gewährt werden. **

Fügen Sie Ihrer Rolle einen Speicherobjekt-Viewer hinzu. スクリーンショット 2020-10-22 0.28.11.png

Wenn Sie ein Dienstkonto verwenden, auf das Sie keinen Cloud-Speicherzugriff haben, sollten Sie sich ärgern:

PermissionDenied: 403 hogehoge does not have storage.objects.get access to the Google Cloud Storage object.

Legen Sie den Dienstkontoschlüsselpfad auf eine Umgebungsvariable fest

Legen Sie den Pfad der zuvor heruntergeladenen JSON-Datei zur Umgebungsvariablen fest.

export GOOGLE_APPLICATION_CREDENTIALS=./hoge.json

Laden Sie die WAV-Datei in den Cloud-Speicher hoch

Lesen Sie den Artikel zum Transkribieren der FLAC-Datei und laden Sie die WAV-Datei in den Cloud-Speicher hoch Sie können den Dateipfad zur Ressource in Cloud Storage ab beginnen.

Transkriptionsskript

Ich habe es unter Bezugnahme auf Artikel zum Transkribieren von FLAC-Dateien erstellt.

transcribe.py


# # !/usr/bin/env python
# coding: utf-8
import argparse
import datetime


def transcribe(gcs_uri):
    from google.cloud import speech_v1 as speech
    from google.cloud.speech_v1 import types
    client = speech.SpeechClient()
    audio = types.RecognitionAudio(uri=gcs_uri)
    #Da es in den Header der Audiodatei geschrieben ist, muss die Abtastfrequenz nicht angegeben werden.
    config = types.RecognitionConfig(language_code='ja-JP')
    operation = client.long_running_recognize(config, audio)

    operationResult = operation.result()
    now = datetime.datetime.now()
    print('Waiting for operation to complete...')

    with open('./{}.txt'.format(now.strftime("%Y%m%d-%H%M%S")), mode='w') as f:
        for result in operationResult.results:
            print("Transcript: {}".format(result.alternatives[0].transcript))
            print("Confidence: {}".format(result.alternatives[0].confidence))
            f.write('{}\n'.format(result.alternatives[0].transcript))


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument(
        'path', help='cloud storage path start with gs://')
    args = parser.parse_args()
    transcribe(args.path)

Ausführung des Transkriptionsskripts

Geben Sie den Dateipfad zur Ressource in Cloud Storage an, beginnend mit gs: // im Argument, und führen Sie das Skript aus.

python transcribe.py gs://hogehoge.wav

Ergebnis

Das Ergebnis wird als Standardausgabe und als Textdatei ausgegeben.

Transcript:Wenn Sie sich registrieren können
Confidence: 0.8765763640403748
Transcript:Ich denke, es ist besser, dort zu sein
Confidence: 0.8419854640960693

20201022-010101.txt


Wenn Sie sich registrieren können
Ich denke, es ist besser, dort zu sein

Referenz

Recommended Posts

Transkribieren Sie WAV-Dateien mit der Cloud Speech API
Spracherkennung von WAV-Dateien mit der Google Cloud Speech API Beta
Google Cloud Speech API im Vergleich zu Amazon Transcribe
Streaming-Spracherkennung mit der Google Cloud Speech API
Automatische Sprachtranskription mit Google Cloud Speech API
[Python] POST-WAV-Dateien mit Anforderungen [POST]
Sprachtranskriptionsverfahren mit der Google Cloud Speech API
Probleme mit den Ausgabeergebnissen mit der Cloud Vision-API von Google
Textextraktion mit GCP Cloud Vision API (Python3.6)
Lesen Sie WAV-Dateien nur mit dem Python-Standardpaket
Sprachtranskriptionsverfahren mit Python und Google Cloud Speech API
Laden Sie Dateien mit Django hoch
Extrudieren Sie mit der Fusion360-API
Punktwolke mit Pfeffer
Einfache Verwendung der Nifty Cloud API mit Botocore und Python
Ablauf des Extrahierens von Text in PDF mit der Cloud Vision API
Hochladen von Dateien in den Cloud-Speicher mit dem Python-SDK von Firebase
Laden Sie Dateien mit Django-Speicher in Google Cloud Storages hoch und löschen Sie sie