Я разрабатываю видеоплеер для воспроизведения видео в караоке. Одной из полезных функций будет изменение ключа песни во время воспроизведения. Итак, как я могу изменить аудиопоток видео во время воспроизведения в приложении QT? Похоже, информации об этом почти не было.
Обработка аудиосигнала довольно сложна, и я ожидаю, что математика довольно математическая. Вопрос ранее задавался здесь, на StackOverflow, так что если вы захотите выполнить фактическую обработку самостоятельно, начните с чтения этой ветки и перехода по ссылкам.
Если вы новичок в обработке аудиосигналов, вам, возможно, будет лучше найти библиотеку, которая делает то, что вы хотите, для включения в ваш проект.
Есть много способов добиться эффекта Pitch Shift, который вы ищете. Я знаю, что вы работаете с C ++ для вашего проекта, но я думаю, этот Учебник для патча Max MSP поможет вам понять некоторые основы одного алгоритма Pitch Shift. Я не знаю, насколько вы знакомы с теорией цифрового аудио, но вам нужно изучить несколько вещей: FFT, и Генерация синусоидальных волн в коде. Лично у меня до сих пор нет математического понимания работы FFT, но если вы знаете, что он делает, он может помочь вам понять, как обрабатывать аудиосигналы.
Удачи, счастливого кодирования