고품질 공간 음향 및 머리 추적 구현

Android 13에서는 휴대전화 구현, 연결된 헤드셋, 사용자 설정의 현재 조합이 몰입형 방식으로 다중 채널 오디오 콘텐츠 재생을 허용하는지 앱 개발자가 확인할 수 있는 API를 제공하여 공간 음향 지원을 도입합니다.

OEM은 새로운 오디오 파이프라인 아키텍처와 센서 프레임워크의 통합을 통해 필요한 성능 및 지연 시간으로 머리 추적을 지원하는 스페이셜라이저 오디오 효과를 제공할 수 있습니다. HID 프로토콜은 블루투스를 통해 머리 추적 기기를 연결하고 Android 센서 프레임워크를 통해 HID 기기로 사용할 수 있도록 하는 방법을 지정합니다. 요구사항 및 유효성 검사는 공간 음향 및 머리 추적을 참고하세요.

이 페이지의 가이드라인은 Android 13 이상을 실행하는 Android 휴대전화와 머리 추적 센서가 있는 호환 헤드셋에서 새로운 공간 음향 API와 오디오 아키텍처를 채택하는 공간 음향 솔루션에 적용됩니다.

동적 및 정적 공간 음향 모드 구현 가이드라인

정적 공간 음향은 머리 추적이 필요하지 않으므로 헤드셋에 특정 기능이 필요하지 않습니다. 모든 유선 및 무선 헤드셋이 정적 공간 음향을 지원할 수 있습니다.

API 구현

OEM은 Android 12에 도입된 Spatializer 클래스를 구현해야 합니다(MUST). 구현은 Spatializer 클래스에 관해 도입된 CTS 테스트를 통과해야 합니다.

강력한 API 구현을 통해 앱 개발자, 특히 미디어 스트리밍 서비스에서 생태계 전반에 걸쳐 일관된 동작을 활용하고 기기 기능, 현재 렌더링 컨텍스트, 사용자 선택에 따라 최상의 콘텐츠를 선택할 수 있습니다.

사용자 인터페이스

Spatializer 클래스를 구현한 후에는 UI에 다음과 같은 동작이 있는지 확인합니다.

  • 공간 음향 지원 헤드셋이 페어링되면 이 헤드셋의 블루투스 기기 설정에 공간 음향 전환 버튼이 표시됩니다.

    spatial-audio-ui

    그림 1. 공간 음향 설정

  • 헤드셋이 연결 해제되어 있으면 설정을 사용할 수 있습니다.

  • 헤드셋을 처음 페어링한 후 공간 음향의 기본 상태는 사용 설정됨으로 지정됩니다.

  • 사용 설정 여부와 상관없이 사용자가 선택한 상태가 휴대전화 재부팅이나 헤드셋 페어링 해제 및 페어링에도 유지됩니다.

기능 동작

오디오 형식

다음 오디오 형식은 공간 음향이 사용 설정되고 렌더링 기기가 유선 또는 블루투스 헤드셋일 때 스페이셜라이저 효과로 렌더링되어야 합니다(MUST).

  • AAC, 5.1 채널
  • 원시 PCM, 5.1 채널

더 나은 사용자 환경을 위해 다음 형식/채널 구성을 지원하는 것이 좋습니다.

  • Dolby Digital Plus
  • 5.1.2, 7.1, 7.1.2, 7.1.4 채널

스테레오 콘텐츠 재생

스테레오 콘텐츠는 공간 음향이 사용 설정되어 있더라도 스페이셜라이저 효과 엔진을 통해 렌더링해서는 안 됩니다. 구현에서 스테레오 콘텐츠 공간화를 허용하는 경우 사용자가 이 기능을 쉽게 사용 설정하거나 중지할 수 있는 맞춤 UI를 표시해야 합니다. 공간 음향이 사용 설정된 경우 사용자 설정을 변경하거나 헤드셋을 재연결하거나 재구성하지 않고도 공간화된 다중 채널 콘텐츠와 공간화되지 않은 스테레오 콘텐츠의 재생 간에 전환할 수 있어야 합니다. 공간 음향 콘텐츠와 스테레오 콘텐츠 간의 전환은 최소한의 오디오 중단으로 진행되어야 합니다.

사용 사례 전환 및 동시 실행

특수 사용 사례는 다음과 같이 처리하세요.

  • 알림은 비공간 음향 콘텐츠와 동일한 방식으로 공간 음향 콘텐츠와 혼합해야 합니다.
  • 벨소리는 공간 음향 콘텐츠와 혼합할 수 있어야 합니다. 하지만 기본적으로 오디오 포커스 메커니즘은 벨소리가 있으면 공간 음향 콘텐츠를 일시중지합니다.
  • 전화를 받거나 걸거나 화상 회의에 응답하거나 화상 회의를 주최할 때 공간 음향 재생은 일시중지되어야 합니다. 공간 음향 재생은 통화가 끝나면 동일한 공간 음향 설정으로 재개되어야 합니다. 공간 음향 모드에서 대화 모드로 전환하기 위한 오디오 경로 재구성은 통화 환경에 영향을 미치지 않도록 충분히 빠르고 원활하게 진행되어야 합니다.

스피커를 통해 렌더링

스피커 또는 transaural 모드를 통한 오디오 공간화 지원은 필요하지 않습니다.

머리 추적 구현 가이드라인

