soxr

1.0.0 · active · verified Thu Apr 09

soxr is a high-quality, one-dimensional sample-rate conversion library for Python, leveraging libsoxr. It is currently at version 1.0.0, which signifies API stability and is actively maintained with regular updates and performance improvements, including significant speed optimizations.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to use `soxr.resample` to convert the sample rate of a NumPy array containing audio data. It generates a dummy stereo signal and resamples it from 48kHz to 44.1kHz.

import soxr
import numpy as np

# Example: Resample stereo audio from 48 kHz to 44.1 kHz
input_sample_rate = 48000
output_sample_rate = 44100
duration_seconds = 1
num_samples_in = int(input_sample_rate * duration_seconds)

# Generate dummy stereo audio data (e.g., sine wave)
# Use float32, as it's common for audio processing
t = np.linspace(0, duration_seconds, num_samples_in, endpoint=False)
input_audio = np.array([
    np.sin(2 * np.pi * 440 * t),  # Left channel
    np.sin(2 * np.pi * 660 * t)   # Right channel
], dtype=np.float32).T # Transpose to (samples, channels) for soxr

# Perform resampling
output_audio = soxr.resample(input_audio, input_sample_rate, output_sample_rate)

print(f"Input audio shape: {input_audio.shape}") # (samples_in, channels)
print(f"Output audio shape: {output_audio.shape}") # (samples_out, channels)
print(f"Output sample rate: {output_sample_rate} Hz")

view raw JSON →