wangyang199609 / rir-generator-1

Home Page:https://rir-generator.readthedocs.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Room Impulse Response Generator

Documentation Status Build Status DOI

Python- and C-based room impulse response generator, for use in convolutional reverb.

Official Python port of https://github.com/ehabets/RIR-Generator.

Installation

pip install rir-generator

Usage

import numpy as np
import scipy.signal as ss
import soundfile as sf
import rir_generator as rir

signal, fs = sf.read("bark.wav", always_2d=True)

h = rir.generate(
    c=340,                  # Sound velocity (m/s)
    fs=fs,                  # Sample frequency (samples/s)
    r=[                     # Receiver position(s) [x y z] (m)
        [2, 1.5, 1],
        [2, 1.5, 2],
        [2, 1.5, 3]
    ],
    s=[2, 3.5, 2],          # Source position [x y z] (m)
    L=[5, 4, 6],            # Room dimensions [x y z] (m)
    reverberation_time=0.4, # Reverberation time (s)
    nsample=4096,           # Number of output samples
)

print(h.shape)              # (4096, 3)
print(signal.shape)         # (11462, 2)

# Convolve 2-channel signal with 3 impulse responses
signal = ss.convolve(h[:, None, :], signal[:, :, None])

print(signal.shape)         # (15557, 2, 3)

About

https://rir-generator.readthedocs.io/

License:MIT License


Languages

Language:Python 55.0%Language:C++ 43.2%Language:C 1.7%