在Microsoft Hololens 2上捕获声音方向

问题描述

我正在考虑为一些个人开发项目购买Microsoft Hololens 2,但在此之前,我想先找到有关设备上麦克风的信息。

  1. 是否有任何图表显示麦克风在设备上的放置位置?我无法根据我看到的图像弄清楚每个人的位置。我可以做出最好的猜测,但是如果Microsoft发布了清晰的图像,那对我可能很有用。
  2. 设备上的麦克风可以单独寻址吗?
  3. Hololens / Microsoft API是否提供确定声音来源的方向的功能?

自几年前的第一代以来,我还没有与Hololens进行任何开发,因此任何信息将不胜感激!

解决方法

是否有可用的图表显示麦克风在设备上的放置位置?我无法根据我看到的图像弄清楚每个人的位置。我可以做出最好的猜测,但是如果Microsoft发布了清晰的图像,那对我可能很有用。

目前尚无官方文档显示hololens2麦克风阵列的放置位置。但是我相信您应该能够找到设备上五个麦克风的针孔。 HoloLens 2的顶部顶部有三个针孔,它们是捕获周围噪音的麦克风。并且有两个麦克风捕获用户的声音,并将其隐藏在眼镜的底部,它们协作将用户的声音与周围的噪音隔离开来。

有关更多详细信息,请参阅Alex Kipman的演讲:Global Lecture 2019

设备上的麦克风是否可寻址?

实际上,当Hololens2捕获音频时,它将创建一个包含5个通道的麦克风音频流。

我们可以使用Windows audio session (WASAPI) sample作为基础,因为利用WASAPI使我们能够对正在发生的事情进行精确的控制(示例中的方案4)

然后在WASAPICapture.cpp中,对WASAPICapture :: ActivateCompleted()函数进行更改,以在设置AudioClientProperties时更改模式/类别

   audioProps.cbSize = sizeof(AudioClientProperties);
   audioProps.eCategory = AudioCategory_Media;
   audioProps.Options = AUDCLNT_STREAMOPTIONS_RAW;
   hr = m_AudioClient->SetClientProperties(&audioProps);
   if (FAILED(hr))
   {
       goto exit;
   }

最后,根据下表,您可以从麦克风阵列中找到每个人对应的频道

频道映射

  • 通道1 –左上方的麦克风

  • 通道2 –顶部中心麦克风

  • 第3频道–右上方的麦克风

  • 通道4 –左下方的麦克风

  • 第5频道-右下方的麦克风

Hololens / Microsoft API是否提供对声音源自的声音本地化的功能?

当前,Microsoft未提供官方库/ API支持HoloLens的声学本地化。您只能自己实现,也可以参考其他第三方库。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...