Konten audio encoding base64

Saat mengirim data audio ke Speech-to-Text API, Anda dapat mengirim data secara langsung (dalam kolom content permintaan) atau buat API melakukan pengenalan dari jarak jauh pada data yang disimpan di bucket Cloud Storage. Anda dapat mengirim data secara langsung di kolom content untuk pengenalan sinkron hanya jika data audio Anda maksimum 60 detik dan 10 MB. Setiap data audio di kolom content harus dalam format base64. Halaman ini menjelaskan cara mengonversi audio dari file biner ke data berenkode base64.

Jika data audio Anda melebihi 60 detik atau 10 MB, data tersebut harus disimpan di bucket Cloud Storage agar dapat dikirim untuk pengenalan. Anda dapat menganalisisnya secara asinkron tanpa mengonversinya ke format base64. Lihat dokumentasi pengenalan asinkron untuk mengetahui detailnya.

Menggunakan command line

Dalam permintaan gRPC, Anda cukup menulis data biner secara langsung; tetapi JSON digunakan saat membuat permintaan REST. JSON adalah format teks yang tidak mendukung data biner secara langsung, sehingga Anda harus mengonversi data biner tersebut menjadi teks menggunakan encoding Base64.

Sebagian besar lingkungan pengembangan berisi utilitas base64 native untuk mengenkode biner ke dalam data teks ASCII. Untuk mengenkode file:

Linux

Enkode file menggunakan alat command line base64, yang memastikan untuk mencegah penggabungan baris menggunakan flag -w 0:

base64 INPUT_FILE -w 0 > OUTPUT_FILE

macOS

Enkode file menggunakan alat command line base64:

base64 -i INPUT_FILE -o OUTPUT_FILE

Windows

Enkode file menggunakan alat Base64.exe:

Base64.exe -e INPUT_FILE > OUTPUT_FILE

PowerShell

Enkode file menggunakan metode Convert.ToBase64String:

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

Buat file permintaan JSON, dengan menyisipkan data berenkode base64:

JSON

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

Menggunakan library klien

Menyematkan data biner ke dalam permintaan melalui editor teks bukanlah hal yang diinginkan atau praktis. Dalam praktiknya, Anda akan menyematkan file berenkode base64 dalam kode klien. Semua bahasa pemrograman yang didukung memiliki mekanisme bawaan untuk konten encoding base64.

Python

Di Python, base64 mengenkode file audio sebagai berikut:

# 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

Di Node.js, base64 mengenkode file audio sebagai berikut, dengan audioFile adalah jalur ke file audio terenkode.

const fs = require('fs');
const content = fs.readFileSync(audioFile).toString('base64');

Java

Di Java, gunakan metode statis encodeBase64 dalam org.apache.commons.codec.binary.Base64 untuk mengenkode file biner ke base64:

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

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