Wenn Sie Audiodaten an die Speech-to-Text API senden, können Sie die Daten entweder direkt (im Feld content
der Anfrage) senden oder die API so einrichten, dass sie remote eine Spracherkennung für Daten durchführt, die in einem Cloud Storage-Bucket gespeichert sind.
Daten können zur synchronen Erkennung
nur direkt im Feld content
gesendet werden, wenn sie maximal 60 Sekunden und 10 MB groß sind. Alle Audiodaten im Feld content
müssen das base64-Format haben. Auf dieser Seite wird beschrieben, wie Audiodaten aus einer Binärdatei in base64-codierte Daten umgewandelt werden.
Wenn Ihre Audiodaten 60 Sekunden oder 10 MB überschreiten, müssen sie in einem Cloud Storage-Bucket gespeichert werden, damit sie zur Erkennung gesendet werden können. Sie können sie asynchron analysieren, ohne sie in das base64-Format zu konvertieren. Weitere Informationen finden Sie in der Dokumentation zur asynchronen Erkennung.
Befehlszeile verwenden
Innerhalb einer gRPC-Anfrage können Sie die Binärdaten einfach direkt ausschreiben. Bei einer REST-Anfrage müssen Sie jedoch JSON verwenden. JSON ist ein Textformat, das Binärdaten nicht direkt unterstützt, weshalb diese mit der base64-Codierung in Text umgewandelt werden müssen.
Die meisten Entwicklungsumgebungen enthalten ein natives base64
-Dienstprogramm, um ein Binärbild als ASCII-Textdaten zu codieren. So codieren Sie eine Datei:
Linux
Codieren Sie die Datei mithilfe des base64
-Befehlszeilentools und achten Sie darauf, Zeilenumbrüche mithilfe des Flags -w 0
zu verhindern:
base64 INPUT_FILE -w 0 > OUTPUT_FILE
macOS
Codieren Sie die Datei mit dem base64
-Befehlszeilentool:
base64 -i INPUT_FILE -o OUTPUT_FILE
Windows
Codieren Sie die Datei mit dem Tool Base64.exe
:
Base64.exe -e INPUT_FILE > OUTPUT_FILE
PowerShell
Codieren Sie die Datei mit der Methode Convert.ToBase64String
:
[Convert]::ToBase64String([IO.File]::ReadAllBytes("./INPUT_FILE")) > OUTPUT_FILE
Erstellen Sie eine JSON-Anfragedatei, die die base64-codierten Daten enthält:
JSON
{ "config": { "encoding": "FLAC", "sampleRateHertz": 16000, "languageCode": "en-US" }, "audio": { "content": "ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv..." } }
Clientbibliotheken verwenden
Binäre Daten mit Texteditoren in Anfragen einzubetten, ist weder wünschenswert noch praktisch. In der Praxis betten Sie base64-codierte Dateien in den Clientcode ein. Alle unterstützten Programmiersprachen haben integrierte Mechanismen für die base64-codierte Inhalte:
Python
So codieren Sie Audiodateien mit base64 in Python:
# Import the base64 encoding library.
import base64
# Pass the audio data to an encoding function.
def encode_audio(audio):
audio_content = audio.read()
return base64.b64encode(audio_content)
Node.js
So codieren Sie Audiodateien mit base64 in Node.js, wobei audioFile
der Pfad zur audiocodierten Datei ist:
const fs = require('fs');
const content = fs.readFileSync(audioFile).toString('base64');
Java
Mit der statischen Methode encodeBase64
in org.apache.commons.codec.binary.Base64
codieren Sie in Java Binärdateien in base64:
// Import the Base64 encoding library.
import org.apache.commons.codec.binary.Base64;
// Encode the speech.
byte[] encodedAudio = Base64.encodeBase64(audio.getBytes());