תאימות ל-ChromeOS – גרסה 1.3 של מפרט רמקול

גרסה: 1.3
תאריך העדכון האחרון: 2024-09-06

Legend

פועל שמתאר מוצר פעולת פיתוח
"MUST" דרישה חובה לגבי מוצרים
"SHOULD" המלצה אופציונלית
"MAY" מומלץ

סקירה כללית

במסמך הזה מתוארות הדרישות של רמקול ומיקרופון עם חיבור USB ו-Bluetooth שתואמים ל-ChromeOS. המפרט הזה לא מיועד למוצרי WWCB, ולא למוצר שתוכנן ואושר יחד עם Chromebook.

USB

אבטחה

מתאם אלחוטי ‎2.4 GHz

  • המכשיר האלחוטי בתדר ‎2.4 GHz מבצע התאמה אוטומטית רק למקלט (דונגל) שמגיע בקופסה.
  • נדרשת פעולה של המשתמש (במכשיר או דרך אפליקציה) כדי להתאים אוזניות למקלט אחר או להתאים אוזניות חדשות למקלט קיים.
  • אם נדרשת אפליקציה כדי לשנות את ההתאמה של האוזניות או המקלט, האפליקציה צריכה לפעול ב-ChromeOS, למשל באמצעות תוסף. האפליקציה יכולה להיות גם אפליקציית אינטרנט באמצעות WebUSB/WebHID.
  • אם ההתאמה מיושמת באמצעות תוסף, לתוסף לא צריכה להיות גישה ליציאות USB. השימוש בסקריפטים של תוכן אסור באופן מפורש.

קושחה ומחבר

  • צריך להצהיר על האוזניות כעל מכשיר אודיו עם מתאר (descriptor) נכון של ממשק אודיו (0x01).
    • צריך להיות מתאר תואם אחד לטרמינל הקלט ולטרמינל הפלט.
      • מומלץ לדווח על סוג המסוף של USB Audio Class ‏ (UAC)
  • אם יש לו כפתור כלשהו, צריך להצהיר עליו כ-HID.
  • האוזניות צריכות לעמוד בדרישות של WWCB לגבי קושחה ומחברים.

תוכנה

פורמט

אפשר לעיין במאמר בנושא פורמט אודיו.

למכשיר יש גם מתאר של ממשק אודיו לקלט וגם מתאר של ממשק אודיו לפלט.

  • דוגמה לתיאור של ממשק אודיו

    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0
      iInterface              0
    

אם קצב הדגימה של הקלט ושל הפלט שונה, המכשיר צריך לתמוך בהפעלה ובצילום בקצבי דגימה שונים בו-זמנית. אחרת, המכשיר צריך לשקף את אותו ערך ב-AudioStreaming Interface Descriptor -> tSamFreq.

  • דוגמה לתדירות דגימה של פלט אודיו ב-USB‏: 48k

    AudioStreaming Interface Descriptor:
      bLength                11
      bDescriptorType        36
      bDescriptorSubtype      2 (FORMAT_TYPE)
      bFormatType             1 (FORMAT_TYPE_I)
      bNrChannels             2
      bSubframeSize           2
      bBitResolution         16
      bSamFreqType            1 Discrete
      tSamFreq[ 0]        48000
    Endpoint Descriptor:
      bLength                 9
      bDescriptorType         5
      bEndpointAddress     0x02  EP 2 OUT(Output)
      bmAttributes            9
        Transfer Type            Isochronous
        Synch Type               Adaptive
        Usage Type               Data
    
  • דוגמה לתדירות דגימה של 44.1k של קלט אודיו ב-USB

    AudioStreaming Interface Descriptor:
      bLength                11
      bDescriptorType        36
      bDescriptorSubtype      2 (FORMAT_TYPE)
      bFormatType             1 (FORMAT_TYPE_I)
      bNrChannels             2
      bSubframeSize           2
      bBitResolution         16
      bSamFreqType            1 Discrete
      tSamFreq[ 0]        44100
    Endpoint Descriptor:
      bLength                 9
      bDescriptorType         5
      bEndpointAddress     0x81  EP 1 In(Input)
      bmAttributes            9
        Transfer Type            Isochronous
        Synch Type               Adaptive
        Usage Type               Data
    

קודים של מכשיר ממשק אנושי (HID)

  • לכל אירוע HID, אפשר לשדר רק אירוע אחד בכל פעם.
  • כשלוחצים על הלחצן, אמורים להתקבל קוד האירוע הנכון וקוד האירוע התואם.
    • לדוגמה, הגדלת עוצמת הקול. הכלי evtest יכול לזהות רק אירוע אחד של הגדלת עוצמת הקול, והקוד צריך להיות KEY_VOLUME_UP.
  • אם יש ממשק שנועד לספק את הפונקציות הבאות, ציוד היקפי USB חייב לתמוך בפליטה או בקבלה של אירועי HID תואמים בהתאם למפרט HID של USB.org.
