Auf dieser Seite wird gezeigt, wie lange Audiodateien (länger als 1 Minute) mithilfe der Speech-to-Text API und der asynchronen Spracherkennung in Text transkribiert werden.
Asynchrone Spracherkennung
Bei der asynchronen Spracherkennung wird ein längerer Vorgang zur Audioverarbeitung gestartet. Verwenden Sie die asynchrone Spracherkennung, um Audios zu transkribieren, die länger als 60 Sekunden sind. Für kürzere Audiodaten ist die synchrone Spracherkennung schneller und einfacher. Die Obergrenze für die asynchrone Spracherkennung beträgt 480 Minuten.
Spracherkennung und asynchrone Verarbeitung
Audioinhalte können von einer lokalen Datei zur asynchronen Verarbeitung direkt an Speech-to-Text gesendet werden. Das Audiozeitlimit für lokale Dateien beträgt allerdings 60 Sekunden. Wenn versucht wird, lokale Audiodateien zu transkribieren, die länger als 60 Sekunden sind, wird ein Fehler ausgegeben. Wenn Sie die asynchrone Spracherkennung verwenden möchten, um Audios zu transkribieren, die länger als 60 Sekunden sind, müssen Sie Ihre Daten in einem Google Cloud Storage-Bucket speichern.
Sie können die Ergebnisse des Vorgangs mit der Methode google.longrunning.Operations abrufen. Die Ergebnisse können fünf Tage (120 Stunden) abgerufen werden. Sie haben auch die Möglichkeit, Ihre Ergebnisse direkt in einen Google Cloud Storage-Bucket hochzuladen.
Lange Audiodateien mithilfe einer Google Cloud Storage-Datei transkribieren
Bei diesen Beispielen wird ein Cloud Storage-Bucket verwendet, um die eingehenden Audio-Rohdaten für den Transkriptionsprozess mit langer Ausführungszeit zu speichern. Ein Beispiel für eine typische Antwort des longrunningrecognize
-Vorgangs finden Sie in der Referenzdokumentation.
Protokoll
Ausführliche Informationen finden Sie unter dem API-Endpunkt speech:longrunningrecognize
.
Für eine synchrone Spracherkennung senden Sie eine POST
-Anfrage und geben den entsprechenden Anfragetext an. Das folgende Beispiel zeigt eine POST
-Anfrage mit curl
. In diesem Beispiel wird die Google Cloud CLI verwendet, um ein Zugriffstoken zu generieren. Eine Anleitung zur Installation der gcloud CLI finden Sie in der Kurzanleitung.
curl -X POST \ -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'config': { 'language_code': 'en-US' }, 'audio':{ 'uri':'gs://cloud-samples-tests/speech/brooklyn.flac' } }" "https://speech.googleapis.com/v1/speech:longrunningrecognize"
Weitere Informationen zum Konfigurieren des Anfragetexts finden Sie in der Referenzdokumentation zu RecognitionConfig und RecognitionAudio.
Wenn die Anfrage erfolgreich ist, gibt der Server den HTTP-Statuscode 200 OK
und die Antwort im JSON-Format zurück:
{ "name": "7612202767953098924" }
Dabei ist name
der Name des lang andauernden Vorgangs, der für die Anfrage erstellt wurde.
Warten Sie, bis die Verarbeitung abgeschlossen ist. Die Verarbeitungszeit hängt vom Quell-Audio ab. In den meisten Fällen erhalten Sie Ergebnisse in der Hälfte der Zeit, die das Quell-Audio lang ist.
Sie können den Status Ihres lang andauernden Vorgangs abrufen. Stellen Sie dazu eine GET
-Anfrage an den Endpunkt https://speech.googleapis.com/v1/operations/
. Ersetzen Sie your-operation-name
durch den name
, der von Ihrer longrunningrecognize
-Anfrage zurückgegeben wurde.
curl -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \ -H "Content-Type: application/json; charset=utf-8" \ "https://speech.googleapis.com/v1/operations/your-operation-name"
Wenn die Anfrage erfolgreich ist, gibt der Server den HTTP-Statuscode 200 OK
und die Antwort im JSON-Format zurück:
{ "name": "7612202767953098924", "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "progressPercent": 100, "startTime": "2017-07-20T16:36:55.033650Z", "lastUpdateTime": "2017-07-20T16:37:17.158630Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [ { "alternatives": [ { "transcript": "how old is the Brooklyn Bridge", "confidence": 0.96096134, } ] }, { "alternatives": [ { ... } ] } ] } }
Wenn der Vorgang nicht abgeschlossen ist, können Sie den Endpunkt abfragen. Dazu stellen Sie wiederholt eine GET
-Anfrage, bis das Attribut done
der Antwort true
ist.
gcloud
Ausführliche Informationen finden Sie unter dem Befehl recognize-long-running
.
Verwenden Sie zum Ausführen der asynchronen Spracherkennung das Google Cloud CLI und geben Sie den Pfad einer lokalen Datei oder einer Google Cloud Storage-URL an.
gcloud ml speech recognize-long-running \ 'gs://cloud-samples-tests/speech/brooklyn.flac' \ --language-code='en-US' --async
Wenn die Anfrage erfolgreich ist, gibt der Server die ID des lang laufenden Vorgangs im JSON-Format zurück.
{ "name": OPERATION_ID }
Sie können dann mit dem folgenden Befehl Informationen zum Vorgang abrufen:
gcloud ml speech operations describe OPERATION_ID
Außerdem können Sie den Vorgang mit dem folgenden Befehl so lange abfragen, bis er abgeschlossen ist:
gcloud ml speech operations wait OPERATION_ID
Nach Abschluss des Vorgangs gibt der Vorgang ein Transkript der Audiodaten im JSON-Format zurück.
{ "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [ { "alternatives": [ { "confidence": 0.9840146, "transcript": "how old is the Brooklyn Bridge" } ] } ] }
Go
Informationen zum Installieren und Verwenden der Clientbibliothek für Speech-to-Text finden Sie unter Speech-to-Text-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Speech-to-Text Go API.
Richten Sie zur Authentifizierung bei Speech-to-Text Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Java
Informationen zum Installieren und Verwenden der Clientbibliothek für Speech-to-Text finden Sie unter Speech-to-Text-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Speech-to-Text Java API.
Richten Sie zur Authentifizierung bei Speech-to-Text Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Informationen zum Installieren und Verwenden der Clientbibliothek für Speech-to-Text finden Sie unter Speech-to-Text-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Speech-to-Text Node.js API.
Richten Sie zur Authentifizierung bei Speech-to-Text Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zum Installieren und Verwenden der Clientbibliothek für Speech-to-Text finden Sie unter Speech-to-Text-Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Speech-to-Text Python API.
Richten Sie zur Authentifizierung bei Speech-to-Text Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Weitere Sprachen
C#: Folgen Sie der Anleitung zur Einrichtung von C# auf der Seite "Clientbibliotheken" und rufen Sie dann die Speech-to-Text-Referenzdokumentation für .NET auf.
PHP: Folgen Sie der Anleitung zur Einrichtung von PHP auf der Seite "Clientbibliotheken" und rufen Sie dann die Speech-to-Text-Referenzdokumentation für PHP auf.
Ruby: Folgen Sie der Anleitung zur Einrichtung von Ruby auf der Seite "Clientbibliotheken" und rufen Sie dann die Speech-to-Text-Referenzdokumentation für Ruby auf.
Transkriptionsergebnisse in einen Cloud Storage-Bucket hochladen
Speech-to-Text unterstützt das Hochladen von lang andauernden Erkennungsergebnissen direkt in einen Cloud Storage-Bucket. Wenn Sie dieses Feature mit Cloud Storage-Triggern implementieren, können Cloud Storage-Uploads Benachrichtigungen auslösen, die Cloud Functions aufrufen, sodass Speech-to-Text nicht mehr für Erkennungsergebnisse abgefragt werden muss.
Wenn Sie möchten, dass die Ergebnisse in einen Cloud Storage-Bucket hochgeladen werden, geben Sie in Ihrer Erkennungsanfrage mit langer Ausführungszeit die optionale Ausgabekonfiguration TranscriptOutputConfig
an.
message TranscriptOutputConfig {
oneof output_type {
// Specifies a Cloud Storage URI for the recognition results. Must be
// specified in the format: `gs://bucket_name/object_name`
string gcs_uri = 1;
}
}
Protokoll
Ausführliche Informationen finden Sie unter dem API-Endpunkt longrunningrecognize
.
Im folgenden Beispiel wird gezeigt, wie eine POST
-Anfrage mit curl
gesendet wird, wobei im Anfragetext der Pfad zu einem Cloud Storage-Bucket angegeben wird. Die Ergebnisse werden an diesen Speicherort als JSON
-Datei hochgeladen, in der SpeechRecognitionResult
gespeichert ist.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'config': {...}, 'output_config': { 'gcs_uri':'gs://bucket/result-output-path.json' }, 'audio': { 'uri': 'gs://bucket/audio-path' } }" "https://speech.googleapis.com/v1p1beta1/speech:longrunningrecognize"
Die LongRunningRecognizeResponse
enthält den Pfad zum Cloud Storage-Bucket, an den hochgeladen werden soll. Wenn der Upload fehlschlägt, wird ein Ausgabefehler zurückgegeben. Wenn bereits eine Datei mit diesem Namen vorhanden ist, schreibt der Upload die Ergebnisse in eine neue Datei mit einem Zeitstempel als Suffix.
{ ... "metadata": { ... "outputConfig": {...} }, ... "response": { ... "results": [...], "outputConfig": { "gcs_uri":"gs://bucket/result-output-path" }, "outputError": {...} } }
Jetzt testen
Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie einfach ein Konto, um die Leistungsfähigkeit von Speech-to-Text in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
Speech-to-Text kostenlos testen