Здесь не физик.
Из того, что я узнал в университете и что подсказывает здравый смысл, изменение частоты сигнала приводит к изменению его длины во времени. Например, если синусоидальный сигнал частоты и длина переносится в частотную область, это деленное на , а затем преобразуется обратно во временную область, длина сигнала будет .
Поправьте меня если я ошибаюсь! Но это вполне интуитивно. Если вы сделаете сигнал медленнее, он займет больше времени, и наоборот.
Это причина, по которой мне сказали, что невозможно изменить частоту потокового сигнала и выводить его с той же скоростью. Например, было бы невозможно взять речь мужчины и изменить ее так, чтобы она звучала как женская, не ускорив ее.
Теперь у меня были разные наблюдения:
Кажется, что можно изменить частоту сигнала, не влияя на его длину. Один (теоретический) способ, который я могу придумать, состоит в том, чтобы понять текущие «ноты», играющие (т.е. разные частоты, создающие сигнал) через очень маленькие интервалы, изменить ноту и воспроизвести их в течение этого интервала.
Мой вопрос в том, во-первых, правильно ли я понимаю. В любом случае, существует ли математический способ изменения высоты тона сигнала без изменения его продолжительности во времени? Если нет, то как они могут это делать на практике?
Вы правы в том, что невозможно изменить частоту каждого компонента сигнала, (а) сохраняя все фазовые соотношения между частотами и (б) сохраняя длину сигнала. Однако, хотя математически невозможно сделать это точно, можно сделать то, что звучит очень похоже на человеческое ухо. Самые основные алгоритмы для этого довольно просты, но сделать это хорошо довольно сложно, и алгоритмы постоянно совершенствуются. Это называется «смещением высоты тона», если целью является изменение высоты тона, а не времени, и «растягиванием времени», если вы хотите изменить время, сохраняя высоту тона.
Это возможно потому, что ухо различает ритм и высоту тона как совершенно разные вещи. Последовательность щелчков будет звучать как последовательность щелчков, пока ее частота не превысит 20-30 Гц, после чего она превратится в жужжащий звук, который воспринимается как имеющий высоту тона. Из-за этого, как сказал DumpsterDoofus, вы можете нарезать звук на небольшие сегменты короткой продолжительности, изменить высоту каждого из них по отдельности, а затем снова сшить их вместе, повторяя вещи или оставляя пробелы там, где это необходимо.
Само по себе это звучит не очень хорошо, потому что вы слышите щелчок в конце каждого сегмента, где волны не совпадают. Его можно значительно улучшить, перекрывая «окна» звука, к каждому из которых применяется постепенное появление и исчезновение. Таким образом, вы не слышите щелчки на концах сегментов, но вы, как правило, слышите эффекты отмены фазы, когда окна снова складываются вместе. По этой причине этот метод требует небольшой настройки, чтобы он хорошо звучал на любом заданном входном звуке.
Как сказал Брэндон Энрайт, существуют также методы области Фурье. В них также обычно используются перекрывающиеся окна; Я предполагаю, что преимущество использования области Фурье заключается в том, что у вас больше контроля над фазовыми соотношениями. (Я не очень хорошо разбираюсь в этих методах.)
Довольно недавней разработкой является алгоритм «синхронного перекрытия-добавления основного тона» (PSOLA). При этом также используются перекрывающиеся окна, но синхронизируется длина окон с высотой входного звука. Из-за этого уху гораздо труднее воспринимать отдельные окна. Я называю это «алгоритмом, который разрушил музыку», потому что он ответственен за этот неприятный эффект «автонастройки», который чрезмерно использовался на вокале каждой поп-записи в течение последних десяти лет или около того. Однако у него есть и мирные применения, и регулятор высоты тона на вашем усилителе, вероятно, использует какую-то его версию.
Подробнее об этих алгоритмах вы можете узнать в Википедии .
Мусорный контейнерDoofus
Брэндон Энрайт
Раджеш Д.
Н. Дева
Раджеш Д.
Н. Дева
Мусорный контейнерDoofus
Шахбаз
Раджеш Д.
Шахбаз