Usage
Installation
You can install torch-pitch-shift from PyPI.
pip install torch-pitch-shift
To upgrade an existing installation of torch-pitch-shift, use the following command:
pip install --upgrade --no-cache-dir torch-pitch-shift
Importing
First, import torch-pitch-shift.
# import all functions
from torch_pitch_shift import *
# ... or import them manually
from torch_pitch_shift import get_fast_shifts, pitch_shift
What's included
torch-pitch-shift includes the following:
| Type | Name | Description |
|---|---|---|
| Function | pitch_shift |
Shift the pitch of a batch of waveforms by a given amount. |
| Function | get_fast_shifts |
Utility function for calculating pitch-shifts that can be executed quickly. |
| Function | semitones_to_ratio |
Utility function to convert semitonal shifts into ratios. |
| Function | ratio_to_semitones |
Utility function to convert rational shifts to semitones. |
Methods
pitch_shift
Shift the pitch of a batch of waveforms by a given amount.
Arguments
| Argument | Required | Default Value | Type | Description |
|---|---|---|---|---|
input |
Yes | |
Input audio clips of shape (batch_size, channels, samples) | |
shift |
Yes | float or Fraction |
Inputs of type float indicate the amount to pitch-shift in # of bins (where 1 bin == 1 semitone if bins_per_octave == 12). Inputs of type Fraction indicate a pitch-shift ratio (usually an element in get_fast_shifts()). |
|
sample_rate |
Yes | int |
The sample rate of the input audio clips. | |
n_fft |
No | sample_rate // 64 |
int |
Size of FFT. Default sample_rate // 64. Smaller is faster. |
bins_per_octave |
No | 12 |
int |
Number of bins per octave. Default is 12. |
Return value
| Type | Description |
|---|---|
|
The pitch-shifted batch of audio clips |
get_fast_shifts
Search for pitch-shift targets that can be computed quickly for a given sample rate.
| Argument | Required | Default Value | Type | Description |
|---|---|---|---|---|
sample_rate |
Yes | int |
The sample rate of an audio clip. | |
condition |
No |
|
Callable |
A function to validate fast shift ratios. Default value limits computed targets to values between -1 and +1 octaves. |
Return value
| Type | Description |
|---|---|
List[Fraction] |
A list of fast pitch-shift target ratios that satisfy the given conditions. |
semitones_to_ratio
Convert semitonal shifts into ratios.
| Argument | Required | Default Value | Type | Description |
|---|---|---|---|---|
semitones |
Yes | float |
The number of semitones for a desired shift. |
Return value
| Type | Description |
|---|---|
Fraction |
A Fraction indicating a pitch shift ratio |
ratio_to_semitones
Convert rational shifts to semitones.
| Argument | Required | Default Value | Type | Description |
|---|---|---|---|---|
ratio |
Yes | Fraction |
The ratio for a desired shift. |
Return value
| Type | Description |
|---|---|
float |
The magnitude of a pitch shift in semitones |
Example
See example.py to see an example of torch-pitch-shift in action!