히비스서커스의 블로그

Speech Commands Data set 본문

Theory/Dataset Information

Speech Commands Data set

HibisCircus 2021. 1. 22. 23:40
728x90

음성분류를 시작하기 앞서 아날로그 데이터가 어떻게 디지털 데이터로 변환될 수 있는지 알아보자.

 

 

 

아날로그 데이터는 연속데이터이고 디지털 데이터는 이진 데이터로 비연속적이다.

따라서, 이 과정에서는 왜곡이 일어날 수 밖에 없는데 표본화, 양자화, 부호화 과정을 통해 간단히 알아보자.

 

 

표본화: 아날로그 데이터에서 일정 시간 간격을 두고 표본을 채취하는 방법이다. 

=> 이 과정은 사인 그래프를 히스토그램으로 나타낼 때를 연상하면 도움이 된다.

 

양자화: 표본화 과정에서 뽑은 표본이 소수점을 무한히 갖는 경우 컴퓨터는 그것을 다 표현할 수 없기 때문에 근사값을 구한다.

=> 이 과정에서 왜곡이 생긴다!!

 

부호화: 표본화와 양자화를 거친 디지털 정보를 0과 1의 이진수로 표현하는 과정이다.

 

 

 

자세한 설명은 이곳에서 확인할 수 있다.

m.blog.naver.com/PostView.nhn?blogId=yong_hee0214&logNo=140156731945&proxyReferer=https:%2F%2Fwww.google.com%2F

 

표본화(Sampling)와 양자화(Quantization)

1. 표본화와 양자화?표본화와 양자화. 처음 들었을 때 그 의미가 명확히 떠오르지 않는 다소 생소한 용어들...

blog.naver.com

 

 

 

다음으로 음성분류할 Speech Commands Dataset에 대해 알아보자.

 

출처 : https://www.kaggle.com/c/tensorflow-speech-recognition-challenge/data

 

이곳에서의 설명을 요약해보자면

 

음성인식과 연설에서 딥러닝을 이용하기 위해 잘 알려진 데이터셋이 없기에  TensorFlow와 AIY팀에서 Speech Commands Dataset을 TensorFlow를 통해 훈련하고 추론할 수 있도록 만들었다. 1초 정도의 음성명령어와 이에 대한 라벨이 되어 있다.  

캐글에서 원하는 것은 yes, no, up, down, left, right, on, off, stop, go등의 라벨들을 Test data에서 예측할 수 있어야 하고, unknown이나 silence도 고려하면 좋다고 하였다.

 

 

음성데이터 모은 방식은 다음과 같다고 한다.

 

출처 : https://www.kaggle.com/c/tensorflow-speech-recognition-challenge/data

 

아래와 같은 핵심 단어들은 대부분의 화자들이 5번 정도를 기록했다고 한다.

"Yes", "No", "Up", "Down", "Left", "Right", "On", "Off", "Stop", "Go", "Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", and "Nine"

 

잘 인식되지 않는 단어들을 구별하는 것을 돕기 위해 아래와 같이 10개의 단어들을 보조적 단어로 하여 오직 한 번 씩만 말했다고 한다.

 "Bed", "Bird", "Cat", "Dog", "Happy", "House", "Marvin", "Sheila", "Tree", and "Wow"

 

 

 

즉, 위와 아래의 내용을 통합해보자면 

핵심단어 중 "Yes", "No", "Up", "Down", "Left", "Right", "On", "Off", "Stop" and "Go" 와 같은 단어는 라벨도 그대로 되어 있으니 옳게 구별해야하는 것이다. 그리고 이 이외의 단어들("Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Bed", "Bird", "Cat", "Dog", "Happy", "House", "Marvin", "Sheila", "Tree", and "Wow") 들은 unknown로 분류하면 되는 것이다.

 

 

그럼 이제 코딩하러 가보자!

 

 

 

-히비스서커스-

728x90