아주 작은 (1-3 초 길이) 사운드 효과를 감지하려고합니다. 현재 루프백 기술을 사용하여 FMod를 사용하여 다른 프로그램에서 재생되는 사운드를 캡처하고 있습니다.C + +에서 작은 사운드 효과 감지
Ive는 지난 몇 일 동안 조사한 결과, 약 50 개의 데이터베이스에 대해 캡처 된 사운드 효과를 비교할 수 있습니다. 각 바이너리 바이트를 비교하면 작업량이 약간 변할 수 있다는 점을 알고 있습니다. 사운드는 매번 캡처되는 정확한 오디오 파일입니다. 따라서 피처 피스트는 매번 거의 죽어야합니다.
적어도 10-90 초의 오디오를 녹음해야하므로 이미 지문 인식 라이브러리를 사용할 수 없습니다.
소리가 너무 작고 숫자가 적기 때문에 간단한 솔루션을 알고있는 전문가가있을 것입니다. FFT를 사용하고 주파수 등의 일부를 비교하려고했지만 키스 FFT를 사용할 수 없습니다. libocary는 절대적으로 DOCS가 없기 때문에 작동합니다.
또한 채널을 분할하는 기능을 만들었습니다. 여기
int SeperateChannels(FMOD::Sound *sound)
{
byte *ptr1, *ptr2;
unsigned int lenbytes, len1, len2;
sound->getLength(&lenbytes, FMOD_TIMEUNIT_PCMBYTES);
sound->lock(0, lenbytes, (void**)&ptr1, (void**)&ptr2, &len1, &len2);
byte *bufferLeft = new byte[(lenbytes/2)];
byte *bufferRight = new byte[(lenbytes/2)];
for(int i = 0; i < lenbytes; i += 4)
{
bufferLeft[i] = ptr1[i];
bufferLeft[i+1] = ptr1[i+1];
bufferRight[i] = ptr1[i+2];
bufferRight[i+1] = ptr1[i+3];
}
// Kiss FFT????
return 1;
}
어떤 도움도 크게 부 풀립니다. -Que
2 ~ 3 초 사운드 데이터는 얼마나 많은 메모리를 소비합니까 ?? – innosam
여기에 어떤 질문이 있습니까? –
@OliCharlesworth 오디오 기능을 맞추는 것이 문제인 것처럼 보입니다. 샘플의 노이즈에 대한 우려가있어 기계 학습 및 오디오 패턴 매칭과 관련하여 좋은 솔루션이 상대적으로 복잡 할 것이라는 강한 느낌을 받았습니다. 나는 CompVis 만 했으므로 오디오 세계에서 어떤 일을하는지 모르지만 나는 그것들이 유사하다고 상상할 것이다. 그러나 나는 '질문'이 온통 여기에있는 것처럼 느낀다. 공동 감정). – user