快捷方式

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

基于图像源法 [Allen 和 Berkley,1979] 计算房间冲激响应(RIR)。该实现基于pyroomacoustics [Scheibler 等人,2018].

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) 的张量。

  • max_order (int) – 源反射的最大次数。

  • 吸收 (浮点数torch.Tensor) – 声能的吸收 [维基百科贡献者,n.d.] 墙体材料的系数。如果数据类型为 float,则所有墙体和所有频率的吸收系数相同。如果 absorption 是一个一维张量,则形状必须为 (6,),其中值分别表示 "west""east""south""north""floor""ceiling" 的吸收系数。如果 absorption 是一个二维张量,则形状必须为 (7, 6),其中 7 代表八度音程带的数量。

  • output_length (整数None, 可选) –

    模拟 RIR 信号的输出长度。如果为 None,则长度定义为

    \[\frac{\text{max\_d} \cdot \text{sample\_rate}}{\text{sound\_speed}} + \text{delay\_filter\_length} \]

    其中 max_d 是镜像声源和麦克风之间的最大距离。

  • delay_filter_length (整数, 可选) – 用于计算 sinc 函数的滤波器长度。(默认值:81)

  • center_frequency (torch.Tensor, 可选) – 多频带墙壁的八度音程带的中心频率。仅在 absorption 是二维张量时使用。

  • sound_speed (浮点数, 可选) – 声速。(默认值:343.0)

  • sample_rate (浮点数, 可选) – 生成的房间冲激响应信号的采样率。(默认值:16000.0)

返回值:

模拟房间冲激响应波形。维度为 (通道, rir_length) 的张量。

返回值类型:

(torch.Tensor)

注意

如果 absorption 是一个二维张量并且 center_frequency 设置为 None,则八度音程带的中心频率固定为 [125.0, 250.0, 500.0, 1000.0, 2000.0, 4000.0, 8000.0]。用户需要将 absorption 的值调整到相应的频率。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获得针对初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题的答案

查看资源