소리 인식을위한 스펙트로 그램을 이용한 딥 러닝


12

스펙트로 그램을 사용하여 소리 (예 : 동물 소리)를 분류 할 수있는 가능성을 조사했습니다. 아이디어는 깊은 컨볼 루션 신경망을 사용하여 스펙트로 그램의 세그먼트를 인식하고 하나 (또는 ​​많은) 클래스 레이블을 출력하는 것입니다. 이것은 새로운 아이디어가 아닙니다 (예 : 고래 소리 분류 또는 음악 스타일 인식 참조 ).

내가 직면하고있는 문제는 길이가 다른 사운드 파일이 있고 크기가 다른 스펙트로 그램이라는 것입니다. 지금까지 내가 본 모든 접근 방식은 고정 된 크기의 사운드 샘플을 사용하지만 사운드 파일의 길이가 10 초 또는 2 분이기 때문에이를 수행 할 수 없습니다.

예를 들어 처음에는 새 소리가 나고 끝에는 개구리 소리가납니다 (출력은 "새, 개구리"여야 함). 내 현재 솔루션은 신경망에 임시 구성 요소를 추가하는 것 (재귀 신경망을 더 많이 생성하는 것)이지만 지금은 간단하게 유지하고 싶습니다. 어떤 아이디어, 링크, 튜토리얼 ...?


1
가장 간단한 방법은 STFT (스펙 토 그램) 대신 고정 길이 FFT를 사용하는 것입니다. 그러면 가변 길이 문제가 해결됩니다. 왜 반복적 인 신경망을 적용하지 않습니까? 실례가 필요하십니까? 그렇다면 어떤 소프트웨어를 사용할 수 있습니까?
Emre

1
고정 길이 FFT로 많은 정보를 잃을 것이라고 생각합니다. 그렇게하려면 먼저 '흥미로운'부분을 찾는 분할을 먼저 수행해야한다고 생각합니다. 나는 그렇게하거나 반복적 인 신경망에 갈 수 있습니다 (예는 훌륭하지만 꼭 필요한 것은 아닙니다. Lasagne를 사용하고 싶었습니다). 내가 그것을 피하려고하는 이유는 반복 신경 네트워크의 출력을 다루기가 더 어렵 기 때문입니다 (각 단계마다 있지만 전체 파일의 레이블 만 있습니다). 그래서 가장 간단한 모델부터 시작하여 점차 더 복잡하게 만들고 싶었습니다.
user667804

사용한 결과와 찾은 최선의 방법을 알려주시겠습니까? @ user667804
nia

이 백서에서 해결책을 확인하십시오. ceur-ws.org/Vol-1609/16090547.pdf 고정 된 크기의 스펙트로 그램 청크에 CNN을 사용한 다음 출력을 평균화하여 최종 예측을 생성합니다 (개별 출력의 평균을 의미 함) 베스트).
user667804

답변:


4

ASR (자동 음성 인식)의 경우 필터 뱅크 기능은 스펙트로 그램에서 CNN만큼 우수 합니다. 표 1 . 동물 소리를 분류하기 위해 fbank에서 DBN-DNN 시스템을 훈련시킬 수 있습니다.

실제로 Viterbi 디코딩은 더 긴 발언에 적합하지 않기 때문에 더 긴 발언은 더 짧은 발언으로 나뉩니다. 당신도 똑같이 할 수 있습니다.

긴 발화를 고정 길이의 작은 발화로 나눌 수 있습니다. 긴 말을 더 작은 것으로 나누는 것은 쉽습니다. 문제는 고정 된 길이에 도달하기 위해 더 작은 발화 길이를 증가시키는 데 있습니다.

작은 발화를 강화하기 위해 스펙트로 그램의 주파수 축을 뒤틀 수 있습니다. 이 데이터 기능 보강은 ASR 성능 데이터 기능 보강을 향상시키는 것으로 나타 났습니다 .

여러 개의 사운드가 포함 된 긴 발언을 위해 음악 분할 알고리즘을 사용하여 여러 발화로 나눌 수 있습니다. 이들 발화는 분할 또는 확대에 의해 고정 길이로 만들어 질 수있다.


4

RNN은 충분한 결과를 얻지 못하고 훈련하기도 어렵 기 때문에 CNN과 함께했습니다.

특정 동물 소리는 몇 초 밖에 걸리지 않기 때문에 스펙트로 그램을 덩어리로 나눌 수 있습니다. 3 초 길이를 사용했습니다. 그런 다음 각 청크에 대해 분류를 수행하고 출력을 평균하여 오디오 파일 당 단일 예측을 만듭니다. 이것은 실제로 잘 작동하고 구현하기도 쉽습니다.

더 자세한 설명은 여기에서 찾을 수 있습니다 : http://ceur-ws.org/Vol-1609/16090547.pdf

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