כששולחים נתוני אודיו ל-Cloud Speech-to-Text API, אפשר לשלוח את הנתונים ישירות (בשדה content של הבקשה) או לבקש מה-API לבצע זיהוי מרחוק של נתונים שמאוחסנים בקטגוריה של Cloud Storage.
אתם יכולים לשלוח נתונים ישירות בשדה content של זיהוי סינכרוני
בלבד אם נתוני האודיו שלכם הם באורך של עד 60 שניות ובגודל של עד 10MB. כל נתוני האודיו בשדה content חייבים להיות בפורמט Base64. בדף הזה מוסבר איך להמיר אודיו מקובץ בינארי לנתונים בקידוד Base64.
אם נתוני האודיו שלכם גדולים מ-60 שניות או מ-10MB, צריך לאחסן אותם בקטגוריה של Cloud Storage כדי לשלוח אותם לזיהוי. אפשר לנתח אותו באופן אסינכרוני בלי להמיר אותו לפורמט base64. פרטים נוספים מופיעים במסמכי התיעוד בנושא זיהוי אסינכרוני.
שימוש בשורת הפקודה
בבקשת gRPC, אפשר פשוט לכתוב נתונים בינאריים ישירות. עם זאת, כשמבצעים בקשת REST, משתמשים ב-JSON. JSON הוא פורמט טקסט שלא תומך ישירות בנתונים בינאריים, ולכן תצטרכו להמיר נתונים בינאריים כאלה לטקסט באמצעות קידוד Base64.
רוב סביבות הפיתוח מכילות כלי עזר מקורי של base64 לקידוד קובץ בינארי לנתוני טקסט ב-ASCII. כדי לקודד קובץ:
Linux
מקודדים את הקובץ באמצעות הכלי base64 בשורת הפקודה, ומוודאים שמונעים גלישת שורות באמצעות הדגל -w 0:
base64 INPUT_FILE -w 0 > OUTPUT_FILE
macOS
מקודדים את הקובץ באמצעות הכלי base64 של שורת הפקודה:
base64 -i INPUT_FILE -o OUTPUT_FILE
Windows
מקודדים את הקובץ באמצעות הכלי Base64.exe:
Base64.exe -e INPUT_FILE > OUTPUT_FILE
PowerShell
מבצעים קידוד של הקובץ באמצעות ה-method Convert.ToBase64String:
[Convert]::ToBase64String([IO.File]::ReadAllBytes("./INPUT_FILE")) > OUTPUT_FILE
יוצרים קובץ בקשת JSON, ומוסיפים את הנתונים בקידוד base64:
JSON
{ "config": { "encoding": "FLAC", "sampleRateHertz": 16000, "languageCode": "en-US" }, "audio": { "content": "ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv..." } }
שימוש בספריות לקוח
הטמעה של נתונים בינאריים בבקשות באמצעות עורכי טקסט היא לא רצויה ולא מעשית. בפועל, תטמיעו קבצים בקידוד base64 בקוד הלקוח. לכל שפות התכנות הנתמכות יש מנגנונים מובנים לקידוד תוכן ב-Base64.
Python
ב-Python, מקודדים קובצי אודיו בקידוד Base64 באופן הבא:
# 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
ב-Node.js, מקודדים קובצי אודיו ב-base64 באופן הבא, כאשר audioFile
הוא הנתיב לקובץ האודיו המקודד.
const fs = require('fs');
const content = fs.readFileSync(audioFile).toString('base64');
Java
ב-Java, משתמשים בשיטה הסטטית encodeBase64 בתוך org.apache.commons.codec.binary.Base64 כדי לקודד קבצים בינאריים ב-Base64:
// Import the Base64 encoding library.
import org.apache.commons.codec.binary.Base64;
// Encode the speech.
byte[] encodedAudio = Base64.encodeBase64(audio.getBytes());