Codifica Base64 dei contenuti audio

Quando invii dati audio all'API Speech-to-Text puoi inviare direttamente (all'interno del content) oppure fare in modo che l'API esegua il riconoscimento in remoto sui dati archiviati in un bucket Cloud Storage. Puoi inviare dati direttamente nel campo content per riconoscimento sincrono solo se i dati audio hanno una durata massima di 60 secondi e 10 MB. Qualsiasi audio i dati nel campo content devono essere in formato base64. Questa pagina descrive come convertire l'audio da un file binario in dati codificati in base64.

Se i dati audio superano i 60 secondi o i 10 MB, devono essere archiviati in una bucket Cloud Storage per essere inviati per il riconoscimento. Puoi analizzare in modo asincrono senza convertirlo 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 i dati binari; ma quando si effettua una richiesta REST viene usato JSON. JSON è un formato di testo che non supporta direttamente i dati binari, quindi dovrete convertire tali dati binari in testo utilizzando Codifica Base64.

La maggior parte degli ambienti di sviluppo contiene un'utilità base64 nativa 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 evitare il ritorno a capo automatico usando 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:

[Convert]::ToBase64String([IO.File]::ReadAllBytes("./INPUT_FILE")) > OUTPUT_FILE

Crea un file di richiesta JSON che includa i dati con codifica Base64:

JSON

{
  "config": {
    "encoding": "FLAC",
    "sampleRateHertz": 16000,
    "languageCode": "en-US"
  },
  "audio": {
    "content": "ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv..."
  }
}

Utilizzo delle librerie client

Non incorporare dati binari nelle richieste tramite editor di testo desiderabile o 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, la codifica Base64 dei file audio avviene 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, i file audio in base64 codificano come segue, 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 Da org.apache.commons.codec.binary.Base64 a base64 codifica i file binari:

// Import the Base64 encoding library.
import org.apache.commons.codec.binary.Base64;

// Encode the speech.
byte[] encodedAudio = Base64.encodeBase64(audio.getBytes());