Quando envia dados de áudio para a API Speech-to-Text, pode enviar os
dados diretamente (no campo
content
do pedido) ou
fazer com que a API execute o reconhecimento remotamente em dados armazenados num contentor do Cloud Storage.
Só pode enviar dados diretamente no campo content
para o
reconhecimento síncrono
se os seus dados de áudio tiverem um máximo de 60 segundos e 10 MB. Todos os dados de áudio no campo content
têm de estar no formato Base64. Esta página descreve como
converter áudio de um ficheiro binário em dados codificados em base64.
Se os seus dados de áudio excederem 60 segundos ou 10 MB, têm de ser armazenados num contentor do Cloud Storage para serem enviados para reconhecimento. Pode analisá-lo de forma assíncrona sem o converter para o formato base64. Consulte a documentação de reconhecimento assíncrono para ver detalhes.
Usar a linha de comandos
Num pedido gRPC, pode simplesmente escrever dados binários diretamente; no entanto, o JSON é usado quando faz um pedido REST. O JSON é um formato de texto que não suporta diretamente dados binários, pelo que tem de converter esses dados binários em texto através da codificação Base64.
A maioria dos ambientes de programação contém um utilitário base64
nativo para codificar um ficheiro binário em dados de texto ASCII. Para codificar um ficheiro:
Linux
Codifique o ficheiro através da ferramenta de linha de comandos base64
, certificando-se de que
impede a mudança de linha com a marca -w 0
:
base64 INPUT_FILE -w 0 > OUTPUT_FILE
macOS
Codifique o ficheiro com a ferramenta de linha de comandos base64
:
base64 -i INPUT_FILE -o OUTPUT_FILE
Windows
Codifique o ficheiro com a ferramenta Base64.exe
:
Base64.exe -e INPUT_FILE > OUTPUT_FILE
PowerShell
Codifique o ficheiro através do método Convert.ToBase64String
:
[Convert]::ToBase64String([IO.File]::ReadAllBytes("./INPUT_FILE")) > OUTPUT_FILE
Crie um ficheiro de pedido JSON, incorporando os dados codificados em base64:
JSON
{ "config": { "encoding": "FLAC", "sampleRateHertz": 16000, "languageCode": "en-US" }, "audio": { "content": "ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv..." } }
Usar bibliotecas de cliente
Incorporar dados binários em pedidos através de editores de texto não é desejável nem prático. Na prática, vai incorporar ficheiros codificados em base64 no código do cliente. Todas as linguagens de programação suportadas têm mecanismos incorporados para codificar conteúdo em base64.
Python
Em Python, codifique ficheiros de áudio em base64 da seguinte forma:
# 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
No Node.js, codifique os ficheiros de áudio em base64 da seguinte forma, em que audioFile
é o caminho para o ficheiro codificado em áudio.
const fs = require('fs');
const content = fs.readFileSync(audioFile).toString('base64');
Java
Em Java, use o método estático encodeBase64
em org.apache.commons.codec.binary.Base64
para codificar ficheiros binários em base64:
// Import the Base64 encoding library.
import org.apache.commons.codec.binary.Base64;
// Encode the speech.
byte[] encodedAudio = Base64.encodeBase64(audio.getBytes());