Time stretching allowing for pitch change
Resampling does appear to be the answer for the OP. The point is that you will not change the speed of the sample as you will not change the sampling rate by resampling just the number of samples, so therefore the time represented by each sample must change after resampling. An example will best clarify this : 

We have 10 seconds of audio data sampled at 44.1 KHz.

This is a total of 441,000 samples over 10 seconds.

We resample to twice the number of samples by inserting zeros between each sample and then low pass filtering out the images created (standard interpolation techniques that will minimize distortion).

Now we have 882,000 samples. 

The thing is we don't actually change the sampling rate! So therefore time must have stretched.  

882,000 samples / 44,100 samples/sec =  20 seconds duration!

This will result in a time stretching changing all frequencies accordingly.

Most resampling techniques are described as changing the sampling rate but would be equally applicable to this. So if the resampling technique describes changing the sampling rate by $M$, we can equally run the new samples at the same sampling rate and time would have changed by the same $M$.