Main Content

오디오 파일 읽기 및 쓰기

오디오 파일에 데이터를 쓰고 파일에 대한 정보를 가져온 다음 MATLAB® 작업 공간으로 데이터를 다시 읽어옵니다.

오디오 파일에 쓰기

파일 handel.mat에서 샘플 데이터를 불러옵니다.

load handel.mat

이제 작업 공간에 오디오 데이터로 구성된 행렬 y와 샘플 레이트 Fs가 생겼습니다.

audiowrite 함수를 사용하여 현재 폴더에 있는 handel.wav라는 WAVE 파일에 데이터를 씁니다.

audiowrite("handel.wav",y,Fs)
clear y Fs

audiowrite 함수는 또한 다른 오디오 파일 형식에도 쓸 수 있습니다. 실행 가능한 형식의 전체 목록은 가져오기 및 내보내기에 지원되는 파일 형식 항목을 참조하십시오.

오디오 파일에 대한 정보 가져오기

audioinfo 함수를 사용하여 WAVE 파일 handel.wav에 대한 정보를 가져옵니다.

info = audioinfo("handel.wav")
info = 
             Filename: 'pwd\handel.wav'
    CompressionMethod: 'Uncompressed'
          NumChannels: 1
           SampleRate: 8192
         TotalSamples: 73113
             Duration: 8.9249
                Title: []
              Comment: []
               Artist: []
        BitsPerSample: 16

audioinfo는 1×1 구조체형 배열을 반환합니다. SampleRate 필드는 오디오 데이터의 샘플 레이트(단위: 헤르츠)를 나타냅니다. Duration 필드는 파일 재생 시간(단위: 초)을 나타냅니다.

오디오 파일 읽기

audioread 함수를 사용하여 파일 handel.wav를 읽습니다. audioread 함수는 다른 파일 형식을 지원할 수 있습니다. 실행 가능한 형식의 전체 목록은 가져오기 및 내보내기에 지원되는 파일 형식 항목을 참조하십시오.

[y,Fs] = audioread("handel.wav");

오디오를 재생합니다.

sound(y,Fs)

파일을 대화형 방식으로 읽을 수도 있습니다. 데이터 가져오기를 선택하거나 현재 폴더 브라우저에서 파일 이름을 더블 클릭합니다.

오디오 데이터 플로팅하기

경과 시간을 나타내는 y와 길이가 같은 벡터 t를 만듭니다.

t = 0:seconds(1/Fs):seconds(info.Duration);
t = t(1:end-1);

오디오 데이터를 시간 함수로 플로팅합니다.

plot(t,y)
xlabel('Time')
ylabel('Audio Signal')

Figure contains an axes object. The axes object with xlabel Time, ylabel Audio Signal contains an object of type line.

참고 항목

| |

관련 항목