Вы можете достичь всего этого, используя спектральное представление звука.Изменение частоты дискретизации действительно повлияет на высоту тона, поэтому вы сохраните частоту дискретизации такой, какая она есть.Выполните преобразование Фурье исходного звукового сигнала, затем вы можете перемещать частоты вверх и вниз в спектре, как вы хотите.После этого выполните обратное преобразование Фурье, чтобы получить «воспроизводимые» аудиоданные обратно.Для длинного аудиопотока разбейте данные на куски и обязательно примените оконное управление и перекрывайте обработанные данные, в других местах вы услышите щелчки на границах кусков, поскольку они не будут плавно прилипать после манипулирования частотами.