问题描述
我正在考虑为一些个人开发项目购买Microsoft Hololens 2,但在此之前,我想先找到有关设备上麦克风的信息。
- 是否有任何图表显示麦克风在设备上的放置位置?我无法根据我看到的图像弄清楚每个人的位置。我可以做出最好的猜测,但是如果Microsoft发布了清晰的图像,那对我可能很有用。
- 设备上的麦克风可以单独寻址吗?
- 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的声学本地化。您只能自己实现,也可以参考其他第三方库。