웃음 트랙은 언제 시작됩니까?


14

주말 프로젝트 중 하나가 신호 처리의 심해로 나를 데려 왔습니다. 무거운 수학이 필요한 모든 코드 프로젝트와 마찬가지로 이론적 근거가 부족하더라도 솔루션에 대한 해결책을 찾는 것이 행복하지만이 경우에는 아무것도 없으며 내 문제에 대한 조언을 좋아할 것입니다. 즉, 나는 TV 쇼에서 라이브 관객이 언제 웃을 지 정확히 파악하려고합니다.

나는 웃음을 감지하기위한 머신 러닝 접근법을 읽는 데 꽤 많은 시간을 보냈지 만, 개별 웃음을 감지하는 것과 관련이 있다는 것을 깨달았습니다. 한 번에 웃고있는 200 명의 사람들은 다른 음향 학적 특성을 가질 것입니다. 그리고 나의 직관은 신경망보다 훨씬 더 복잡한 기술을 통해 구별 될 수 있어야한다는 것입니다. 그래도 완전히 틀렸을 수도 있습니다! 문제에 대한 의견을 부탁드립니다.

지금까지 시도한 내용은 다음과 같습니다. 최근 토요일 밤 라이브 에피소드에서 5 분 동안 발췌하여 두 번째 클립으로 만들었습니다. 그런 다음이 "웃음"또는 "웃음 없음"이라고 표시했습니다. Librosa의 MFCC 기능 추출기를 사용하여 데이터에서 K-Means 클러스터링을 실행하고 좋은 결과를 얻었습니다. 두 클러스터는 내 레이블에 매우 깔끔하게 매핑되었습니다. 그러나 더 긴 파일을 반복하려고하면 예측에 물이 들어 가지 않았습니다.

내가 지금 시도 할 것 :이 웃음 클립을 만드는 것에 대해 더 정확할 것입니다. 블라인드 스플릿 및 정렬 대신 수동으로 추출하여 대화를 통해 신호를 오염시키지 않습니다. 그런 다음 1/4 초 클립으로 분할하고 이들의 MFCC를 계산 한 다음이를 사용하여 SVM을 학습합니다.

이 시점에서 내 질문 :

  1. 이 중 어느 것이 의미가 있습니까?

  2. 통계가 여기에 도움이 될 수 있습니까? 나는 Audacity의 스펙트로 그램 뷰 모드에서 스크롤하고 있었고 웃음이 발생하는 곳을 아주 명확하게 볼 수 있습니다. 로그 파워 스펙트로 그램에서 스피치의 특징은 "고유"입니다. 대조적으로, 웃음은 거의 정규 분포와 같이 넓은 범위의 주파수를 상당히 고르게 커버합니다. 박수로 표현되는 더 제한된 주파수 세트로 박수를 웃음과 시각적으로 구별 할 수도 있습니다. 그것은 표준 편차를 생각하게 만듭니다. Kolmogorov–Smirnov 테스트라는 것이 있는데 도움이 될까요? 로그 파워 스펙트로 그램 (위의 이미지에서 웃음은 길의 45 %에서 치는 주황색 벽으로 볼 수 있습니다.)

  3. 선형 스펙트로 그램은 웃음이 더 낮은 주파수에서 더 활기차고 더 높은 주파수를 향해 희미 해짐을 보여줍니다. 이것이 핑크 노이즈로 규정되어 있습니까? 그렇다면 문제의 발판이 될 수 있습니까? 스펙트로 그램

나는 전문 용어를 잘못 사용하면 사과합니다. 나는 Wikipedia에 꽤 많이 왔으며 혼란스러워도 놀라지 않을 것입니다.


1
"웃음 트랙을위한 견고한 탐지기를 얻기 위해 신경망이 필요하지 않습니다"에 동의합니다. 나는 또한 당신이 옳고 웃음 트랙이 iid 웃음의 (가중치) 합계라면, 당신은 어떤 종류의 정상적인 특징을 가져야한다는 것을 고려할 때 신호에서 Kolmogorov를 던지는 것에 동의합니다 . 주파수 해상도를 높이고 싶을 수도 있습니다. 그건 그렇고, DSP에 "없는"사람을 위해, 당신의 전문 용어는 꽤 괜찮습니다 :) 슬프게도, 나는 오디오 녀석이 아니기 때문에 아마별로 도움이되지 않습니다.
Marcus Müller

