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 Google 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 Google 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.
Base64-codierte Audiodaten einbetten
Audiodaten sind binäre Daten. 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.
So codieren Sie eine Audiodatei mit base64:
Linux
- Codieren Sie die Audiodatei mit dem base64-Befehlszeilentool und achten Sie darauf, dass Zeilenumbrüche verhindert werden. Verwenden Sie dazu das Flag
-w 0
:
$ base64 source_audio_file -w 0 > dest_audio_file
2. Erstellen Sie eine JSON-Anfragedatei, die das base64-codierte Audio im Feld content
des Anfragebereichs enthält:
{ "config": { "encoding":"FLAC", "sampleRateHertz":16000, "languageCode":"en-US" }, "audio": { "content": "ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv..." } }
Mac OSX
- Codieren Sie die Audiodatei mit dem Befehlszeilentool base64:
$ base64 source_audio_file > dest_audio_file
2. Erstellen Sie eine JSON-Anfragedatei, die das base64-codierte Audio im Feld content
des Anfragebereichs enthält:
{ "config": { "encoding":"FLAC", "sampleRateHertz":16000, "languageCode":"en-US" }, "audio": { "content": "ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv..." } }
Windows
- Codieren Sie die Audiodatei mit dem Befehlszeilentool Base64.exe:
C:> Base64.exe -e source_audio_file > dest_audio_file
2. Erstellen Sie eine JSON-Anfragedatei, die das base64-codierte Audio im Feld content
des Anfragebereichs enthält:
{ "config": { "encoding":"FLAC", "sampleRateHertz":16000, "languageCode":"en-US" }, "audio": { "content": "ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv..." } }
Audioinhalte programmgesteuert einbetten
Binäre Audiodaten 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
die binärcodierten Audiodaten sind:
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());