Аудио манипуляции с микрофоном в реальном времени windows - PullRequest
0 голосов
/ 26 марта 2020

Я хотел бы создать приложение (Target p c windows), которое позволит вам изменять микро вход в режиме реального времени, например, вводить звуковые эффекты или даже модулировать ваш голос.

Я искал по inte rnet и только нашли людей, говорящих, что было бы невозможно без использования виртуального аудио кабеля виртуальный аудиокабель, поэтому я хотел бы получить некоторую помощь о том, как это можно сделать (достаточно указать только название библиотеки) или с чего начать.

Ответы [ 2 ]

0 голосов
/ 28 марта 2020

Во-первых, вы можете использовать профессиональное готовое программное обеспечение для этого - Цифровое звуковое рабочее место (DAW) в сочетании с огромным количеством плагинов для этого.

См. 5 шагов для обработки вашего инструмента в режиме реального времени в DAW .

И Что такое (аудио) прямой мониторинг?

Если вы уверены, что должны писать свои собственные, вы можете использовать библиотеки для обработки звука в реальном времени (насколько мне известно, C ++ лучше для этого, чем C#).

Эти библиотеки действительно работает. Они специально разработаны для реального времени .

https://github.com/thestk/rtaudio
http://www.portaudio.com/

См. Также https://en.wikipedia.org/wiki/Csound

Если у вас еще нет профессионального звукового интерфейса, но вы хотите минимизировать задержку , прочитайте о Asio4All

0 голосов
/ 28 марта 2020

Связанный учебник работал для меня. В нем звук записывается и сохраняется в формате .wav.

Ключом к получению этого потока на динамик будет открытие SourceDataLine и его вывод вместо записи в файл wav. Таким образом, вместо вывода в строке 59 до AudioSystem.write выведите метод записи SourceDataLine.

IDK, если возникнет проблема обратной связи. Вероятно, это хорошо для вывода на наушники, а не на динамики!

Чтобы добавить эффект, AudioInputLine должен быть доступен и обработан в сегментах. В каждом сегменте должно произойти следующее:

  • получить массив байтов из AudioInputLine
  • , преобразовать аудиобайты в PCM
  • , применить свой аудиоэффект к PCM (если эффект представляет собой изменение громкости с течением времени, это можно сделать путем постепенного изменения коэффициента громкости от 0 до 1, умножения коэффициента на PCM)
  • преобразовать обратно в аудиобайты
  • запись в SourceDataLine

Все эти шаги были рассмотрены в публикациях StackOverflow.

Учебное пособие по ссылкам упрощает расположение файлов, потоки, а также остановку и запуск обрабатываются. Но самое главное, он показывает работающую прямую звуковую линию от микрофона.

...