Смещение высоты тона JS с контролем тембра - PullRequest
0 голосов
/ 25 ноября 2018

Мне нужно хорошее решение для изменения высоты тона моего проекта, чтобы изменить голос.вокруг много библиотек pitch shift js - перепробовал их все, но они не дают желаемого результата.Главное - не контролировать тембр голоса, и я получаю звук Микки Мауса или зомби, но не настоящие голоса.в то время как здесь результат просто выдающийся, если тестировать с голосом Веги: http://www.sonicapi.com/docs/live-task-demo?task=process-elastiqueTune#demo_form к сожалению, я полный ноль с обработкой звука и хочу хотя бы знать, как это делается, какой тип алгоритма сдвига используется здесь и как мыможет достичь тембра / формантного контроля над процессом.любые намеки высоко ценятся.спасибо;)

1 Ответ

0 голосов
/ 25 ноября 2018

Этот вопрос касается очень широкой темы.Вот несколько указателей.

Высота тона, как правило, может быть смещена путем смещения частот, которые формируют голосовой материал.Простая версия этого - повторная выборка во временной области, где в основном запись воспроизводится с другой скоростью.Это, естественно, также приводит к изменению темпа, что часто нежелательно.

Чтобы сохранить темп, вам необходимо «взорвать» материал на его компоненты, другими словами, сделать изменение домена по сравнению с временнымдомен в частотную область.Для этого преобразование Фурье .После этого у вас есть оценка набора частот (и соответствующих фаз, если правильно выполнено в сложном пространстве) для семпла.

Воспринимаемый тембр голоса зависит от относительных амплитуд набора частот, называемого обертоны .Обертоны формируются в голосовом тракте говорящего и слушателя, которые слышны вместе с основной частотой.Вы можете контролировать тембр, используя различные фильтры либо во временной области, спектральной (частотной) области, либо в области cepstral .Этот вид обработки сигналов является предметом для библиотечного раздела, полного книг.

Вы можете переместиться назад из спектральной (частотной) области во временную (временную) область, используя обратное преобразование Фурье.

Подводя итог, наивный подход к смещению высоты тона необходим для преобразования выборок из временной области в спектральную, повторной выборки по оси времени, а затем обратного преобразования Фурье для возврата во временную область.

Помимо преобразования Фурье, вы можете использовать вейвлеты .Надеюсь, это поможет вам.

...