Я пытаюсь найти библиотеку или образец кода или что-то в правильном направлении, которое могло бы помочь мне изменить скорость звука, сохраняя при этом нормальный шаг. Мне нужна эта функциональность в приложении с открытым исходным кодом, поэтому желательно, чтобы библиотека была открытым исходным кодом. Любые идеи, которые помогут мне на правильном пути?Аудио без изменения высоты тона
ответ
Если вам нужно передать сигнал в домене аудио, играя вовремя, но не в поле: Вы должны знать, из чего состоит ваш сигнал. Чтобы синтезировать хорошую частоту, когда она стоит.
1/У вас есть все известные параметры, как в аналоговом синтезе, вы знаете, что хотите синтезировать одну ноту, поэтому вы настраиваете все частоты осцилляторов, которые вы можете, на это значение: я думаю, это не то, что вы можете сделать, любое виртуальный/виртуальный аналоговый синтезатор может сделать это по вашему требованию.
2/у вас есть исходный звук, который нужно контролировать Вы должны разложить его в элементах, которые вы можете контролировать, чтобы выполнить ваши гармонические ограничения, во времени и ритмических ограничениях: 3 решения.
a. FFT, быстрое преобразование четырьмя, дающее вам мощность на всех гармониках вашего исходного звука, и до вас, чтобы увеличить временную шкалу некоторых гармоник или другой (действительно готовить рецепты, но действительно стоит эксперемента)
b , Wavelet, близкий к FFT, но сфокусированный на гармонических деталях всякий раз, когда они происходят, и насколько они точны. (представьте себе, как FFT оптимизируется на некоторых значащих частотах в каждый момент времени)
c.Granular Synthesis, я думаю, что это самое простое: это окна с перфорациями (применяя какой-то закон Гаусса-Норма к каждому фрагменту звука), подобно облакам окон над вашим оригинальным звуком, развязывая его во многих частях, полностью управляемых на своих шаг и продолжительность (скорость и период окна, примененного к звуку)
Возможно, может быть много других техник, но я не знаю.
Статья в Википедии по адресу Audio timescale-pitch modification может быть полезна.
Основная идея состоит в том, что вам необходимо преобразовать сигнал вдоль оси времени в сигнал с осями времени и частоты. Затем вы соответствующим образом изменяете этот сигнал, а затем конвертируете обратно.
Оконечные быстрые преобразования Фурье представляют собой общий подход - взять короткий сегмент сигнала, преобразовать в частотную область, повторить для периодических шагов через сигнал. Изменение сигнала в основном означает повторное масштабирование частоты и/или временной оси перед применением обратных преобразований. Окна, вероятно, немного перекрываются, поэтому вы можете смешать (перекрестно затухать) с одного блока на другой.
Другим возможным подходом является использование вейвлет-преобразований, банков фильтров или какого-либо другого близкородственного подхода с несколькими разрешениями. В основе их лежит использование интегральных преобразований, в которых каждая частота обрабатывается в соответствующем масштабе (относительно длины волны). Например, базлет мулета очень похож на вариацию комбинации синус + j.cosine с одной длиной волны, которая является основой преобразования Фурье.
Теоретически это должно обеспечить лучший результат. Поскольку у преобразований, естественно, есть оси времени и частоты, нет необходимости генерировать ось времени «искусственно» путем оконной обработки. Это может избежать иногда очевидных проблем с кроссфейдом между блоками с помощью оконного преобразования Фурье. Я собираюсь предположить, что вместо этого могут быть другие артефакты, но я недостаточно знаю, что они знают.
Извините, если моя терминология вводит в заблуждение или неправильно в отношении материалов с несколькими разрешениями - я очень далек от того, чтобы быть экспертом.
- 1. Замедление воспроизведения аудиофайла без изменения высоты тона?
- 2. Увеличение скорости речи без изменения высоты тона
- 3. Изменение высоты тона и частота записи аудио
- 4. Создать код изменения тона?
- 5. аудио пример частоты тона
- 6. Изменение высоты тона
- 7. MIDI-трек без изменения тона или инструмента
- 8. Как получить образцы из CMSampleBufferRef для изменения высоты тона?
- 9. Изменение высоты тона в praat
- 10. JFugue - слайды/изгибы высоты тона
- 11. Сдвиг высоты тона аудиофайла в iOS8
- 12. динамическое изменение скорости воспроизведения звука в as3 без изменения высоты тона
- 13. Множественное определение высоты тона: БПФ или другое?
- 14. Определение рыскания, высоты тона и рулона
- 15. Как установить значение высоты тона для видео?
- 16. Bootstrap 3 - панель соответствия высоты тона (CSS3)
- 17. Какие объекты JFrame поддерживают изменение высоты тона?
- 18. Как выполнить кепструм для определения высоты тона
- 19. Android: настройка высоты тона на телефоне
- 20. Python: извлечение высоты тона с помощью Aubio
- 21. Выравнивание высоты тона для 2D-текстур
- 22. Javascript - текст в речь с контролем высоты тона и длительности
- 23. Изменяет ли скорость воспроизведения исходного узла изменение высоты тона?
- 24. Изменение высоты прокрутки iframe без изменения высоты iframe
- 25. Изменение ширины диаграммы chart.js без изменения высоты
- 26. 100% высоты контейнера без изменения контейнера
- 27. Добавить границу без изменения высоты блока
- 28. Android: процентная ширина без изменения высоты
- 29. Изменение голоса/высоты тона во время записи звука
- 30. непреднамеренное изменение высоты тона с использованием MS SAPI TTS
Вам нужно указать, о каком исходном материале вы говорите - например. обычно вы используете разные алгоритмы для речи и музыки. – 2010-12-09 22:26:03
@Paul, он должен работать с обоими, но если вы говорите, что это разные алгоритмы, скажите, пожалуйста, какие алгоритмы используются для обоих. – silow 2010-12-09 22:51:23