Skip to main content

PyTorch-based room impulse response (RIR) simulation toolkit for static and dynamic scenes.

Project description

TorchRIR

PyTorch-based room impulse response (RIR) simulation toolkit focused on a clean, modern API with GPU support. This project has been substantially assisted by AI using Codex.

Installation

pip install torchrir

Examples

  • examples/static.py: fixed sources/mics with binaural output.
    uv run python examples/static.py --plot
  • examples/dynamic_src.py: moving sources, fixed mics.
    uv run python examples/dynamic_src.py --plot
  • examples/dynamic_mic.py: fixed sources, moving mics.
    uv run python examples/dynamic_mic.py --plot
  • examples/cli.py: unified CLI for static/dynamic scenes, JSON/YAML configs.
    uv run python examples/cli.py --mode static --plot
  • examples/cmu_arctic_dynamic_dataset.py: small dynamic dataset generator (fixed room/mics, randomized source motion).
    uv run python examples/cmu_arctic_dynamic_dataset.py --num-scenes 4 --num-sources 2
  • examples/benchmark_device.py: CPU/GPU benchmark for RIR simulation.
    uv run python examples/benchmark_device.py --dynamic

Core API Overview

  • Geometry: Room, Source, MicrophoneArray
  • Static RIR: simulate_rir
  • Dynamic RIR: simulate_dynamic_rir
  • Dynamic convolution: DynamicConvolver
  • Metadata export: build_metadata, save_metadata_json
from torchrir import DynamicConvolver, MicrophoneArray, Room, Source, simulate_rir

room = Room.shoebox(size=[6.0, 4.0, 3.0], fs=16000, beta=[0.9] * 6)
sources = Source.from_positions([[1.0, 2.0, 1.5]])
mics = MicrophoneArray.from_positions([[2.0, 2.0, 1.5]])

rir = simulate_rir(room=room, sources=sources, mics=mics, max_order=6, tmax=0.3)
# For dynamic scenes, compute rirs with simulate_dynamic_rir and convolve:
# y = DynamicConvolver(mode="trajectory").convolve(signal, rirs)

For detailed documentation, see the docs under docs/ and Read the Docs.

Future Work

  • Ray tracing backend: implement RayTracingSimulator with frequency-dependent absorption/scattering.
  • CUDA-native acceleration: introduce dedicated CUDA kernels for large-scale RIR generation.
  • Dataset expansion: add additional dataset integrations beyond CMU ARCTIC (see TemplateDataset), including torchaudio datasets (e.g., LibriSpeech, VCTK, LibriTTS, SpeechCommands, CommonVoice, GTZAN, MUSDB-HQ).
  • Add regression tests comparing generated RIRs against gpuRIR outputs.

Related Libraries

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

torchrir-0.2.0.tar.gz (39.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

torchrir-0.2.0-py3-none-any.whl (44.8 kB view details)

Uploaded Python 3

File details

Details for the file torchrir-0.2.0.tar.gz.

File metadata

  • Download URL: torchrir-0.2.0.tar.gz
  • Upload date:
  • Size: 39.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for torchrir-0.2.0.tar.gz
Algorithm Hash digest
SHA256 88dc7ff0b615a6c7fc0854b51e6feb354a6edd116673fb7a8e26805dd14bba4a
MD5 9f71405d3009e79ccd71d340f4da1fec
BLAKE2b-256 1d631114443bab0200e42bc9e622f3370fedd9236d8a7da8e1760cb7c6c47129

See more details on using hashes here.

File details

Details for the file torchrir-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: torchrir-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 44.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for torchrir-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e64cea293a3b17261ad9f2dbf99c6a53a96c498a4421ca104f8eeddb7db00e8b
MD5 9b9c9c858c82ea7f07677dca031dea62
BLAKE2b-256 9e01ad806a2565aed25298da1d3104ded15e74d6d58d410bdf6cf6dac6c17901

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page