앎을 경계하기

DAFIT/903 - 음성단어 분류 알고리즘 4

<DAFIT> 03 음성 단어 분류기 알고리즘 구현 04 - 오디오 데이터의 이해과정 문제

이번에는 03에서 그렸던 파형을 normalization한 데이터로 다시 한번 그려서 비교하고 차이점을 서술하는 문제이다. import wave import numpy as np import matplotlib.pyplot as plt filepath = './train/bed/004ae714_nohash_1.wav' sound = wave.open(filepath) 파일은 004ae714_nohash_1.wave를 사용했다. signal = sound.readframes(-1) signal = np.fromstring(signal, 'Int16') fs = sound.getframerate() Time=np.linspace(0, len(signal)/fs, num=len(signal)) print(si..

<DAFIT> 03 음성 단어 분류기 알고리즘 구현 03 - 오디오 데이터의 이해과정 문제

지난 오디오 데이터의 이해에 이어서 이번에도 데이터를 이해해보는 과정이다. 문제는 raw data의 shape과 data를 출력해보고 출력한 data에 대한 파형정보를 그래프로 표현해보는 것. 지난 포스팅에서 waveform을 그려봤기때문에 쉽게 해결할 수 있을 것 같다. librosa 대신 wave 라이브러리를 사용해봤다. 코드는 이곳을 참고하였다. 전 포스팅에서 사용했던 코드에다 아래코드를 추가한다. import wave wav = wave.open(path+'/'+folder_list[0]+'/'+fname[0], mode='rb') signal = wav.readframes(-1) # 최대 n 프레임의 오디오를 bytes 객체로 읽고 반환합니다. signal = np.fromstring(signa..

<DAFIT> 03 음성 단어 분류기 알고리즘 구현 02 - 오디오 데이터의 이해 과정 문제

일단 오디오 데이터가 가지고 있는 정보를 서술하기 전에 신호처리 알못이라서 예제에 나와있는 단어들부터 파악하려고 한다. Sampling Rate는 sampling frequency라고도 하고 이산적인 신호를 만들기 위해 연속적 신호에서 얻어진 단위시간 당 샘플링 횟수를 말한다. 단위는 헤르츠이다. (음.. 디지털 신호로 만들기 위해서 아날로그 신호에서 초당 샘플링한 횟수를 sampling rate라고 생각해도 되는걸까..?) bit depth는 음의 세기? 강도를 얼마나 세세하게 표현할 수 있냐라는것. 이 사이트를 보니 sample rate와 bit depth에 대해 잘 이해되게 설명해놨다. https://logicstar.kr/bbs/board.php?bo_table=gt_3_8&wr_id=23&sst..

<DAFIT> 03 음성 단어 분류기 알고리즘 구현 - 01 데이터 셋 준비 과정

지난 데이터 전처리(DF901), 딥러닝으로 은하 분류(DF902)에 이어서 음성 단어 분류기 알고리즘을 만들어보자. 음성 신호 처리 같은건 거의 몰라서,, 구글링을 굉장히 많이 할 것 같다^^;; 요구하는 것은 다음과 같다. 원래 데이터 셋은 이렇게 바로 폴더들만 들어있다. 이것을 각각 train, valid, test 폴더로 나눠서 이동시켜줘야한다. 1. test, valid, train 폴더를 만든다. 2. txt 파일을 읽어서 음원 파일 경로를 배열로 분리한다. 3. test,valid,train 폴더 안에 음원 파일이 속한 폴더가 없으면 만든다. 4. shutil.move() 사용해서 음원 파일을 이동시킨다.