위의 이미지는 골드웨이브라는 음성 파일 프로그램이다. 간단하게 Trim하거나 두 개 이상의 음성파일을 동시에 틀어볼 수 있고 음성 파장을 볼 수 있어서 주로 활용하였다. 과제가 진행되는 동안 가장 크게 공들여서 작업했던 부분이 음성 파일 앞 뒤에 0.2~0.5초의 무음구간을 삽입하는거였고, 그럴려면 시각적으로 보는게 검수하기 편했었다.
샘플레이트, 비트, 채널이 무엇인지는 링크를 참조하자.
from pydub import AudioSegment
import matplotlib.pyplot as plt
import scipy.fftpack
import scipy.io.wavfile
import numpy as np
import os
import shutil
def print_wavfile_info(filepath):
wav = AudioSegment.from_wav(filepath)
# 샘플레이트(44100, 24000, 8000 등)
print("SampleRate : ", wav.frame_rate)
# 1은 8비트, 2는 16비트
print("SampleByte : ", wav.sample_width*8, "bit")
# channel * 샘플의바이트수가 됨. 채널은 1은 모노, 2는 스테레오
print("Channel : ", int(wav.frame_width/wav.sample_width))
#샘플링레이트 변경
def wavfile_sampling_change(filepath, frame_rate):
wav = AudioSegment.from_wav(filepath)
wav = wav.set_frame_rate(frame_rate)
wav.export(filepath, format='wav')
#비트레이트 변경
def wavfile_bitrate_change(filepath, bitrate):
wav = AudioSegment.from_wav(filepath)
wav = wav.set_sample_width(sample_width=bitrate)
wav.export(filepath, format='wav')
#채널 변경(스테레오 --> 모노 변경)
def wavfile_channel_change(filepath, channel): # 1은 모노 2는 스테레오
wav = AudioSegment.from_wav(filepath)
wav = wav.set_channels(channels=channel)
wav.export(filepath, format='wav')
result_path=os.getcwd()+'\\result_files'
raw_file_folderlist=os.listdir(os.getcwd()+'\\raw_files')
for i in raw_file_folderlist:
file_list=os.listdir(os.getcwd()+'\\raw_files'+'\\'+i)
for j in file_list:
src=os.getcwd()+'\\raw_files'+'\\'+i+'\\'+j
if not os.path.exists(result_path+'\\'+i):
os.mkdir(result_path+'\\'+i)
shutil.copy2(src, result_path+'\\'+i)
dst=result_path+'\\'+i+'\\'+j
wavfile_sampling_change(dst, 16000) #44.1 khz --> 16 khz 로 변경
wavfile_channel_change(dst, 1)# stereo --> mono 변경
#wavfile_bitrate_change(filepath, bitrate)
좋은 정보 얻어갑니다, 감사합니다.