torchaudio.prototype.functional.simulate_rir_ism¶
- torchaudio.prototype.functional.simulate_rir_ism(room: Tensor, source: Tensor, mic_array: Tensor, max_order: int, absorption: Union[float, Tensor], output_length: Optional[int] = None, delay_filter_length: int = 81, center_frequency: Optional[Tensor] = None, sound_speed: float = 343.0, sample_rate: float = 16000.0) Tensor [源代码]¶
已弃用
警告
此函数已被弃用。它将在 2.9 版本中移除。此弃用是向维护阶段过渡 TorchAudio 的大规模重构工作的一部分。更多信息请参见 https://github.com/pytorch/audio/issues/3902。
根据图像源方法 [Allen and Berkley, 1979] 计算房间冲激响应 (RIR)。实现基于pyroomacoustics [Scheibler et al., 2018]。
- 参数
room (torch.Tensor) – 房间坐标。 room 的形状必须是 (3,),代表房间的三个维度。
source (torch.Tensor) – 声源坐标。形状为 (3,) 的张量。
mic_array (torch.Tensor) – 麦克风坐标。形状为 (channel, 3) 的张量。
max_order (int) – 声源反射的最大阶数。
absorption (float 或 torch.Tensor) – 墙壁材料对声能的吸收 [Wikipedia contributors, n.d.] 系数。如果 dtype 是
float
,则吸收系数对所有墙壁和所有频率都相同。如果absorption
是一个一维张量,其形状必须是 (6,),其中值分别代表"west"
、"east"
、"south"
、"north"
、"floor"
和"ceiling"
的吸收系数。如果absorption
是一个二维张量,其形状必须是 (7, 6),其中 7 代表倍频程带的数量。output_length (int 或 None, 可选) –
模拟 RIR 信号的输出长度。如果为
None
,则长度定义为\[\frac{\text{max\_d} \cdot \text{sample\_rate}}{\text{sound\_speed}} + \text{delay\_filter\_length}\]其中
max_d
是图像源与麦克风之间的最大距离。delay_filter_length (int, 可选) – 计算 sinc 函数的滤波器长度。(默认:
81
)center_frequency (torch.Tensor, 可选) – 多带墙壁的倍频程带的中心频率。仅当
absorption
是二维张量时使用。sound_speed (float, 可选) – 声速。(默认:
343.0
)sample_rate (float, 可选) – 生成的房间冲激响应信号的采样率。(默认:
16000.0
)
- 返回
模拟的房间冲激响应波形。形状为 (channel, rir_length) 的张量。
- 返回类型
注意
如果
absorption
是二维张量且center_frequency
设置为None
,则倍频程带的中心频率固定为[125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0, 8000.0]
。用户需要根据相应的频率调整absorption
的值。