2014-07-12 9 views
1

연결된 마이크에서 오는 입력을 테스트하여 C#을 사용하여 특정 볼륨 레벨을 통과했는지 확인하려고합니다.마이크 입력 확인

내가 들어 본 내용은 NAudio이지만 예제와 데모에서 찾을 수있는 것은 사용자를 기록한 다음 나중에 테스트 할 수있는 파일에 녹음 내용을 저장하는 도구입니다. 솔직히 말하면 내가 바라는 것이 아닙니다.

답변

2

이 플래그가 입력 목소리가 주어진 볼륨을 초과 표시입니다 this

bool startRecording = false; 
void waveIn_DataAvailable(object sender, WaveInEventArgs e) 
{ 
    for (int index = 0; index < e.BytesRecorded; index += 2) 
    { 
     short sample = (short)((e.Buffer[index + 1] << 8) | 
          e.Buffer[index + 0]); 
     float sample32 = sample/32768f; 
     if (sample32 > 0.2) //0.2 is desired volume; sample32 is 0~1 
     { 
      // Start recording 
      startRecording = true; 
     }    
    } 
    if (startRecording) 
    { 
     waveFile.Write(e.Buffer, 0, e.BytesRecorded); 
     waveFile.Flush(); 
    } 
} 

startRecording에 기능 waveIn_DataAvailable을 수정하여 주어진 볼륨을 초과 할 때 음성을 녹음 할 수 있습니다, 그래서 우리는 웨이브 파일 데이터를 쓰기 시작합니다.