Итак, у вас есть образец гласной с известной высотой тона, и вы просто хотите изменить ее?
- personLuis Mendo  schedule11.11.2013
comment
@LuisMendo: Не совсем, я хочу создать синтетическую гласную из спектральной огибающей моего существующего образца. (Конечное намерение состоит в том, чтобы создать простую мелодию)
- personThe General  schedule11.11.2013
Берут один период выборки (определяется визуально). Важно, чтобы он начинался и заканчивался на значении 0 (или очень близком к нему), чтобы избежать потрескивания, вызванного разрывами в каждой конечной точке.
Повысьте или понизьте дискретизацию формы волны, извлеченной на шаге 1, по мере необходимости, чтобы получить желаемую высоту тона. Апсемплинг уменьшает высоту звука, даунсэмплинг увеличивает. Например, вы можете использовать функцию resample.
Исправьте множество этих периодов один за другим, пока не получите желаемую продолжительность в 5 секунд. Для этого вы можете использовать функцию repmat.
Умножьте этот 5-секундный сигнал поэлементно на временную огибающую желаемой формы. Форма огибающей обычно представляет собой быструю атаку в виде линейного нарастания от 0 до 1, затем длинное постоянное значение, а затем уменьшающееся нарастание до 0.
Для большей реалистичности вы можете ввести медленные изменения амплитуды в «постоянной» части огибающей (эффект тремоло). Вы также можете извлечь на шаге 1 часть сигнала, содержащую не один, а несколько периодов сигнала. Эти периоды не будут точно такими же, и это добавит звуку «теплоты».