형태로 클러스터 된 데이터 인식


9

나는 새 노래를 감지하고 분류하기 위해 Python에서 프로젝트를 진행 중이며 웨이브 파일을 주파수 대 시간 데이터로 변환 해야하는 위치에 있습니다. 이것은 큰 문제가 아니었지만 다른 음절을 그룹으로 분류 할 수 있으려면 데이터 클러스터가 특정 형태로 나타날 때 감지 할 무언가를 작성해야합니다. 데이터가 어떻게 보이는지에 대한 아이디어를 제공하기 위해 다음은 데이터가 플롯 될 때 어떻게 보이는지의 이미지입니다.

여기에 이미지 설명을 입력하십시오

SciPy를 사용하여 Pearson 상관 관계를 실행할 수 있도록 각 음절 (각 측면이 분리 된 각 모양)을 변수 또는 자체 파일에 저장하는 방법이 필요합니다.

또한 파이썬을 선호하지만 다른 방법으로 코딩하면 다른 언어로 코딩 할 수 있습니다.

감사!


나는 내가 제안하려고하는 것에 완전히 익숙하지 않지만 음절의 속성을 포함하는 잔물결이있는 연속 잔물결 변환처럼 보입니다.
heltonbiker

모양을 찾아야합니까, 아니면 새를 분류하려고합니까? 그렇다면 Hidden Markov Model의 사운드를 사용합니까?
Mikhail

답변:


2

두 가지 질문 :

1 / 8s 근처에서 100ms 정도 안정적인 피치를 관찰 한 다음 8.5 초까지 급격히 증가합니다. 이 전체 시퀀스 (8에서 8.5)가 단일 엔티티를 형성합니까, 아니면 두 단계 (안정된 다음 감소)를 두 엔티티로 간주합니까?

2 / 감독 여부에 관계없이 작업 하시겠습니까? 찾을 "패턴"을 미리 알고 있습니까?

  • 감독없이 일하고 싶다면 (예를 들어 녹음을 수집하고 그로부터 "구조화 된 표현"을 추출하는 것을 목표로하는 경우), 문제는 첫 번째 단계에서 음성 활동 감지와 유사합니다. 신호 강도를 "피치 (pitchiness)"메트릭과 함께 사용하면 (여기서는 브리드 범위에서 최대 자기 상관의 최대 비율, 여기서 1kHz-5kHz) 강한 피치 톤이 활성화 된 세그먼트를 감지 할 수 있습니다. 결과 시퀀스를 중간 필터링하여 부드럽게 한 다음 임계 값을 지정하여 다른 세그먼트를 얻습니다. 신호를 세그먼트로 나누면 흥미로운 것을 할 수 있습니다. 예를 들어, 각각의 피치 궤적 (각 FFT 프레임에 대해 가장 강한 주파수 피크를 갖는 시퀀스 또는 실제 피치 추정기로 추출 된 것)을 추출 할 수 있습니다. DTW를 사용하여 각 블록 사이의 쌍별 거리 행렬을 계산하고 군집 알고리즘 (k- 평균, 집단 군집)을 사용하여 유사한 피치 패턴 그룹 (8 : 8.5 및 10 : 10.5 세그먼트)을 식별하십시오. 감독되지 않은 접근 방식은 지나치게 세분화 될 수 있습니다. 예를 들어 7.6 : 8.5 및 9.6 : 10.5는 동일한 두 블록의 반복으로 인식되지만 기본적으로 하나의 단일 패턴 일 수 있지만 다음과 같은 것을 사용할 수 있습니다.한 수준의 구조를 갖도록 결정 합니다.

  • 신호에 레이블을 지정하려는 사전 정의 된 "패턴"사전이있는 경우 음성 인식에 사용되는 접근 방식을 따르는 것이 좋습니다. 케이스 피치는 고려해야 할 유일한 정보입니다! 음성 인식 시스템은 하나의 단일 FST 디코딩 동작에서 분할 및 인식 작업을 모두 처리한다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.