ChromeOS 호환 - USB 헤드셋 사양 v1.2

버전: 1.2.1
최종 업데이트: 2024년 6월 14일

Legend

제품 동사 개발 작업
'MUST' 필수 제품 요구사항
'SHOULD' 선택적 추천
'MAY' 참고사항

개요

이 문서에서는 ChromeOS 호환 USB 헤드셋이 충족하는 요구사항을 설명합니다. 이 사양은 WWCB 제품이나 Chromebook과 함께 설계되고 인증된 제품에는 적용되지 않습니다.

USB

보안

2.4GHz 무선 동글

  • 2.4GHz 무선 기기는 상자에 포함된 수신기 (동글)와만 자동 페어링됩니다.
  • 헤드셋을 다른 수신기와 페어링하거나 새 헤드셋을 기존 수신기와 페어링하려면 사용자 작업 (기기 또는 앱을 통해)이 필요합니다.
  • 앱에서 헤드셋/수신기 페어링을 변경해야 하는 경우 앱은 확장 프로그램을 통해 ChromeOS에서 실행되어야 합니다. 앱은 WebUSB/WebHID를 사용하는 웹 앱일 수도 있습니다.
  • 확장 프로그램을 통해 페어링이 구현된 경우 확장 프로그램은 USB 포트에만 액세스할 수 있어야 합니다. 콘텐츠 스크립트가 명시적으로 허용되지 않습니다.

펌웨어 및 커넥터

  • 헤드셋은 올바른 오디오 인터페이스(0x01) 설명자가 있는 오디오 기기로 선언해야 합니다.
    • 입력 및 출력 터미널 모두에 해당하는 설명자가 하나 있어야 합니다.
  • 버튼이 있는 경우 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 인터페이스 설명어 -> tSamFreq에 동일한 값을 반영해야 합니다.

  • 48k 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]        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 주변기기는 USB.org HID 사양에 따라 해당 HID 이벤트를 내보내거나 수신하는 것을 지원해야 합니다.
고객 페이지 (0x0c)
키 이름 HID 사용 ID 사용량 유형
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 사용 ID 사용량 유형
후크 스위치 0x20 OOC
벨소리 장치 0x9e OOC
LED 페이지 (0x08)
키 이름 HID 사용 ID 사용량 유형
음소거 0x09 OOC
통화 종료 0x17 OOC
벨소리 0x18 OOC

잭 감지

USB 기기가 USB Audio Class (UAC)를 지원하지 않으면 ChromeOS 시스템 트레이에 항상 출력 노드가 표시됩니다. 하지만 USB 기기가 UAC를 지원하는 경우 기기가 삽입될 때 시스템이 3.5mm 오디오 잭을 올바르게 감지할 수 있습니다.

  • CrOS는 3.5mm 잭에 근접 감지를 사용해야 합니다(Must).
    • 다음 중 하나를 통해 삽입 감지를 실행해야 합니다.

오디오 형식

재생 녹화
샘플링 레이트 16kHz 이상 16kHz 이상
형식 S16_LE S16_LE
  • 채널 번호와 구성이 올바르지 않습니다.
  • 헤드셋에서 지원한다고 선언한 모든 샘플링 비율이 올바르게 작동해야 합니다.
    • 측정된 비율과 샘플링 비율 간의 편차는 0.1% 이하여야 합니다.
    • 측정된 비율의 선형 회귀의 표준 오류는 30 미만이어야 합니다.
  • 헤드셋은 지원한다고 어설션하는 다양한 샘플링 레이트에서 재생 또는 캡처를 지원해야 합니다.

    예를 들어 44.1kHz 미만의 오디오를 재생하면서 동시에 48kHz 미만의 음성을 캡처합니다.

    • 그렇지 않으면 시스템 측에서 이를 방지하기 위해 ChromeOS에서 특정 구성 파일을 추가해야 합니다.

오디오 품질

캡처 경로 - 음소거

  • 사용자가 오디오 기기를 음소거할 수 있는 인터페이스가 있는 경우 다음을 충족해야 합니다.
    • 다음의 영향을 받지 않는 방식으로 음소거 상태를 유지합니다.
      • 기기 열기 및 닫기
      • 다른 입력 기기로 전환
  • 사용자가 헤드셋이나 ChromeOS에서 음소거 버튼을 누르면 음소거 상태가 변경되어야 합니다.
  • 음소거 상태가 변경되면 헤드셋의 음소거 상태 표시기 (예:LED)가 변경되어야 합니다.

오디오 지연 시간

지연 시간

  • 출력 지연 시간
    • 오디오 재생은 재생을 시작하는 사용자 작업 후 500ms 이내에 시작되어야 합니다.
      • 기기 OEM이 이 요구사항을 충족하지 않을 때 에코가 발생하지 않음을 증명할 수 있는 경우 면제를 요청할 수 있습니다.

A/V 동기화

  • 오디오 재생은 동영상 재생과 동기화되어야 합니다. 오디오 재생이 동영상보다 ≤25ms 앞서거나 동영상보다 ≤95ms 뒤처질 수 있습니다.

업데이트 기록

날짜 버전 참고
2024-06-14 1.2.1 ChromeOS 호환 사양에서 파생됨 초기 파트너 사이트 게시
2022-09-01 1.2 관련 WWCB 사양 v1.2
2022-06-06 1.1 관련 WWCB 사양 v1.1
2020-09-21 1.0 관련 WWCB 사양이 생성되었습니다.