컴퓨터/C#

C# 마이크 입력 실시간 처리

Begi 2022. 6. 20. 23:11
반응형

NAuduio 라이브러리를 사용하여 마이크 입력을 시작하는 코드는 다음과 같다.

 

using NAudio.Wave;

 

var waveIn = new NAudio.Wave.WaveInEvent
{
    DeviceNumber = 0,
    WaveFormat = new NAudio.Wave.WaveFormat(rate: 44100, bits: 16, channels: 1),
    BufferMilliseconds = 100
};
waveIn.DataAvailable += OnDataAvailable;
waveIn.StartRecording();

 

 

다음 함수는 100ms마다 실행된다. args.BytesRecorded는 8820(=44100*2*0.1)이다.


private void OnDataAvailable(object sender, NAudio.Wave.WaveInEventArgs args)
{
    int value;
    int bytesPerSample = 2;

    for(int index = 0; index < args.BytesRecorded; index += bytesPerSample)
    {
        value = BitConverter.ToInt16(args.Buffer, index);

        /* 실시간 처리 함수 */
    }
}

 

 

NAuduio 라이브러리 설치 방법

NAudio 홈페이지

 

반응형