Воспроизведение аудио в режиме реального времени с микрофона.C # - PullRequest
4 голосов
/ 13 октября 2010

Я хочу создать приложение, которое позволит мне записывать со своего микрофона и воспроизводить записи на других компьютерах.Однако в этот момент мне бы хотелось, чтобы он воспроизводился на моем собственном компьютере, чтобы он мог работать.

Я смотрю на NAudio в течение последних нескольких часов, и кажется, что он может помочь мне достичь этой цели.

Мне просто интересно, имел ли кто-либо еще опыт с этим и возможно ли это вообще?

Спасибо, Стюарт

Ответы [ 4 ]

2 голосов
/ 14 октября 2010

Есть пример проекта на codeproject, который делает это:
http://www.codeproject.com/KB/cs/Streaming_wave_audio.aspx
Я не знаю, насколько низкая задержка.

В качестве кодека я бы порекомендовал Speex (по крайней мере для речи). Это бесплатно, с открытым исходным кодом и предлагает низкую задержку и низкую пропускную способность.

0 голосов
/ 09 ноября 2010

NAudio - отличная отправная точка для захвата и воспроизведения звука, но, как отметил Марк, задержка может быть проблемой.

Если вы сделаете следующий шаг и захотите отправить аудиоданные по сети,Вам понадобится кодек для сжатия данных, поскольку PCM или WAV не сжаты, а для передачи голоса вам понадобится лишь небольшая часть пропускной способности, необходимой для WAV.Поскольку вы работаете с C #, доступен порт Speex для C #, называемый NSpeex , на который, возможно, стоит взглянуть ..

0 голосов
/ 14 октября 2010

Это возможно, но вы вряд ли получите низкую задержку с WaveIn / WaveOut (возможно, лучшие результаты с WASAPI). Вы можете использовать BufferedWaveProvider (в последнем исходном коде) для сохранения звука, записанного с микрофона, и подачи его на звуковую карту.

0 голосов
/ 13 октября 2010

Bass Audio Library - еще один надежный вариант, который стоит рассмотреть.

...