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