기꺼이 도와 드리겠습니다. 훈련에 대한 데이터가 있습니까? 가장 중요한 것 중 하나는 데이터 레이블입니다. 쓰레기-쓰레기. 가장 간단하고 효과적인 접근 방법 중 하나는 프레임 단위 GMM을 훈련시키고 가능성을 평가하는 것입니다.
jojek

주어진 시간에 신호의 전력 / 진폭을 확인하여 웃음을 침묵으로부터 분리 할 수 ​​있다면 먼저 확인하고 싶을 수도 있습니다. "무언가"가 발생하는 순간을 임계 할 수있는 가능성을 제공합니다. 그런 다음 빈도 분포를 살펴볼 수 있습니다. 예를 들어, 말하기에는 독특하고 예리한 봉우리가있을 수 있습니다 (정확히 이러한 봉우리가 어디에 있는지 상관하지 않음). 이를 추적하면 그것이 웃음인지 여부를 결정하는 값을 얻을 수 있습니다. (일관된 침묵이 없는지 확인하기 위해 볼륨 정보가 필요합니다)
user6522399

답변:


0

관찰 한 바에 따르면, 신호의 스펙트럼은 충분히 구별 가능하며,이를 웃음과 말을 분류하는 기능으로 사용할 수 있습니다.

문제를 볼 수있는 방법은 여러 가지가 있습니다.

접근법 # 1

한 번은 MFCC의 벡터 를 볼 수 있습니다 . 이것을 모든 분류기에 적용하십시오. 주파수 영역에서 많은 계수가 있기 때문에 이를 기반 으로 Adaboost 와 같은 부스팅 알고리즘 을 사용하는 캐스케이드 분류기 구조 를보고 싶을 수 있습니다. 음성 클래스와 웃음 클래스를 비교할 수 있습니다.

접근법 # 2

당신은 말이 본질적으로 시변 신호라는 것을 알고 있습니다. 따라서 효과적인 방법 중 하나는 신호 자체의 시간 변화를 보는 것입니다. 이를 위해 신호를 샘플 단위로 분할하고 해당 시간의 스펙트럼을 볼 수 있습니다. 이제, 음성이 본질적으로 더 많은 정보를 보유하고 따라서 스펙트럼 변동이 다소 큰 규정 된 기간 동안 웃음이 더 반복적 인 패턴을 가질 수 있음을 알 수 있습니다. 이를 HMM 유형의 모델에 적용 하여 일부 주파수 스펙트럼에 대해 동일한 상태를 지속적으로 유지하는지 또는 지속적으로 변경하는지 확인할 수 있습니다. 때때로, 말의 스펙트럼이 웃음의 그것과 비슷하더라도 더 많은 시간이 바뀔 것입니다.

접근법 # 3

신호에 LPC / CELP 유형의 코딩을 적용하고 잔류 물을 관찰하십시오. CELP 코딩 은 매우 정확한 음성 제작 모델을 만듭니다.

여기에서 참조하십시오 : CELP 코딩 이론

음성 신호의 중복성은 음성 신호의 단기 예측 및 장기 예측 이후에 거의 제거되고 잔차는 그 안에 거의 상관이 없다. 그런 다음 음성과 코드북 색인을 합성하는 여기가 검색되고 고정 코드북에서 게인이 검색됩니다. 최적의 코드북 인덱스 선택 기준은 로컬로 합성 된 음성과 원본 음성 신호 사이의 MMSE를 기반으로합니다.

간단히 말해, 분석기에서 예측 된 모든 음성이 제거 된 후 남은 것은 정확한 파형을 재생성하기 위해 전송되는 잔류 물입니다.

문제가 어떻게 해결됩니까? 기본적으로 CELP 코딩을 적용하면 신호의 음성이 대부분 제거되고 남은 것은 잔류 물입니다. 웃음의 경우, CELP가 개별 음성이 잔류 물이 거의없는 성대 모델링을 통해 그러한 신호를 예측하지 못하기 때문에 대부분의 신호가 유지 될 수 있습니다. 이 잔류 물을 주파수 영역에서 다시 분석하여 웃음이나 말소리인지 확인할 수 있습니다.


0

대부분의 음성 인식기는 MFCC 계수뿐만 아니라 MFCC 레벨의 1 차 및 2 차 미분도 사용합니다. 이 경우 발병이 매우 유용하며 웃음과 다른 소리를 구별하는 데 도움이 될 것이라고 생각합니다.

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