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.1.tar.gz (7.0 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.1-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: convolution_reverb-0.1.1.tar.gz
  • Upload date:
  • Size: 7.0 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.1.tar.gz
Algorithm Hash digest
SHA256 f4c04f01bc6b0057a67ed8d5e0decd6489c26024894e79fec8c0b0ed160cb441
MD5 24cc9045f9c38c83872306338af3bd39
BLAKE2b-256 ddb1351a91d80d5234262ba1cda9a4b34c0ea5f9649e4da708aaae70cf02b6cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for convolution_reverb-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d68b5210c99fb7920344ab9f6a2626b41f1d8bd1690cb6ed596fee2efac67011
MD5 77ce3de0e1460efb1828c1f9ec1bb031
BLAKE2b-256 20930f2a157f0461e236d6839840c54bf99768b94a0ab97d400e03d9cfa49988

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