나는 SO에 대한 많은 질문을 읽었으며 솔직히 그들 각각은 그것에 대해 특별한 방법을 설명하지 않습니다. 어떤 사람들은 "FFT"라고 말하고 어떤 사람들은 "제로 크로싱"이라고 말합니다. 그러나 저는 디지털 오디오 입력이 특정 주파수에 대한 진폭의 배열로 구성되어 있다는 것을 이해하기까지했습니다. 그 너머.
이제 나이키 스트 정리, 주파수, 진폭, 푸리에 시리즈 등을 알고 있으며, 2 학년 전 대학 프로그램에서 2 ~ 3 년 전에 그렇게했습니다. 그러나 당시 우리는 실제로 푸리에의 실제 사용법을 많이 배웠지 않았으며, 주제를 통과하기에 충분한 학습 이상의 주제에 대해 더 깊이 파고 들지 않았습니다. 하지만 이제는 모든 것을 사용해야합니다.
감지하려는 소리의 스냅 샷은 다음과 같습니다.
분명히 소리에는 고유 한 그래프가 있습니다. 그래프에서 독특한 뾰족한 선에 대한 고유 한 특성을 추출하는 방법을 이해하고 싶습니다. 진폭, 주파수 등이 얼마나 많은지, 그리고 얼마나 많은 시간 동안-그것은 사소한 것이지만 추측합니다.
모호하지 않은 간단한 명령 목록을 단계별로 원합니다. 이해할 수없는 용어를 Google에 표시 할 수 있습니다.
아마도 이것처럼? -
입력 오디오 데이터 가져 오기
플롯 크로마토 그램
무소음 환경에서 감지하려는 소리에 대한 스펙트럼 그래프를 가져옵니다.
그래프를 연구하십시오-그 소리의 독특한 특성을 그려라
(4)의 사운드 특성을 사용하여 라이브 오디오 피드의 특정 특성을 감지 할 수있는 기능을 만드십시오.
일치하는 것이 있으면 작업이 완료된 것입니다.
허위 부정을 제거하기 위해 알고리즘을 연마하십시오.
내가 혼란스러워하는 곳은-약 3,4,5는 어떻게합니까? 특히 3과 4. 사용자가 나중에 사용할 제스처 입력으로 사운드를 녹음 할 수있는 소프트웨어를 만들고 있기 때문에 시스템에서 사운드를 녹음하고 라이브 오디오와 일치시킬 수 있기를 원합니다. 그 소리 제스처를 감지하는 피드. 예를 들어 기침, 손가락 찰칵, 휘파람 또는 박수. 또는 자음 또는 또는 또는 라고 말합니다 . 거의 모든 소리.
나는 사용자가 꽤 환경에서 몸짓으로 저장하고 싶은 소리를 녹음하도록 생각하고있었습니다. 그리고 사용자는 조용한 시간 패딩 사이에서만 소리를냅니다 . 녹화 시작 및 종료시 3 초
말하자면, 처음 3 초 동안, 시스템은 현재 입력이 정상적인 조용한 배경음임을 확립 할 것입니다. 그리고 그래프의 갑작스런 변화는 소리 입력 시작입니다. 그리고 때 정지, 녹화는 또 다른 3 초에 대한 후행 계속할 것 조용한 시간 패딩을 . 이것은 사용자가 수동으로 수행합니다. 그런 다음 그래프의 급격한 변화가 지속 된 부분 (패딩 시간 사이)의 특성 만 자동으로 저장합니다.
따라서 해당 부분의 특성은 해당 사운드의 제스처 데이터로 저장되어 나중에 라이브 오디오 피드에서 특정 사운드를 감지하는 데 사용됩니다.
문제는이 모든 것을 평범한 영어로 생각하고 있다는 것입니다. 내 코드에서 효율적으로 구현하려면 수학과 물리학을 생각해야합니다. 내 코드에서 무엇을 작성하고 어디에서 코드를 작성해야하는지에 대한 단서가 없습니다.
이게 길면 미안 해요