숨겨진 Markov 모델 임계 값


14

mfcc 및 숨겨진 마르코프 모델을 사용하여 사운드 인식을위한 개념 증명 시스템을 개발했습니다. 알려진 사운드에서 시스템을 테스트 할 때 유망한 결과를 제공합니다. 시스템은 알려지지 않은 사운드가 입력 될 때 가장 근접한 결과를 반환하고 악보를 결정하기 위해 점수가 그다지 명확하지 않습니다. 예 :

나는 숨은 마르코프 모델 3 개를 연설 용으로, 하나는 수돗물에서 나오는 물과 책상을 두드리는 것을 훈련 시켰습니다. 그런 다음 보이지 않는 데이터에서 테스트하고 다음 결과를 얻습니다.

input: speech
HMM\knocking:  -1213.8911146444477
HMM\speech:  -617.8735676792728
HMM\watertap:  -1504.4735097322673

So highest score speech which is correct

input: watertap
HMM\knocking:  -3715.7246152783955
HMM\speech:  -4302.67960438553
HMM\watertap:  -1965.6149147201534

So highest score watertap which is correct

input: knocking
HMM\filler  -806.7248912250212
HMM\knocking:  -756.4428782636676
HMM\speech:  -1201.686687761133
HMM\watertap:  -3025.181144273698

So highest score knocking which is correct

input: unknown
HMM\knocking:  -4369.1702184688975
HMM\speech:  -5090.37122832872
HMM\watertap:  -7717.501505674925
Here the input is an unknown sound but it still returns the closest match as there is no system for thresholding/garbage filtering.

키워드를 발견하면 OOV (어휘가 아닌) 사운드를 가비지 또는 필러 모델을 사용하여 걸러 낼 수 있지만, 알 수없는 단어를 사용하여 학습 할 수 있습니다. 시스템이 녹음 할 수있는 모든 소리를 모릅니다.

음성 인식 시스템에서 유사한 문제가 어떻게 해결됩니까? 그리고 오 탐지를 피하기 위해 어떻게 문제를 해결할 수 있습니까?

답변:


5

아주 좋은 질문입니다!

언급했듯이 HMM이 "알지 못함"(OOV라고 함) 답변을 제공하는 유일한 방법은 항상 모델에서 가능성이 가장 높은 상태를 출력하므로 특수 상태를 제공하는 것입니다. 그래서 당신은 OOV 아래에 높은 가능성을 가지고 있는지 확인해야 모든 아닌 입력 speech, watertap또는 knocking.

짧은 대답은 이것이 불가능하다는 것입니다. 때문에 HMM 절대 패턴 인식기 아니다. 그것은 당신의 모델 하에서 출력의 가능성과 훈련 된 상황에서만 비교합니다 .

speech그리고 knocking동시에 입력을 생각하십시오 . 이 입력에는 각각의 특징이 있기 때문에 HMM은이 두 상태 사이에서 "주저"할 것입니다. 결국 그중 하나를 출력하지만 OOV를 출력하지는 않을 것입니다. 키워드 검색의 경우 HMM을 지속적으로 속이는 영리한 입력을 찾을 수 있다고 생각합니다. 그러나 저자는 아마도 어떤 입력을 기대해야하는지 알며 , 이러한 독 극적인 입력이 드물도록 알 수없는 단어의 유한 목록을 선택했습니다.

나는 당신도 같은 것을 권합니다. HMM을 사용할 상황에 대해 생각하고 제거하려는 가장 일반적인 입력에 대해 OOV 상태를 훈련시킵니다. 여러 OOV 상태가 있다고 생각할 수도 있습니다.


2
그러나 제스처 인식을위한 hmm 기반 임계 값 모델은 여기에 설명되어 있습니다 : herin.kaist.ac.kr/Publication/PS/hklee_PAMI_i09611.pdf . 그들은 각 hmm의 상태가 결합 된 인체 공학적 hmm 인 임계 값 모델을 작성합니다. "임계 값 모델은 기준선 역할을합니다. 특정 제스처 모델이 임계 값 이상으로 올라가면 후보 제스처가 발견됩니다."그러나 제 문제는 java 및 jahmm 라이브러리를 사용하고 있으며 인체 공학적 옵션이 없다고 생각합니다. 흠.
Radek

제목에서 알 수 있듯이 이것은 HMM 기반 알고리즘이므로 HMM이 아닙니다. 순수한 HMM이 귀하의 요구에 맞지 않으며 임계 값 기반 분류 기가 실제로 더 적합하다고 생각됩니다.
gui11aume