דף צרכן (0x0c)
שם מפתח מזהה שימוש ב-HID סוג השימוש
KEY_PLAY 0x0b0 OOC
KEY_PAUSE 0x0b1 OOC
KEY_NEXTSONG 0x0b5 OSC
KEY_PREVIOUSSONG 0x0b6 OSC
KEY_STOPCD 0x0b7 OSC
KEY_PLAYPAUSE 0x0cd OSC
KEY_PREVIOUSSONG 0x0b6 OSC
KEY_MUTE 0x0e2 OOC
KEY_VOLUMEUP 0x0e9 RTC
KEY_VOLUMEDOWN 0x0ea RTC
דף טלפוניה (0x0b)
שם מפתח מזהה שימוש ב-HID סוג השימוש
מתג ניתוק 0x20 OOC
תוכנת צלצול 0x9e OOC
דף LED ‏ (0x08)
שם מפתח מזהה שימוש ב-HID סוג השימוש
השתקה 0x09 OOC
מצב 'השפופרת מורמת' 0x17 OOC
צלצול 0x18 OOC

זיהוי שקע

אם התקן USB לא תומך ב-USB Audio Class ‏ (UAC), הוא תמיד יציג צומת פלט במגש המערכת של ChromeOS. עם זאת, אם מכשיר ה-USB תומך ב-UAC, המערכת תוכל לזהות בצורה נכונה שקע אודיו בגודל 3.5 מ"מ כשהמכשיר מוכנס.

  • מערכת CrOS חייבת להשתמש בזיהוי נוכחות עבור שקעי 3.5 מ"מ
    • חובה לבצע זיהוי של הוספה באמצעות אחת מהאפשרויות הבאות:

דרישות כלליות ל-Bluetooth

אפשר לעיין במפרט ה-Bluetooth של מכשירי ChromeOS.

פורמט האודיו

הפעלה מתבצעת הקלטה
תדירות הדגימה ‫‎≥ 16 kHz ‫‎≥ 16 kHz
פורמט S16_LE S16_LE
  • מספר הערוץ וההגדרה שלו צריכים להיות נכונים.
  • כל קצב הדגימה שהאוזניות מצהירות על תמיכה בו חייב לפעול בצורה תקינה.
    • ההבדל בין קצב המדידה לקצב הדגימה צריך להיות ≤ 0.1% .
    • סטיית התקן של הרגרסיה הלינארית של השיעור הנמדד צריכה להיות < 30.
  • האוזניות צריכות לתמוך בהפעלה או בצילום בקצבי דגימה שונים, כפי שהן מצהירות.

    לדוגמה, אפשר להשמיע אודיו מתחת ל-44.1kHz אבל להקליט קול מתחת ל-48kHz בו-זמנית.

    • אחרת, צריך להוסיף ל-ChromeOS קובץ הגדרה ספציפי כדי למנוע את זה בצד המערכת.

איכות האודיו

מסלול צילום – השתקה

  • אם יש ממשק שמאפשר למשתמשים להשתיק את מכשיר האודיו, הוא צריך לעמוד בדרישות הבאות:
    • שמירה על מצב ההשתקה באופן שלא מושפע מהפעולות הבאות:
      • פתיחה וסגירה של המכשיר.
      • מעבר למכשיר קלט אחר.
  • אם המשתמש לוחץ על לחצן ההשתקה באוזניות או ב-ChromeOS, מצב ההשתקה חייב להשתנות.
  • אם מצב ההשתקה משתנה, מחוון מצב ההשתקה (למשל:נורית LED) באוזניות צריך להשתנות.

זמן אחזור אודיו

זמן אחזור

  • זמן האחזור של הפלט
    • הפעלת האודיו חייבת להתחיל תוך 500 אלפיות השנייה לכל היותר אחרי פעולת משתמש שמפעילה את ההפעלה.
      • יכול להיות שתהיה אפשרות לבקש פטור אם יצרן הציוד המקורי של המכשיר יוכל להוכיח שלא נוצר הד כשהמכשיר לא עומד בדרישה הזו.

סנכרון אודיו/וידאו

  • הפעלת האודיו צריכה להיות מסונכרנת עם הפעלת הסרטון. הפעלת האודיו עשויה להקדים את הסרטון ב-25 אלפיות השנייה או פחות, או להתרחש אחרי הסרטון ב-95 אלפיות השנייה או פחות.

היסטוריית גרסאות

תאריך גרסה הערות
2024-09-06 1.3 מפרט תואם ל-ChromeOS. פרסום ראשוני של אתר שותף.
2022-09-14 1.2 העדכון בוצע לגרסה 1.2.
2022-08-19 1.1 עודכן לגרסה 1.1.
2022-08-18 1.0 נוצר מפרט WWCB קשור.