이 섹션에서는 특정 헤드셋 요구사항이 있는 동적 공간 음향을 중점적으로 설명합니다.

사용자 인터페이스

공간 음향 지원 헤드셋을 구현하고 페어링할 때 UI에 다음과 같은 동작이 있는지 확인하세요.

  • 블루투스 기기 설정에서 헤드셋의 공간 음향 설정을 사용하는 것으로 지정하면 공간 음향 아래에 머리 추적 설정이 표시됩니다.

    ht-ui

    그림 2. 공간 음향 및 머리 추적 설정

  • 머리 추적 설정은 공간 음향이 사용 중지되면 표시되지 않습니다.

  • 헤드셋을 처음 페어링한 후 머리 추적의 기본 상태는 사용 설정됨으로 지정됩니다.

  • 사용 설정 여부와 상관없이 사용자가 선택한 상태가 휴대전화 재부팅이나 헤드셋 페어링 해제 및 페어링에도 유지되어야 합니다.

기능 동작

머리 자세 보고

  • 헤드셋에서 Android 기기로 전송된 머리 자세 정보(x, y, z 좌표)는 사용자의 머리 움직임을 빠르고 정확하게 반영해야 합니다.
  • 블루투스 링크를 통한 머리 자세 보고는 HID를 통해 정의된 프로토콜을 따라야 합니다.
  • 헤드셋은 사용자가 블루투스 기기 설정 UI에서 머리 추적을 사용 설정한 경우에만 Android 휴대전화로 머리 추적 정보를 전송해야 합니다.

성능

지연 시간

머리 추적 지연 시간은 관성 측정 장치(IMU)에서 캡처한 머리 움직임으로부터 헤드폰 트랜스듀서가 이 움직임으로 인해 발생한 소리 변화를 감지하기까지 걸리는 시간으로 정의됩니다. 헤드 추적 지연 시간은 150밀리초를 초과하면 안 됩니다.

머리 자세 보고 비율

머리 추적이 활성화되면 헤드셋은 권장되는 간격인 약 20밀리초마다 머리 자세를 보고해야 합니다. 블루투스의 전송 잡음 중에 휴대전화에서 비활성 입력 감지 로직을 트리거하지 않으려면 두 업데이트 사이의 최대 시간이 40밀리초를 초과하면 안 됩니다.

전력 최적화

전력을 최적화하려면 오디오 HAL블루투스 오디오 HAL 인터페이스에서 제공하는 블루투스 코덱 전환지연 시간 모드 선택 메커니즘을 사용하여 구현하는 것이 좋습니다.

오디오 프레임워크 및 블루투스 스택의 AOSP 구현은 이미 코덱 전환을 제어하는 신호를 지원합니다. OEM의 구현에서 코덱 오프로드 모드라고 알려진 블루투스 오디오용 기본 오디오 HAL을 사용하는 경우 OEM은 오디오 HAL이 오디오 HAL과 블루투스 스택 간에 이러한 신호를 전달하는지 확인해야 합니다.

코덱 전환

동적 공간 음향과 머리 추적이 사용 설정된 경우에는 Opus와 같은 지연 시간이 짧은 코덱을 사용합니다. 비공간 음향 콘텐츠를 재생하는 경우 Advanced Audio Coding(AAC)과 같은 저전력 코덱을 사용하세요.

코덱을 전환하는 동안 다음 규칙을 따르세요.

  • 다음 오디오 HAL 출력 스트림의 활동만 추적합니다.
    • 전용 스페이셜라이저 출력
    • 딥 버퍼 또는 압축된 오프로드 재생과 같은 미디어 관련 스트림
  • 모든 관련 스트림이 유휴 상태이고 스페이셜라이저 스트림이 시작되면 지연 시간이 짧은 코덱을 지정하도록 isLowLatencytrue로 설정하여 블루투스 스트림을 시작합니다.

  • 모든 관련 스트림이 유휴 상태이고 미디어 스트림이 시작되면 저전력 코덱을 지정하도록 isLowLatencyfalse로 설정하여 블루투스 스트림을 시작합니다.

  • 미디어 스트림이 활성 상태이고 스페이셜라이저 스트림이 시작되면 isLowLatencytrue로 설정하여 블루투스 스트림을 다시 시작합니다.

헤드셋과 관련해서는 헤드셋이 짧은 지연 시간 및 저전력 디코더를 모두 지원하고 표준 코덱 선택 프로토콜을 구현해야 합니다.

지연 시간 모드 조정

지연 시간 모드 조정은 지연 시간이 짧은 코덱을 선택할 때 발생합니다.

머리 추적 사용 설정 여부에 따라 지연 시간 모드 조정은 사용 가능한 메커니즘을 통해 지연 시간을 줄이거나 늘려 지연 시간, 전력, 오디오 품질 간의 최선의 절충안에 도달합니다. 공간 음향과 머리 추적이 모두 사용 설정되면 지연 시간이 짧은 모드가 선택됩니다. 공간 음향은 사용 설정되고 머리 추적은 사용 중지되면 자유 지연 시간 모드가 선택됩니다. 지연 시간 조정은 정적 공간 음향만 요청될 때 상당한 전력을 절약하고 블루투스 오디오 링크의 견고성을 높이는 기능입니다. 가장 일반적인 지연 시간 조정 메커니즘은 블루투스 헤드셋에서 잡음 버퍼 사이즈를 줄이거나 확장하는 것입니다.