5

이것은 제스처 인식 분야에서 다소 일반적입니다. 이에 대한 답변은 Lee and Kim (1999) 의 논문에 설명 된 임계 값 모델을 만드는 것입니다.

필러 또는 가비지 모델과 동일한 역할을 수행하지만 사용자가 말한대로 별도로 교육 할 필요는 없습니다. 다른 모델의 모든 자체 전환 상태를 연결하고 동일한 확률로 전환을 초기화하여 해당 상태를 완전히 연결하여 임계 값 모델을 만들 수 있습니다. 실제로 어떻게 할 수 있는지 종이를 살펴보십시오.

라이브러리가 인체 공학적 모델을 지원하지 않더라도 필요한 크기의 모델을 수동으로 작성하고 그에 따라 상태를 설정하는 것을 방해해서는 안됩니다. 실제로 라이브러리를 원한다면 Accord.NET Framework 에서 임계 값 모델 지원을 포함한 숨겨진 Markov 모델 분류기 구현을 사용할 수 있습니다 .

면책 조항 : 나는이 도서관의 저자입니다.


맞습니다. 임계 값 모델을 수동으로 만들 수 있습니다. 예를 들어 sound1과 sound2라는 두 개의 hmm 모델이 있다고 가정하겠습니다. 두 가지 상태가 있습니다. 그런 다음 4 가지 상태로 임계 값 모델을 만듭니다. 각 상태의 초기 값은 0.25입니다. 그런 다음 가능한 모든 전이에 대해 균일 한 분포를 설정하여 가능한 모든 상태 전이 (0,0), (0,1), (1,0), (1,1), (1,2), (2,1), (2,2) 등은 0.0625의 균일 분포를 얻습니다. 그런 다음 임계 값 모델의 상태 1 및 2에 대해 상태 1 및 2의 opdf를 sound1에서 설정하고 임계 값의 상태 3 및 4에 대해 상태 1 및 2의 opdf를 sound2에서 설정했습니다.
Radek

위에서 설명한 방법이 맞습니까?
Radek

1
아마도 ... 아마도 내 설명이 약간 느슨했습니다. 임계 값 모델에 대한 전환 행렬의 대각선 요소는 다른 모델에서 원래 자체 전환 확률을받습니다. 상태에서 다른 상태로의 전환은 균일 한 확률로 초기화됩니다. 코드를 지적하는 것이 게으른 것처럼 보이지만 때로는 코드가 코드보다 이해하기 쉽습니다 .
Cesar

그런데 Lee와 Kim의 논문을 읽고 다르게 해석했거나 구현이 잘못되었다고 생각되면 알려주십시오.
Cesar

3

그래서 내가 한 일은 : 필러 모델의 단순화 된 버전을 만들었습니다. 워터 탭 사운드, 노킹 사운드 및 스피치 사운드를 나타내는 각각의 hmm은 각각 0.3 초 ​​내지 10 초의 다양한 길이의 30, 50, 90 개의 트레이닝 세트로부터의 사운드에 의해 훈련 된 별도의 6 상태 흠이다. 그런 다음 노킹, 워터 탭 및 음성에 대한 모든 훈련 세트 사운드로 구성된 1 상태 흠 인 필러 모델을 만들었습니다. 따라서 주어진 사운드에 대해 hmm 모델 스코어가 필러의 스코어보다 큰 경우 사운드가 인식되고 그렇지 않으면 알 수없는 사운드입니다. 나는 실제로 큰 데이터는 없지만 보이지 않는 소리에 대한 오 탐지 거부와 진정한 오음 거부에 대해 다음 테스트를 수행했습니다.

true positives rejection
knocking 1/11 = 90% accuracy
watertap 1/9 = 89% accuracy
speech 0/14 = 100% accuracy


false positives rejection
Tested 7 unknown sounds
6/7 = 86% accuracy

그래서이 빠른 테스트에서 나는이 접근법이 충분하지 않을 수도있는 이상한 느낌이 있지만 합리적인 결과를 제공한다고 결론 지을 수 있습니다.


+1 이것은 매우 흥미 롭습니다. 이 작업을 이미 잊어 버린 경우이 방법이 결국 작동 했습니까? '충진재 / 기타'모델로 충분 했습니까? 그렇지 않다면 결국 다른 것을 구현 했습니까?
Zhubarb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.