快捷方式

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[source]

透過射線追蹤計算能量直方圖。

該實現基於 pyroomacoustics [Scheibler 等人,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 (float or torch.Tensor, optional) – 牆體材料的吸收係數。(預設值: 0.0)。如果型別是 float,則吸收係數對所有牆壁和所有頻率都相同。如果 absorption 是 1D Tensor,形狀必須是 (6,),分別表示 "west", "east", "south", "north", "floor", 和 "ceiling" 的吸收係數。如果 absorption 是 2D Tensor,形狀必須是 (num_bands, 6)num_bands 是頻帶的數量(通常為 7)。

  • scattering (float or torch.Tensor, optional) – 牆體材料的散射係數。(預設值: 0.0) 此引數的形狀和型別與 absorption 相同。

  • mic_radius (float, optional) – 麥克風的半徑,單位米。(預設值: 0.5)

  • sound_speed (float, optional) – 聲速,單位米/秒。(預設值: 343.0)

  • energy_thres (float, optional) – 停止追蹤射線的能量閾值。(預設值: 1e-7)。每條射線的初始能量是 2 / num_rays

  • time_thres (float, optional) – 射線追蹤的最大持續時間。(單位: 秒)。(預設值: 10.0)

  • hist_bin_size (float, optional) – 輸出直方圖中每個 bin 的大小。(單位: 秒)。(預設值: 0.004)

返回:

追蹤到的射線能量記錄的 3D 直方圖。

每個 bin 對應一個給定的時間段。形狀為 (channel, num_bands, num_bins),其中 num_bins = ceil(time_thres / hist_bin_size)。如果 absorptionscattering 都是 float 型別,則 num_bands == 1

返回型別:

(torch.Tensor)

文件

查閱 PyTorch 的完整開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源