I am able to shrink/stretch an audio signal using Python code for a phase vocoder, as well as the stretchAudio function from Matlab's Audio Toolbox. Although both methods do indeed alter the audio signal in the time domain without changing the pitch (which is what I want), both methods damage the spectral structure enough that the sound quality becomes metallic and reverberant, which is not acceptable for the experiment I need to conduct.
I have been told that it is possible (though unorthodox) to shrink and stretch the signal with no unwanted artifacts by using decimation and linear interpolation. Unfortunately I cannot imagine how to do this. I'll appreciate any information or explanations you can offer. Ideally I'll be able to implement this in Python or Matlab.