У меня есть массив numpy, содержащий 88200 элементов, представляющих 2-секундный аудиосэмпл, сэмплированный с частотой дискретизации 44,1 кГц. Шаг образца предполагается равным 130,8 Гц. Я могу интерполировать аудиоданные и растягивать их в 4-секундный сэмпл, который бы делил половину тона, или сжимать его в 1-секундный сэмпл, который бы удваивал тональность.
Я хочу реализовать скольжение высоты тона (портаменто). То есть какая-то интерполяция, так что шаг начинается с 130,8 Гц и плавно скользит до 261,6 Гц, когда образец заканчивается.
Как я могу сделать это, используя Python и numpy? Я думаю, что смогу справиться с этим, используя функции linspace
и interp
, но не могу заставить его работать правильно.