電気メガネ

XREAL OneシリーズのUSBオーディオ仕様を徹底調査:なぜPS5で音が鳴らないのか?

Amazonのアソシエイトとして、8796.jp管理日誌は適格販売により収入を得ています。
スポンサーリンク

手持ちの機種のスペックを実機で調査してるときにXREAL OneシリーズのUSBオーディオに違和感があったのでログの解析からブログのたたき台作成までGemini 3 Proにさせた記録です。

XREAL One Pro ARグラス|X1チップ&X-Prism光学搭載|ネイティブ3DoF対応|57°の広視野角・最大428インチ相当・FHD・最大120Hz表示|iPhone 16/15(※eシリーズ除く)、Steam Deck、ROG、Mac、PC、Android & iOS対応|IPD(瞳孔間距離)に合わせた2サイズ展開[M (IPD 57-66mm)]
XREAL
【新搭載「X Prism」光学エンジンで、AR映像体験がさらに進化】 XREAL独自開発の超薄型光学システム「Optic Engine 4.0」により、57°の広視野角で、最大428インチ相当のバーチャルスクリーンを鮮明に投影。 現実の風景を視認しながら、没入感ある映像体験を実現します。 さらに、反射や光の干渉を抑えるアンチグレア設計により、クリアな視界を維持。

はじめに

XREAL 1Sが発表された今日この頃、比較記事を書くためにXREAL Oneシリーズ(One / One Pro)の検証を進めている。映像の進化もさることながら、個人的に気になっていたのがオーディオ周りの仕様だ。

というのも、先代のXREAL Air 2 Proでは問題なく使えていたPlayStation 5(PS5)と直接USB接続した際に、XREAL Oneでは「音が鳴らない」という現象に遭遇したからだ。映像は表示されるのに、音だけが出ない。DP音声モードに切り替えれば鳴るんだがそれでは解決とは言えない。

これは単純な不具合なのか、それとも仕様によるものなのか。手元にあるUbuntuマシンと調査用スクリプトを駆使して、その中身を徹底的にダンプしてみることにした。その結果、XREAL Oneシリーズがオーディオ機器として、一般的ではない「特殊」な実装になっている実態が見えてきた。

本稿では、採取したログに基づき、XREAL OneのUSBオーディオ仕様を旧機種と比較しながら解説し、そこから見えてくる課題についてまとめてみたい。メーカーさんへのフィードバックとしても機能すれば幸いだ。

XREAL OneのUSBオーディオ仕様

早速だが、調査結果の核心部分から見ていこう。比較対象として、初代「Nreal Light」と、普及モデル「XREAL Air 2 Pro」のデータも合わせて検証した。

歴代モデルのオーディオスペック比較(出力&入力)

以下は、lsusb -v コマンドで取得したUSBディスクリプタから、オーディオ出力(スピーカー)および入力(マイク)に関する仕様を抽出してまとめた比較表だ。

項目Nreal LightXREAL Air 2 ProXREAL One / One Pro
スピーカー16-bit / 48kHz16-bit / 48kHz32-bit / 48kHz
Headset (0x0402)Headset (0x0402)Speaker (0x0301)
マイク16-bit / 48kHz16-bit / 48kHz32-bit / 48kHz
2ch (ステレオ)1ch (モノラル)2ch (ステレオ)

一目瞭然だが、XREAL Oneシリーズだけがスピーカー・マイク共に「32-bit」という、一般的なUSBオーディオ機器としては突出したスペックになっている。

ログから見る詳細仕様

具体的なログの抜粋を見てみよう。ここにはOSがデバイスをどう認識し、どのような形式でデータを送ろうとしているかが明確に記されている。

1. XREAL Air 2 Pro の場合:Web会議に特化した「ヘッドセット」

Air 2 Proは、マイク入力が「モノラル」に割り切られているのが特徴だ。

# lsusb -v 抜粋 (XREAL Air 2 Pro)

