까먹고 또 미뤄지기 전에 적어보는 음성데이터 로드 방법(시행착오 방법)
아직까지도 뭐가 정답인지는 모르지만 내가 했던 방법을 남겨보려고 한다.
음성데이터를 로드할때, 보통은 나뉘어져 있는 데이터를 받아서 쓴 기억밖에 없다.
하지만 하나의 음성 데이터를 통째로 넣어서 학습을 하거나 추론을 해야하는 경우,
지금까지는 음성파일을 모두 저장하고 사용했다. (1초 입력이면 1초짜리 파일 저장하는식)
그냥 이미지 받아서 쓰듯 쓰면 되니까 편하기도 하고. 그런데 비효율적이라는 생각도 들고
하나의 파일을 통째로 순차대로 넣어야 하는 상황이 생겨서 조금 다른 방법을 써보기로 했다.
이번에 쓴 방법은, 데이터 하나를 넣고 dataset 안에서 나눠서 주기!
입력으로 하나의 파일 주소만 받고 dataset안에서 해당 구역의 1초 만큼 잘라서
넘겨주는 방법이다. 학습으로 쓸때는 dataloader에서 shuffle = True로 주면 되고
연속으로 써야할때는 shuffle을 끄면 됨. 이 방법이 좋은 점은 데이터를 변경할때,
일일이 파일을 전처리하지 않고 그냥 주소만 추가하면 된다는 게 편리하다.
그 대신 로드시간이 좀 걸렸는데, 처음에 할때는 데이터셋 줄때마다 wav를 로드하다보니
시간이 너무 오래 걸려서 처음 init에서 한번 받고 저장해서 쓰니 시간이 많이 단축되었다.
로드 시간 단축해라 닝겐 분발해라!!