딥러닝/Speech dataset Processing
Stereo channel 핸들링 하기
Kaen2891
2024. 3. 25. 15:06
728x90
잘 정제된 음성 데이터셋의 경우 (특히 딥러닝 음성인식 및 오디오 처리 학습용의 경우) 거의 Mono channel로 공개가 되어있다.
하지만 다양한 실환경에서 녹음된 오디오 데이터셋의 경우, 녹음 기기에 따라 2이상의 channel로 구성된, Stereo channel로 공개가 된 데이터들이 많다.
간단하게 아래와 같이 음성을 로드하게 되면
import torchaudio
import torch
waveform = './test.wav'
y, sr = torchaudio.load(waveform)
y의 size를 출력해보면, 예를 들어, (2, 100) 과 같이 나올 수가 있다.
이를 Stereo channel이라고 한다.
간단하게 아래의 그림을 보면 이해가 쉽게 될 것 같은데, stereo는 채널 별 들리는 소리가 약간 다른 반면, mono는 stereo의 평균을 낸 것으로 간주할 수 있다.
우리가 해결하고자 하는건, 어쨋든 n-channel 이상의 waveform에 대해 평균을 내주어 mono channel로 만드는 것으로 간주할 수 있다.
아래와 같이 해결하면 된다.
import torchaudio
import torch
waveform = './test.wav'
y, sr = torchaudio.load(waveform)
waveform_mono = torch.mean(y, dim=0).unsqueeze(0)
위와 같이 진행하면 waveform_mono는 (1, 100)의 형태로 얻어질 수 있다.
728x90