AudioControl Interface Descriptor:
  ...
  bDescriptorSubtype      3 (OUTPUT_TERMINAL)
  wTerminalType      0x0402 Headset  <-- ★OSは「ヘッドセット」として認識
  ...
  bDescriptorSubtype      2 (INPUT_TERMINAL)
  wTerminalType      0x0201 Microphone
  bNrChannels             1  <-- ★マイクはモノラル(1ch)
  ...

AudioStreaming Interface Descriptor:
  bLength                11
  bDescriptorType        36
  bDescriptorSubtype      2 (FORMAT_TYPE)
  bFormatType             1 (FORMAT_TYPE_I)
  bBitResolution         16  <-- ★ごく一般的な 16-bit
  bSamFreqType            1 Discrete
  tSamFreq[ 0]        48000

wTerminalType0x0402 (Headset) となっており、ビット深度も標準的な 16 である。マイクもモノラルで軽量だ。
これはZoomやTeamsなどの通話アプリでの使用を想定した、極めて合理的かつ標準的な構成であり、PCやゲーム機(PS5等)はこれを「普通のヘッドセット」として認識し、標準ドライバで難なく動作させる。

2. XREAL One / One Pro の場合:素材録音レベルの「超高解像度」

対して、XREAL Oneはオーディオインターフェースのような振る舞いを見せる。

# lsusb -v 抜粋 (XREAL One / One Pro)

AudioControl Interface Descriptor:
  ...
  bDescriptorSubtype      3 (OUTPUT_TERMINAL)
  wTerminalType      0x0301 Speaker  <-- ★「ヘッドセット」ではなく「スピーカー」扱い
  ...
  bDescriptorSubtype      2 (INPUT_TERMINAL)
  wTerminalType      0x0201 Microphone
  bNrChannels             2  <-- ★ステレオマイク(2ch)に戻った
  ...

AudioStreaming Interface Descriptor:
  bLength                11
  bDescriptorType        36
  bDescriptorSubtype      2 (FORMAT_TYPE)
  bFormatType             1 (FORMAT_TYPE_I)
  bBitResolution         32  <-- ★出力も入力も 32-bit 固定
  bSamFreqType            1 Discrete
  tSamFreq[ 0]        48000  <-- ★周波数は 48kHz のまま

まず、デバイス種別が Headset ではなく Speaker (0x0301) になっている。これはPCに対して「ヘッドフォン用の補正処理を無効化し、ライン出力のように扱え」という宣言に近い。

そして最大の問題点が bBitResolution 32 だ。Air 2 Proでは16-bitだった部分が、Oneでは32-bitに固定されている。
「48kHz」というごく一般的なサンプリングレートに対し、ビット深度だけが「32-bit」という巨大なデータ幅を要求しているため、16-bit出力しか持たないPS5等のゲーム機は通信を確立できず、無音となる

また、マイクもステレオ(2ch)に戻り、入力まで32-bit化されている。これは環境音を高精度に取り込む開発者向けの意図を感じるが、ただのボイスチャット用としては完全にオーバースペックだ。

推察と問題提起:その「32bit」は本当に必要か?

ここで疑問になるのが、「48kHz / 32-bit」 というスペックの特異性だ。

一般的な「ハイレゾ」とのズレ

オーディオの世界で「高音質(ハイレゾ)」と呼ばれるスペックと、XREAL Oneの仕様には大きなズレがある。通常、情報の器(ビット深度)を大きくするなら、時間あたりの情報量(サンプリング周波数)も増やすのがセオリーだからだ。

  • CD音質: 16-bit / 44.1 kHz
  • DVD/放送: 16-bit / 48 kHz (※PS5やSwitchの標準)
  • ハイレゾ: 24-bit / 96 kHz or 192 kHz (※一般的に高級と言われるライン)
  • XREAL One: 32-bit / 48 kHz (※ここがおかしい)

例えるなら、「制限速度は一般道と同じ(48kHz)なのに、車線の幅だけが高速道路の倍ある(32-bit)」 ような状態だ。
32-bit Integer(整数)というフォーマットは、プロのレコーディング現場で編集時の劣化を防ぐために使われることはあるが、再生用デバイス、それも48kHz止まりのデバイスで、最終出力段にこれを持ってくるのは極めて稀だ。

