Efficient Signal Resampling

0.4.3 · active · verified Fri Apr 10

resampy is a Python module for efficient time-series resampling, primarily designed for audio applications. It implements the band-limited sinc interpolation method for sampling rate conversion, offering performance advantages over `scipy.signal.resample` for long-duration signals. The current version is 0.4.3, with maintenance releases occurring periodically to ensure compatibility and address minor issues.

Warnings

Install

Imports

Quickstart

This example demonstrates how to generate a sine wave using NumPy and then resample it to a different sample rate using `resampy.resample`.

import numpy as np
import resampy

# Generate a 5-second sine wave at 440 Hz
sr_orig = 44100  # Original sample rate
duration = 5     # seconds
frequency = 440  # Hz

t = np.arange(int(sr_orig * duration)) / sr_orig
x = np.sin(2 * np.pi * frequency * t)

# Resample the signal to a new sample rate (e.g., 22050 Hz)
sr_new = 22050
y = resampy.resample(x, sr_orig, sr_new)

print(f"Original signal length: {len(x)} samples")
print(f"Resampled signal length: {len(y)} samples")
print(f"Original sample rate: {sr_orig} Hz")
print(f"New sample rate: {sr_new} Hz")

view raw JSON →