捷徑

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[原始碼]

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

此實作基於 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 是 1D 張量,則形狀必須為 (6,),分別代表 "west""east""south""north""floor""ceiling" 的吸收係數。如果 absorption 是 2D 張量,則形狀必須為 (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 的完整開發人員文件

查看文件

教學

取得初學者和進階開發人員的深入教學

查看教學

資源

尋找開發資源並獲得問題解答

查看資源