본문 바로가기

DeepLearning Specialization(Andrew Ng)/Sequence Models

[코세라] [Week 3_Sequence Models & Attention mechanism] 2. Speech recognition - Audio data

728x90
Speech recognition - Audio data
1. Speech recognition
2. Trigger word detection

1. Speech recognition

1) Speech recognition 개요

  • speech recognition의 경우, 오디오클립을 위와 같이 전처리 해주어야 한다. 
    • 위쪽 그래프는 x축이 time, y축이 air pressure
    • 밑쪽 그래프는 x축이 time, y축이 frequecies이다.

  • 원래는 phonems (음소)를 이용해 speech recognition을 해왔으나 이제는audio clip을 인풋하고 바로 transcript를 산출하는  end-to-end deep learning을 할 수 있게 되었다(without hand engineering).
  • 이는 큰 데이터셋을 훈련시킬 수 있음에 따라 가능하게 된 것.

cf) 참고로 speech recognition에서 하나의 타임스텝에서의 아웃풋은 알파벳이다. 

2) Attention Model 을 이용한 Speech recognition

  • 걍 똑같이 하면 됨.
  • 차이점은 y_hat 값이 알파벳임.

2) CTC

  • audio의 특성상 인풋데이터의 길이가 매애우 길 수 있다. 
    • 1초에 100헤르츠라면 10초일 경우 1000개의 인풋이 생긴다. 
  • 그럴 경우, y_hat의 개수도 1대1로 맞춰주고 대신 blank(띄어쓰기 아님)와 space(띄어쓰기 맞음)을 이용하여 아웃풋도 1000개로 맞춰준다.

2 Trigger word detection

  • 별건 아니고 하이빅스비 같은 Trigger words 는 어떻게 학습하고 인식할거냐에 대한 것.
  • 그냥 다른 speech recognition 하듯이 전체 audio clip을 인풋하고, 해당 Trigger word가 등장하고 끝날 때 1로 label한다.
  • 근데 이렇게 되면 y label 값의 대다수가 0이 되므로 불균형을 초래한다.
    • 왜 불균형이 문제가 되냐면, 일률적으로 0으로 예측해도 상당히 높은 수준의 정확도를 보장하기 때문에 모델이 0만 아웃풋할 수도 있기 떄문
  • 따라서 1로 레이블된 timestep 이후 몇개의 timestep에도 임의로 1로 레이블하고 학습하는 해결방법이 있다.
    • 이 방법은 일종의 속임수(?)다.

질문과 비판은 언제나 환영입니다. 많이 꾸짖어주세요.

 

728x90