Вопрос

У меня есть программа, которая загружает PCM-данные с веб-сервера, которые позже использует для воспроизведения через стандартный PCM-плеер.Я хочу иметь возможность разрешать пользователям изменять высоту звука данных PCM во время их воспроизведения.

Кто-нибудь знает, как это сделать?

Это было полезно?

Решение

Я не знаю ни одной библиотеки цифровой обработки сигналов для C #, но, похоже, это полный исходный образец для изменения высоты тона в .net.:
http://sites.google.com/site/mikescoderama/pitch-shifting

Другие советы

Самое простое решение - воспроизвести звук с более высокой частотой дискретизации, чем он был записан - воспроизведение файла с частотой 22 кГц при частоте 44 кГц удвоит высоту звука.Вы можете добиться того же, просто выбросив некоторые сэмплы из звука (плохое качество) или передискретизировав звук (хорошее качество, если используется хороший алгоритм, такой как интерполяция sinc).

Но существует зависимость - изменение высоты тона при воспроизведении с разной частотой дискретизации изменит не только высоту тона, но и длину звука.Длительность и высоту звука можно изменять независимо, но это не так просто и требует изрядной обработки пения для достижения хорошего качества.Обычно это делается в частотной области с использованием быстрых преобразований Фурье.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top