Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Quando invii dati audio all'API Speech-to-Text, puoi inviarli direttamente (nel campo content della richiesta) o chiedere all'API di eseguire il riconoscimento da remoto sui dati archiviati in un bucket Cloud Storage specificando l'oggetto di archiviazione nel campo uri della richiesta.
Eventuali dati audio nel campo content delle richieste HTTP devono essere in formato base64.
Questa pagina descrive come convertire l'audio da un file binario in dati con codifica base64.
Utilizzo della riga di comando
All'interno di una richiesta gRPC, puoi semplicemente scrivere direttamente i dati binari.
Tuttavia, JSON viene utilizzato quando viene effettuata una richiesta REST. JSON è un formato di testo che non supporta direttamente i dati binari, pertanto dovrai convertirli in testo utilizzando la codifica Base64.
La maggior parte degli ambienti di sviluppo contiene un'utilità base64 nativa per codificare un file binario in dati di testo ASCII. Per codificare un file:
Linux
Codifica il file utilizzando lo strumento a riga di comando base64, assicurandoti di
impedire il rientro a capo utilizzando il flag -w 0:
base64 INPUT_FILE -w 0 > OUTPUT_FILE
macOS
Codifica il file utilizzando lo strumento a riga di comando base64:
base64 -i INPUT_FILE -o OUTPUT_FILE
Windows
Codifica il file utilizzando lo strumento Base64.exe:
Base64.exe -e INPUT_FILE > OUTPUT_FILE
PowerShell
Codifica il file utilizzando il metodo Convert.ToBase64String:
L'inserimento di dati binari nelle richieste tramite editor di testo non è né auspicabile né pratico. In pratica, incorporerai i file con codifica base64
nel codice client. Tutti i linguaggi di programmazione supportati dispongono di meccanismi integrati per la codifica dei contenuti in Base64.
Python
In Python, la codifica base64 dei file audio avviene nel seguente modo:
# Import the base64 encoding library.importbase64# Pass the audio data to an encoding function.defencode_audio(audio_file):withopen(audio_file,"rb")asf:encoded_content=base64.b64encode(f.read())returnencoded_content
Node.js
// Read the file into memory.varfs=require('fs');varaudioFile=fs.readFileSync('/full/path/to/audio/file.wav');// Convert the audio data to a Buffer and base64 encode it.varencoded=Buffer.from(audioFile).toString('base64');
Java
// Import the Base64 encoding library.importorg.apache.commons.codec.binary.Base64;// Encode the audio.byte[]audioData=Base64.encodeBase64(audioFile.getBytes());StringencodedString=Base64.getEncoder().encodeToString(audioData);
Vai
import("bufio""encoding/base64""io""os")// Open audio file.f,_:=os.Open("/full/path/to/audio/file.wav")// Read entire audio into byte slice.reader:=bufio.NewReader(f)content,_:=io.ReadAll(reader)// Encode audio as base64.base64.StdEncoding.EncodeToString(content)
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[],[],null,["# Base64 encoding audio content\n\nWhen you send audio data to the Speech-to-Text API, you can either send the\ndata directly (within the request's\n[`content`](/speech-to-text/v2/docs/reference/rpc/google.cloud.speech.v2#google.cloud.speech.v2.RecognizeRequest.FIELDS.bytes.google.cloud.speech.v2.RecognizeRequest.content)\nfield) or have the API perform recognition remotely on data stored in a\nCloud Storage bucket by specifying the storage object in the request's\n[`uri`](/speech-to-text/v2/docs/reference/rpc/google.cloud.speech.v2#google.cloud.speech.v2.RecognizeRequest.FIELDS.string.google.cloud.speech.v2.RecognizeRequest.uri)\nfield.\n\nAny audio data in the `content` field in HTTP requests must be in base64 format.\nThis page describes how to convert audio from a binary file to base64-encoded data.\n| **Note:** For clients using client libraries or a gRPC client, audio content should be in binary format, not base64 format.\n| **Note:** Check the [quotas and limits](/speech-to-text/v2/quotas) documentation for the content limits on inline audio.\n\nUsing the command line\n----------------------\n\nWithin a gRPC request, you can simply write binary data out directly;\nhowever, JSON is used when making a REST request. JSON\nis a text format that does not directly support binary data, so you will need to\nconvert such binary data into text using\n[Base64](https://en.wikipedia.org/wiki/Base64) encoding.\n\nMost development environments contain a native `base64` utility to\nencode a binary into ASCII text data. To encode a file: \n\n### Linux\n\nEncode the file using the `base64` command line tool, making sure to\nprevent line-wrapping by using the `-w 0` flag: \n\n```\nbase64 INPUT_FILE -w 0 \u003e OUTPUT_FILE\n```\n\n### macOS\n\nEncode the file using the `base64` command line tool: \n\n```\nbase64 -i INPUT_FILE -o OUTPUT_FILE\n```\n\n### Windows\n\nEncode the file using the `Base64.exe` tool: \n\n```\nBase64.exe -e INPUT_FILE \u003e OUTPUT_FILE\n```\n\n### PowerShell\n\nEncode the file using the `Convert.ToBase64String` method: \n\n```\n[Convert]::ToBase64String([IO.File]::ReadAllBytes(\"./INPUT_FILE\")) \u003e OUTPUT_FILE\n```\n\nCreate a JSON request file, inlining the base64-encoded data: \n\n### JSON\n\n\n {\n \"recognizer\": \"projects/\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e/locations/global/recognizers/_\",\n \"content\": \"ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv...\"\n }\n\n\u003cbr /\u003e\n\nUsing client libraries\n----------------------\n\nEmbedding binary data into requests through text editors is neither\ndesirable or practical. In practice, you will be embedding base64 encoded files\nwithin client code. All supported programming languages have built-in mechanisms\nfor base64 encoding content.\n\n\n### Python\n\nIn Python, base64 encode audio files as follows: \n\n # Import the base64 encoding library.\n import base64\n\n # Pass the audio data to an encoding function.\n def encode_audio(audio_file):\n with open(audio_file, \"rb\") as f:\n encoded_content = base64.b64encode(f.read())\n return encoded_content\n\n### Node.js\n\n // Read the file into memory.\n var fs = require('fs');\n var audioFile = fs.readFileSync('\u003cvar translate=\"no\"\u003e/full/path/to/audio/file.wav\u003c/var\u003e');\n\n // Convert the audio data to a Buffer and base64 encode it.\n var encoded = Buffer.from(audioFile).toString('base64');\n\n### Java\n\n // Import the Base64 encoding library.\n import org.apache.commons.codec.binary.Base64;\n\n // Encode the audio.\n byte[] audioData = Base64.encodeBase64(audioFile.getBytes());\n String encodedString = Base64.getEncoder().encodeToString(audioData);\n\n### Go\n\n import (\n \"bufio\"\n \"encoding/base64\"\n \"io\"\n \"os\"\n )\n\n // Open audio file.\n f, _ := os.Open(\"\u003cvar translate=\"no\"\u003e/full/path/to/audio/file.wav\u003c/var\u003e\")\n\n // Read entire audio into byte slice.\n reader := bufio.NewReader(f)\n content, _ := io.ReadAll(reader)\n\n // Encode audio as base64.\n base64.StdEncoding.EncodeToString(content)\n\n\u003cbr /\u003e"]]