Auf dieser Seite wird gezeigt, wie Sie eine oder mehrere lange Audiodateien asynchron transkribieren. In Recognize
gilt eine maximale Audiolänge von 1 Minute. Verwenden Sie für alle Dateien, die länger sind, BatchRecognize
.
Bei der Batch-Spracherkennung wird ein google.longrunning.Operation
zurückgegeben, das Sie per Polling abfragen können, um festzustellen, wann die Transkription für Ihre Dateien abgeschlossen ist.
Transkriptionen werden in einen von Ihnen angegebenen Google Cloud Storage-Bucket geschrieben.
Batchspracherkennung durchführen
Damit Speech-to-Text auf Ihre Dateien in Google Cloud Storage zugreifen kann, müssen Sie ein Dienstkonto für Speech-to-Text erstellen und diesem Konto Lesezugriff auf das entsprechende Speicherobjekt gewähren. Führen Sie in Cloud Shell den folgenden Befehl aus, um ein Dienstkonto zu erstellen und aufzurufen, falls es nicht vorhanden ist.
BatchRecognizeRequest-Konfiguration
BatchRecognize
verwendet die von Ihnen angegebene Erkennung, um die Erkennung durchzuführen. Daher müssen Sie nur die Decodierungsparameter angeben, entweder explizit oder durch Auswahl der automatischen Decodierung.
Hier ist ein Beispiel für eine BatchRecognize-Anfrage:
POST /v2/projects/<PROJECT-ID>/locations/<LOCATION>/recognizers/<RECOGNIZER-ID>:batchRecognize
{
'config': {
'autoDecodingConfig': {}
},
'files': [
{
'uri': "gs://my-audio-bucket/en-us/cheese.wav"
}
],
'recognitionOutputConfig': {
'gcsOutputConfig': {
'uri': "gs://my-transcripts-bucket/en-us"
}
}
}
Überschreibungen auf Anfrageebene
Neben Sprache und Modell enthält das Erkennungsmodul auch eine Liste von Erkennungsparametern (z. B. enable_automatic_punctuation
).
Es gibt Parameter, die auf Anfrageebene überschrieben werden können. So müssen Sie nicht für jede gewünschte Kombination von Erkennungsfeatures einen anderen Erkennungsmodul erstellen.
Angenommen, ein Erkennungsmodul wurde wie oben erstellt:
POST /v2/projects/<PROJECT-ID>/locations/<LOCATION>/recognizers?recognizer_id=<RECOGNIZER-ID>
{
'languageCodes': 'en-US',
'model': 'latest_long',
'config': {
'features': {
'enableAutomaticPunctuation': true
'enableWordTimeOffsets': true
}
}
}
Auf diese Weise werden Features auf Anfrageebene überschrieben. Das bedeutet, dass die Erkennung jeder Datei mit den entsprechenden Features erfolgt.
POST /v2/projects/<PROJECT-ID>/locations/<LOCATION>/recognizers/<RECOGNIZER-ID>:batchRecognize
{
'config': {
'autoDecodingConfig': {}
'features': {
'enableAutomaticPunctuation': false
}
},
'files': [
{
'uri': "gs://my-audio-bucket/en-us/cheese.wav"
}
],
'recognitionOutputConfig': {
'gcsOutputConfig': {
'uri': "gs://my-transcripts-bucket/en-us"
}
}
}
Dadurch wird die automatische Spracherkennung auf gs://my-audio-bucket/en-us/cheese.wav
ausgeführt, wobei nur das Erkennungsfeature enableWordTimeOffsets
aktiviert ist, da es auf Erkennungsebene aktiviert und überhaupt nicht auf Anfrageebene angegeben wurde. Da enableAutomaticPunctuation
in der Anfrageebene als „false“ angegeben wurde, wird der ursprüngliche Wert „true“ auf Erkennungsebene überschrieben und diese Anfrage führt keine automatische Zeichensetzung aus.
Überschreibungen auf Dateiebene
Dieselbe Situation ist auch auf Dateiebene möglich. Dies ermöglicht eine maximale Flexibilität beim Festlegen von Erkennungs-Features auf einer pro Datei-Basis. Vielleicht möchten Sie beispielsweise, dass bei allen Dateien die Zeichensetzung automatisch erfolgt, aber nur bei bestimmten Dateien den Wortzeitversatz.
Sie können das Erkennungsmodul wie oben beschrieben erstellen. Geben Sie dann eine Anfrage wie diese an:
POST /v2/projects/<PROJECT-ID>/locations/<LOCATION>/recognizers/<RECOGNIZER-ID>:batchRecognize
{
# This specifies that all files will use automatic decoding
'config': {
'autoDecodingConfig': {}
},
'files': [
{
'uri': "gs://my-audio-bucket/en-us/cheese1.wav"
'config': {
# This file will not include word time offsets.
'features': {
'enableAutomaticPunctuation': false
}
},
},
{
'uri': "gs://my-audio-bucket/en-us/cheese2.wav"
'config': {
# This file will include word time offsets.
'features': {
'enableAutomaticPunctuation': true
}
},
},
]
'recognitionOutputConfig': {
'gcsOutputConfig': {
'uri': "gs://my-transcripts-bucket/en-us"
}
}
}
Umgang mit einer BatchRecognize-Antwort
BatchRecognize
gibt einen google.longrunning.Operation
als Antwort zurück.
Informationen zum Abfragen eines Vorgangs finden Sie auf der Seite Vorgänge.
Der BatchRecognizeResponse
wird nach Abschluss festgelegt und zeigt jede Datei als Ergebnis an. Dies ist entweder ein Cloud Storage-URI für das Transkript oder eine Fehlermeldung, die den Fehler beschreibt.
Die JSON-Antwort sieht etwa so aus:
'response': {
'@type': 'type.googleapis.com/google.cloud.speech.v2.BatchRecognizeResponse',
'results': {
# Input file name
'gs://my-audio-bucket/audio/en-us/cheese.wav': {
# Output (transcript) file name
'uri': 'gs://my-transcripts-bucket/en-us/cheese_transcript_63d14a9d-0000-2c31-b9b4-c82add6c82a4.json'
}
}
}
Die Transkriptdatei für BatchRecognize ist als Objekt vom Typ BatchRecognizeResults
formatiert.