Skip to main content

A Python package for applying convolution reverb to audio files using PyTorch

Project description

Convolution Reverb

A Python package for applying convolution reverb to audio files using PyTorch. This package provides an efficient implementation of convolution reverb using FFT-based convolution.

Installation

Install the package using pip:

pip install convolution-reverb

Requirements

  • Python >= 3.8
  • PyTorch >= 2.0.0
  • torchaudio >= 2.0.0

See requirements.txt

Usage

Basic Usage

from convolution_reverb import apply_reverb
import torchaudio

# Load audio files
audio_path = "path/to/your/audio.wav"
ir_path = "path/to/your/impulse_response.wav"
output_path = "output.wav"

# Apply reverb
original, convolved, sample_rate = apply_reverb(
    audio_path=audio_path,
    ir_path=ir_path,
    output_path=output_path,
    normalize=False
)

Working with Tensors Directly

If you're already working with audio tensors in PyTorch:

import torch
import torchaudio
from convolution_reverb import apply_reverb

# Load a sample audio, impulse response
audio_wav, audio_wav_sr = torchaudio.load("path/to/your/audio.wav")
ir_tensor, ir_sr = torchaudio.load("path/to/your/impulse_response.wav")

# Apply reverb
original, convolved, sr = apply_reverb(
    audio_wav=audio_tensor,
    audio_wav_sr=audio_wav_sr,
    ir_wav=ir_tensor,
    ir_wav_sr=ir_sr,
    normalize=False
)

API Reference

apply_reverb

apply_reverb(
    audio_path: Union[str, None] = None,
    audio_wav: Union[torch.Tensor, None] = None,
    audio_wav_sr: Union[int, None] = None,
    ir_path: Union[str, None] = None,
    ir_wav: Union[torch.Tensor, None] = None,
    ir_wav_sr: Union[int, None] = None,
    output_path: Union[str, None] = None,
    normalize: bool = False
) -> Tuple[torch.Tensor, torch.Tensor, int]

Parameters:

  • audio_path: Path to the input audio file
  • audio_wav: Input audio as a torch.Tensor (n_channels, n_samples)
  • audio_wav_sr: Sampling rate of the input audio tensor
  • ir_path: Path to the impulse response file
  • ir_wav: Impulse response as a torch.Tensor (n_channels, n_samples)
  • ir_wav_sr: Sampling rate of the impulse response tensor
  • output_path: Path where the output audio will be saved
  • normalize: Whether to normalize the output audio

Returns:

  • Tuple containing:
    • Original audio waveform (torch.Tensor)
    • Convolved audio waveform (torch.Tensor)
    • Sample rate (int)

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

convolution_reverb-0.1.3.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

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

convolution_reverb-0.1.3-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file convolution_reverb-0.1.3.tar.gz.

File metadata

  • Download URL: convolution_reverb-0.1.3.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.16

File hashes

Hashes for convolution_reverb-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ec76c6ec32c3f93105bd624be66ddf3a449b29e72fc3e09835adbb45bc1b8ee5
MD5 095858816fe319273ffb95d619d0cf0f
BLAKE2b-256 bff20aba839e95ae65b3b89607e2d3fe7046c4f80a5e9ba3b6088fd5f6bac1df

See more details on using hashes here.

File details

Details for the file convolution_reverb-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for convolution_reverb-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 081d1cf59c7a4309aaefead357cd9c5910d2237e7ba5d67c995ec7553054fd57
MD5 11f8055b265d21a4e242a8160c17e97a
BLAKE2b-256 2f389dbe0d208da0659a6e28e0afda95ace80eaa5e428c9ea7376eb8a49b397a

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