תמלול אודיו

שירות Speech-to-Text של Vertex AI ב-Google Distributed Cloud (GDC)‎ עם air gap מזהה דיבור מקובצי אודיו. הכלי "המרת דיבור לטקסט" ממיר את האודיו שזוהה לתמלילי טקסט באמצעות ה-API שעבר אימון מראש.

בדף הזה מוסבר איך לתמלל קובצי אודיו לטקסט באמצעות Speech-to-Text API ב-Distributed Cloud.

לפני שמתחילים

כדי לתמלל קובצי אודיו, צריך לבקש מהאדמין את ההרשאות הנדרשות.

בקשת תפקידים ב-IAM

כדי לתמלל אודיו באמצעות מודל ברירת המחדל של Speech-to-Text, צריך לבקש מהאדמין של הפרויקט ב-IAM את התפקיד מפתח AI Speech (ai-speech-developer) במרחב השמות של הפרויקט.

למידע נוסף על התפקיד הזה, קראו את המאמר הכנת הרשאות IAM.

כדי להתחיל להשתמש ב-Speech-to-Text API, צריך פרויקט שבו ה-API מופעל ופרטי כניסה מתאימים. אפשר גם להתקין ספריות לקוח שיעזרו לכם לבצע קריאות ל-API. מידע נוסף זמין במאמר הגדרת פרויקט לזיהוי דיבור.

תמלול אודיו באמצעות מודל ברירת המחדל

המרת דיבור לטקסט (STT) מבצעת זיהוי דיבור. אתם שולחים את קובץ האודיו שאתם רוצים לזהות בו דיבור ישירות כתוכן בבקשת ה-API. המערכת מחזירה את התמליל של הטקסט בתגובה מה-API.

כששולחים בקשה לזיהוי דיבור, צריך לספק אובייקט הגדרה של RecognitionConfig. האובייקט הזה אומר ל-API איך לעבד את נתוני האודיו ואיזה סוג פלט אתם מצפים לקבל. אם לא מציינים מודל באופן מפורש באובייקט ההגדרות האישיות, Speech-to-Text בוחר מודל כברירת מחדל.

מידע נוסף זמין במאמרי העזרה של ה-API של Speech.

בדוגמה הבאה מתבצע תמלול של דיבור מקובץ אודיו באמצעות מודל ברירת המחדל של Speech-to-Text:

Python

כדי להשתמש בשירות Speech-to-Text מסקריפט Python לתמלול דיבור מקובץ אודיו:

  1. מתקינים את הגרסה העדכנית של ספריית הלקוח של Speech-to-Text.

  2. הגדרת משתני הסביבה הנדרשים בסקריפט של Python.

  3. מאמתים את בקשת ה-API.

  4. מוסיפים את הקוד הבא לסקריפט Python שיצרתם:

    import base64
    
    from google.cloud import speech_v1p1beta1 as speech
    import google.auth
    from google.auth.transport import requests
    from google.api_core.client_options import ClientOptions
    
    audience="https://ENDPOINT:443"
    api_endpoint="ENDPOINT:443"
    
    def get_client(creds):
      opts = ClientOptions(api_endpoint=api_endpoint)
      return speech.SpeechClient(credentials=creds, client_options=opts)
    
    def main():
      creds = None
      try:
        creds, project_id = google.auth.default()
        creds = creds.with_gdch_audience(audience)
        req = requests.Request()
        creds.refresh(req)
      except Exception as e:
        print("Caught exception" + str(e))
        raise e
      return creds
    
    def speech_func(creds):
      tc = get_client(creds)
    
      content="BASE64_ENCODED_AUDIO"
    
      audio = speech.RecognitionAudio(
          content=base64.standard_b64decode(content)
      )
      config = speech.RecognitionConfig(
          encoding=speech.RecognitionConfig.AudioEncoding.ENCODING,
          sample_rate_hertz=RATE_HERTZ,
          audio_channel_count=CHANNEL_COUNT,
          language_code="LANGUAGE_CODE",
      )
    
      metadata = [("x-goog-user-project", "projects/PROJECT_ID")]
      resp = tc.recognize(config=config, audio=audio, metadata=metadata)
      print(resp)
    
    if __name__=="__main__":
      creds = main()
      speech_func(creds)
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫ENDPOINT: נקודת הקצה של Speech-to-Text שבה משתמשים בארגון. למידע נוסף על סטטוס השירות ונקודות הקצה
    • PROJECT_ID: מזהה הפרויקט.
    • BASE64_ENCODED_AUDIO: הבייטים של נתוני האודיו שמקודדים בייצוג Base64. המחרוזת הזו מתחילה בתווים שנראים כמו ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv. מידע נוסף זמין במאמר RecognitionAudio.
    • ‫ENCODING: הקידוד של נתוני האודיו שנשלחו בבקשה, למשל LINEAR16. מידע נוסף זמין במאמר AudioEncoding.
    • ‫RATE_HERTZ: תדירות הדגימה בהרץ (8000-48000) של נתוני האודיו שנשלחו בבקשה, למשל 16000. חובה לקידודים LINEAR16,‏ FLAC ו-MULAW (כולל קובצי WAV). מידע נוסף זמין במאמר RecognitionConfig.
    • ‫LANGUAGE_CODE: שפת האודיו שסופק, כתג שפה בתקן BCP-47, למשל en-US. כאן אפשר לעיין ברשימת השפות הנתמכות וקודי השפה שלהן.
    • ‫CHANNEL_COUNT: מספר הערוצים בנתוני האודיו של הקלט (1-8), למשל 1 לאודיו מונו. צריך להגדיר את audio_channel_count לקידודים LINEAR16,‏ FLAC ו-MULAW. מידע נוסף זמין במאמר RecognitionConfig.
  5. שומרים את הסקריפט של Python.

  6. מריצים את הסקריפט של Python כדי לתמלל את האודיו:

    python SCRIPT_NAME
    

    מחליפים את SCRIPT_NAME בשם שנתתם לסקריפט Python, לדוגמה speech.py.