Android에서 실시간으로 오디오 처리를 시도하고 있습니다.실시간 오디오 처리 Android
내가 지금까지 알아 낸 것은 사전 정의 된 시간 동안 소리를 녹음하고 WAV 파일에 저장 한 다음 처리하는 앱입니다.
이것은 충격적인 반응을 녹음하는 데 관심이 있기 때문에 충격이있을 때 자동으로 감지하여 0,5 단계의 샘플을 유지하는 것이 매우 멋지다고 생각했습니다. 충동 전과 1,5 초 후 (총 2 초).
double audioSample = (double) (array[i+1] << 8 | array[i] & 0xff)/ 32767.0;
이 나를 [-1,1] 사이의 값 준다 그래서 내 생각은 고려에 대한 것이라고 말할 수 있습니다 : 내가 지금까지 wav 파일의 바이트 배열을 처리하고 어떻게
이입니다 임펄스가 0,3보다 크거나 적음. 그 솔루션은 샘플을 버퍼에 저장하고 실시간으로 값을 확인하는 것이지만, 구현 방법에 대해서는 확신 할 수 없다고 생각합니다.
혹시 제가 살펴볼 수있는 샘플 코드 나 다른 것을 아십니까?
저는이 문제를 해결하기 위해 노력해 왔지만 버퍼 배열의 크기에 조금 얽혀 있습니다. 원형 버퍼에서 0.5 초의 샘플을 제공하기를 원한다면 어떤 크기 여야합니까? AudioRecord.getMinBufferSize (RECORDER_SAMPLERATE, \t \t RECORDER_CHANNELS, RECORDER_AUDIO_ENCODING)에 대해 알고 있습니다. 하지만 그 시간이 얼마나되는지 알지 못합니다. 크기는 – paviflo
에 해당합니다. 샘플링 속도에 따라 다릅니다. 48kHz 샘플링 속도에서 48,000 샘플/초가 있으므로 0.5 초 버퍼는 24000 샘플을 유지해야합니다. 두 개의 채널이 있다면 두 배로하십시오. 필자의 예제는 이미 샘플링이 버퍼링 전에 double로 변환되었다고 가정하여 샘플 크기를 보상하고있다. – jaket