PS5で音が鳴らない原因

この「過剰な車線幅」が、PS5などのゲーム機との接続で事故を引き起こしている。

上の図のように、PS5は一般的な「16-bit」のコンテナで音を送ろうとする。Air 2 Proまではそれを受け取る口(16-bitモード)を持っていた。
しかしXREAL Oneは、「32-bitの巨大なコンテナでしか受け取れません」 と主張している。PS5側はそんな巨大なデータを扱うドライバを持っていないため、通信の合意(ネゴシエーション)に失敗し、結果として無音になるのだ。

これは「高音質だからすごい」のではなく、「互換性を考慮せずに内部の32-bitバスをそのままUSBに出力してしまった」という実装上の配慮不足(あるいは開発者向け機能の消し忘れ)の可能性が高い。

まとめと提言

今回の調査で、XREAL Oneシリーズは、従来のモデルとは一線を画す非常に尖った、あるいは少々いびつなオーディオ仕様を持っていることが明らかになった。

  • まとめ:
    • XREAL OneのUSBオーディオは、スピーカー・マイク共に 48kHz / 32-bit 固定という極めて特殊な仕様である。
    • PC(Windows/Mac/Linux)では高音質デバイスとして動作するが、16-bit標準のPS5やSwitchなどのゲーム機では互換性がなく音が鳴らない
    • マイクも32-bitステレオ化されており、一般通話用というよりは空間収録用のようなプロ仕様になっている。
  • メーカーへの提言:
    XREAL Oneの「Pro / 開発者機」としての方向性は理解できるが、PS5のような一般的なデバイスと直結して使いたいというニーズも大きいはずだ。32-bitというスペックは、48kHzのサンプリングレートに対してバランスが悪く、互換性トラブルの元凶となっている。 可能であれば、今後のファームウェアアップデートで、接続相手に応じて自動的に切り替わる「16-bit / 48kHz の互換モード(Alternate Setting)」を追加装填することを強く要望したい。
    ついでといっちゃアレですが、32kHzと44.1kHzにも対応してくれると互換性が高まるのでDP音声も合わせてお願いします。

Special Thanks: Gemini 3 Pro との協働について

本記事の執筆にあたり、GoogleのAIモデル「Gemini 3 Pro」を全面的に活用しました。

実は、今回の技術調査において人間(筆者)が行ったのは、「疑問を持つこと(アイデア出し)」と「実機をケーブルで繋いでコマンドを叩くこと」だけです。それ以外のプロセス――例えば、Linuxカーネルの深層から情報を引きずり出すスクリプトの作成、吐き出された膨大なHexダンプデータの解読、そしてこのブログ記事の構成・執筆からトップ画像の生成に至るまで――その大部分をGeminiが担当しました。

特に、複雑怪奇なUSBディスクリプタやHIDの生データを解析し、「なぜ音が鳴らないのか?」という事象と「32-bit/48kHz」という原因を結びつける分析能力には、大いに助けられました。もし一人でやっていたら、仕様書と睨めっこで数日は溶かしていたでしょう。

もちろん、最終的な情報の正確性については人間が責任を持って確認を行っていますが、Gemini 3 Proは単なるチャットボットを超え、エンジニアリングにおける強力な「解析パートナー」として機能することを、今回の検証を通じて強く実感しました。

おしまいに

今回はオーディオ周りに絞って少しマニアックな検証を行ってみた。こうして中身を覗いてみると、同じように見えるグラスでも、世代ごとに設計思想が大きく異なっているのが見えて面白い。

XREAL Oneは映像も音も非常にポテンシャルの高いデバイスだと感じている。だからこそ、ちょっとした互換性の壁でその体験が損なわれてしまうのは惜しい。今後のアップデートでの改善に期待しつつ、引き続き使い込んでいきたいと思う。

現場からは以上です。

タイトルとURLをコピーしました