快捷方式

torchaudio.prototype.functional.ray_tracing

torchaudio.prototype.functional.ray_tracing(room: Tensor, source: Tensor, mic_array: Tensor, num_rays: int, absorption: Union[float, Tensor] = 0.0, scattering: Union[float, Tensor] = 0.0, mic_radius: float = 0.5, sound_speed: float = 343.0, energy_thres: float = 1e-07, time_thres: float = 10.0, hist_bin_size: float = 0.004) Tensor[源代码]

已弃用

警告

此函数已被弃用。它将在 2.9 版本中被移除。此弃用是向维护阶段迁移 TorchAudio 的大规模重构工作的一部分。请参阅 https://github.com/pytorch/audio/issues/3902 获取更多信息。

通过射线追踪计算能量直方图。

实现基于pyroomacoustics [Scheibler et al., 2018]

从声源均匀地向所有方向发射 num_rays 条射线;当射线与墙壁相交时,它会被反射,部分能量会被吸收。它还会根据 scattering 系数发生散射(直接发送到麦克风)。当射线靠近麦克风时,其当前能量会在给定时间段的输出直方图中被记录下来。

This feature supports the following devices: CPU This API supports the following properties: TorchScript
参数
  • room (torch.Tensor) – 房间坐标。room 的形状必须是 (3,),表示房间的三个维度。

  • source (torch.Tensor) – 声源坐标。形状为 (3,) 的张量。

  • mic_array (torch.Tensor) – 麦克风坐标。形状为 (channel, 3) 的张量。

  • absorption (floattorch.Tensor, 可选) – 墙体材料的吸收系数。(默认值:0.0)。如果类型为 float,则吸收系数对所有墙壁和所有频率都相同。如果 absorption 是一个一维张量,其形状必须是 (6,),分别表示 “west”“east”“south”“north”“floor”“ceiling” 的吸收系数。如果 absorption 是一个二维张量,其形状必须是 (num_bands, 6)num_bands 是频率带的数量(通常为 7)。

  • scattering (floattorch.Tensor, 可选) – 墙体材料的散射系数。(默认值:0.0) 此参数的形状和类型与 absorption 相同。

  • mic_radius (float, 可选) – 麦克风的半径(单位:米)。(默认值:0.5)

  • sound_speed (float, 可选) – 声速(单位:米/秒)。(默认值:343.0)

  • energy_thres (float, 可选) – 停止追踪射线的能量阈值。(默认值:1e-7) 每条射线的初始能量为 2 / num_rays

  • time_thres (float, 可选) – 射线追踪的最大持续时间。(单位:秒) (默认值:10.0)

  • hist_bin_size (float, 可选) – 输出直方图中每个 bin 的大小。(单位:秒) (默认值:0.004)

返回

追踪射线能量被记录的 3D 直方图。

每个 bin 对应一个给定的时间段。形状为 (channel, num_bands, num_bins),其中 num_bins = ceil(time_thres / hist_bin_size)。如果 absorptionscattering 都是浮点数,则 num_bands == 1

返回类型

(torch.Tensor)

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并让您的问题得到解答

查看资源