Quando invii dati audio all'API Speech-to-Text, puoi inviarli direttamente (nel campo content
della richiesta) o far eseguire all'API il riconoscimento da remoto per i dati archiviati in un bucket Cloud Storage.
Puoi inviare i dati direttamente nel campo content
per il riconoscimento sincrono
solo se i dati audio hanno una durata massima di 60 secondi e 10 MB. Tutti i dati audio nel campo content
devono essere in formato base64. In questa pagina viene descritto come convertire l'audio da un file binario in dati con codifica Base64.
Se i dati audio superano i 60 secondi o i 10 MB, devono essere archiviati in un bucket Cloud Storage per essere inviati per il riconoscimento. Puoi analizzarla in modo asincrono senza convertirla in formato base64. Per ulteriori dettagli, consulta la documentazione sul riconoscimento asincrono.
Utilizzo della riga di comando
All'interno di una richiesta gRPC, puoi semplicemente scrivere direttamente dati binari. Tuttavia, JSON viene utilizzato per effettuare una richiesta REST. JSON è un formato di testo che non supporta direttamente i dati binari, quindi dovrai convertire tali dati binari in testo utilizzando la codifica Base64.
La maggior parte degli ambienti di sviluppo contiene un'utilità base64
nativa per
codificare un programma 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 wrapping delle righe 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 con lo strumento Base64.exe
:
Base64.exe -e INPUT_FILE > OUTPUT_FILE
PowerShell
Codifica il file con il metodo Convert.ToBase64String
:
[Convert]::ToBase64String([IO.File]::ReadAllBytes("./INPUT_FILE")) > OUTPUT_FILE
Crea un file di richiesta JSON che incorpora i dati con codifica Base64:
JSON
{ "config": { "encoding": "FLAC", "sampleRateHertz": 16000, "languageCode": "en-US" }, "audio": { "content": "ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv..." } }
Utilizzo delle librerie client
Incorporare dati binari nelle richieste tramite editor di testo non è né desiderabile né pratico. In pratica, incorporerai i file con codifica Base64 nel codice client. Tutti i linguaggi di programmazione supportati hanno meccanismi integrati per i contenuti con codifica Base64.
Python
In Python, base64 codifica i file audio nel seguente modo:
# 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
In Node.js, la codifica dei file audio in base64 è indicata di seguito, dove audioFile
è il percorso del file con codifica audio.
const fs = require('fs');
const content = fs.readFileSync(audioFile).toString('base64');
Java
In Java, utilizza il metodo statico encodeBase64
all'interno di org.apache.commons.codec.binary.Base64
per codificare i file binari in base64:
// Import the Base64 encoding library.
import org.apache.commons.codec.binary.Base64;
// Encode the speech.
byte[] encodedAudio = Base64.encodeBase64(audio.getBytes());