תמלול אודיו

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

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

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

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

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

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

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

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

בדוגמה הבאה מתומלל דיבור מקובץ אודיו באמצעות מודל ברירת המחדל של 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
    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_v1p1beta1.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)
        print("Got token: ")
        print(creds.token)
      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_v1p1beta1.RecognitionAudio()
      audio.content = base64.standard_b64decode(content)
      config = speech_v1p1beta1.RecognitionConfig()
      config.encoding= speech_v1p1beta1.RecognitionConfig.AudioEncoding.ENCODING
      config.sample_rate_hertz=RATE_HERTZ
      config.language_code="LANGUAGE_CODE"
      config.audio_channel_count=CHANNEL_COUNT
    
      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: נקודת הקצה של המרת הדיבור לטקסט שבה אתם משתמשים בארגון. למידע נוסף, אפשר לראות את סטטוס השירות ונקודות הקצה.
    • PROJECT_ID: מזהה הפרויקט.
    • BASE64_ENCODED_AUDIO: בייטים של נתוני אודיו בקידוד Base64. המחרוזת הזו מתחילה בתווים שנראים דומים ל-ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv. מידע נוסף זמין במאמר RecognitionAudio.
    • ENCODING: הקידוד של נתוני האודיו שנשלחים בבקשה, כמו LINEAR16. מידע נוסף זמין במאמר AudioEncoding.
    • RATE_HERTZ: קצב הדגימה בהרץ של נתוני האודיו שנשלחים בבקשה, כמו 16000. מידע נוסף זמין במאמר RecognitionConfig.
    • LANGUAGE_CODE: השפה של האודיו שסופק כתג שפה מסוג BCP-47. כאן אפשר לעיין ברשימת השפות הנתמכות ובקודים של השפות האלה.
    • CHANNEL_COUNT: מספר הערוצים בנתוני האודיו של הקלט, כמו 1. מידע נוסף זמין במאמר RecognitionConfig.
  5. שומרים את סקריפט Python.

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

    python SCRIPT_NAME
    

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