주요 콘텐츠

audioread

오디오 파일 읽기

설명

[y,Fs] = audioread(filename)filename이라는 파일에서 데이터를 읽고 샘플링된 데이터 y와 이 데이터의 샘플 레이트 Fs를 반환합니다.

예제

[y,Fs] = audioread(filename,samples)는 파일에서 선택한 범위의 오디오 샘플들을 읽습니다. 여기서 samples[start,finish] 형식의 벡터입니다.

예제

[y,Fs] = audioread(___,dataType)'native' 또는 'double'dataType에 해당하는 데이터 범위에서 샘플링된 데이터를 반환하며, 위에 열거된 구문의 모든 입력 인수를 포함할 수 있습니다.

예제

예제

모두 축소

예제 파일 handel.mat에서 WAVE 파일을 만들어 MATLAB®으로 파일을 다시 읽어 들입니다.

현재 폴더에 WAVE(.wav) 파일을 만듭니다.

load handel.mat

filename = 'handel.wav';
audiowrite(filename,y,Fs);
clear y Fs

audioread를 사용하여 데이터를 다시 MATLAB으로 읽어 들입니다.

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

오디오를 재생합니다.

sound(y,Fs);

예제 파일 handel.mat에서 FLAC 파일을 만들어 처음 2초 부분만 읽습니다.

현재 폴더에 FLAC(.flac) 파일을 만듭니다.

load handel.mat

filename = 'handel.flac';
audiowrite(filename,y,Fs);

처음 2초 부분만 읽습니다.

samples = [1,2*Fs];
clear y Fs
[y,Fs] = audioread(filename,samples);

샘플을 재생합니다.

sound(y,Fs);

.flac 파일을 만들어 파일의 처음 2초 부분만 읽은 다음 네이티브 정수 형식으로 오디오를 반환합니다.

현재 폴더에 FLAC(.flac) 파일을 만듭니다.

load handel.mat
filename = 'handel.flac';
audiowrite(filename,y,Fs);

처음 2초 부분만 읽고 데이터를 지정하고 샘플링된 데이터 y의 데이터형을 확인합니다. y의 데이터형은 double입니다.

samples = [1,2*Fs];
clear y Fs
[y,Fs] = audioread(filename,samples);
whos y
  Name          Size             Bytes  Class     Attributes

  y         16384x1             131072  double              

파일의 네이티브 형식으로 오디오 데이터를 요청한 다음 샘플링된 데이터 y의 데이터형을 확인합니다. y의 새 데이터형을 확인합니다.

[y,Fs] = audioread(filename,'native');
whos y
  Name          Size             Bytes  Class    Attributes

  y         73113x1             146226  int16              

입력 인수

모두 축소

읽을 파일의 이름으로, 파일 확장자를 포함하는 문자형 벡터 또는 string형 스칼라로 지정됩니다.

파일의 위치에 따라 filename은 다음 형식 중 하나가 될 수 있습니다.

현재 폴더

filename에 파일의 이름을 지정합니다.

예: 'sample_audio.wav'

다른 폴더

파일이 현재 폴더나 MATLAB® 경로의 폴더에 없는 경우, filename에 전체 경로 또는 상대 경로 이름을 지정합니다.

예: 'C:\myFolder\myFile.sample_audio.wav'

예: 'myFolder\sample_audio.mp3'

인터넷 URL

파일이 인터넷 URL(Uniform Resource Locator)로 지정된 경우, filename은 프로토콜 유형 'http://' 또는 'https://'를 포함해야 합니다.

예: 'http://hostname/path_to_file/sample_audio.mp3'

원격 위치

파일이 원격 위치에 저장된 경우, filename은 다음 형식으로 지정된 파일의 전체 경로를 포함해야 합니다.

scheme_name://path_to_file/my_file.ext

원격 위치에 따라 scheme_name은 다음 표에 있는 값 중 하나가 될 수 있습니다.

원격 위치scheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs
HDFS™hdfs

자세한 내용은 원격 데이터로 작업하기 항목을 참조하십시오.

예: 's3://bucketname/path_to_file/sample_audio.mp3'

예: 'myFile.mp3'

예: '../myFile.mp3'

예: 'C:\temp\myFile.mp3'

audioread는 다음 파일 형식을 지원합니다.

지원하는 플랫폼파일 형식
모든 플랫폼AIFC(.aifc)
AIFF(.aiff, .aif)
AU(.au)
FLAC(.flac)
OGG(.ogg)
OPUS(.opus)
WAVE(.wav)
Windows® 7(이상), Macintosh, Linux®MP3(.mp3)
MPEG-4 AAC(.m4a, .mp4)

Windows 7 이전 버전의 Windows 플랫폼에서 audioread를 사용하면, MP3 인코딩 데이터로 구성된 WAVE 파일을 읽을 수 없습니다.

audioread를 Windows 7(이상) 플랫폼에서 사용하면 모든 Windows Media® Foundation용 파일을 읽을 수 있습니다.

audioread를 Linux 플랫폼에서 사용하면 모든 GStreamer용 파일을 읽을 수 있습니다.

audioreadWindows 7 이상, Macintosh, Linux의 MPEG-4(.mp4, .m4v) 비디오 파일과 Windows 7(이상) 및 Linux 플랫폼의 Windows Media 비디오(.wmv) 및 AVI(.avi) 파일에서 오디오를 추출할 수 있습니다.

데이터형: char | string

읽을 오디오 샘플로, [start,finish] 형식의, 요소를 2개 가진 벡터로 지정됩니다. 여기서 startfinish는 읽을 시작 샘플과 마지막 샘플을 나타내는 양의 정수 스칼라입니다.

  • startfinish보다 작거나 같아야 합니다.

  • startfinish는 파일의 오디오 샘플 개수보다 작아야 합니다.

  • inf를 사용하여 파일의 마지막 샘플을 나타낼 수 있습니다.

참고

Windows 7 또는 Windows 10 플랫폼에서 일부 MP3 파일의 일부분을 읽을 때 audioread가 자리 이동(Shifted)된 샘플 범위를 읽을 수 있습니다. 이는 기반이 되는 Windows Media Foundation 프레임워크의 제한 사항 때문입니다.

Linux 플랫폼에서 MP3 파일과 M4A 파일의 일부분을 읽을 때 audioread가 자리 이동(Shifted)된 샘플 범위를 읽을 수 있습니다. 이는 기반이 되는 GStreamer 프레임워크의 제한 사항 때문입니다.

예: [1,100]

데이터형: double

오디오 데이터 y의 데이터 형식으로, 다음 중 하나로 지정됩니다.

'double'배정밀도 정규화 샘플
'native'파일에 있는 네이티브 형식의 샘플

MP3, MPEG-4 AAC 등 정수 형태로 데이터를 저장하지 않는 압축된 오디오 형식의 경우 'native''single'로 디폴트가 설정됩니다.

데이터형: char | string

출력 인수

모두 축소

파일의 오디오 데이터로, m×n 행렬로 반환됩니다. 여기서 m은 읽은 오디오 샘플의 개수이고 n은 파일의 오디오 채널 개수입니다.

  • dataType을 지정하지 않거나 dataType'double'인 경우 ydouble 유형이며 행렬 요소는 −1.0과 1.0 사이의 정규화된 값입니다.

  • dataType'native'이면 y는 여러 MATLAB 데이터형 중 하나를 가질 수 있으며, 이는 입력 파일의 파일 형식과 BitsPerSample 값에 따라 달라집니다. 파일의 BitsPerSample 값을 확인하려면 audioinfo를 호출하십시오.

    참고

    uint8형은 128을 "중심"으로 하므로 uint8형 데이터를 읽어올 때는 오프셋 128을 추가해야 합니다.

    파일 형식BitsPerSample y의 데이터형y의 데이터 범위
    WAVE(.wav)8uint80 ≤ y ≤ 255
    16int16-32768 ≤ y ≤ +32767
    24int32-2^31 ≤ y ≤ 2^31–1
    32int32-2^31 ≤ y ≤ 2^31–1
    32single-1.0 ≤ y ≤ +1.0
    64double-1.0 ≤ y ≤ +1.0
    WAVE(.wav)(u-law)8int16-32124 ≤ y ≤ +32124
    WAVE(.wav)(A-law)8int16-32256 ≤ y ≤ +32256
    FLAC(.flac)8uint80 ≤ y ≤ 255
    16int16-32768 ≤ y ≤ +32767
    24int32-2^31 ≤ y ≤ 2^31–1
    MP3(.mp3), MPEG-4 AAC(.m4a, .mp4), OGG(.ogg), OPUS(.opus) 및 압축된 특정 WAVE 파일N/Asingle-1.0 ≤ y ≤ +1.0

참고

여기서 ysingle 또는 double이며 BitsPerSample은 32 또는 64입니다. y의 값은 −1.0 또는 +1.0을 초과할 수 있습니다.

오디오 데이터 y의 샘플 레이트(단위: 헤르츠)로, 양의 스칼라로 반환됩니다.

제한 사항

  • Windows 7 이상 및 Linux 플랫폼의 MP3, MPEG-4 AAC 및 AVI 오디오 파일의 경우 audioread를 실행할 때 읽는 샘플의 개수가 예상보다 적을 수 있습니다. Windows 7 플랫폼에서 이는 기반이 되는 Media Foundation 프레임워크의 제한 사항 때문입니다. Linux 플랫폼에서 이는 기반이 되는 GStreamer 프레임워크의 제한 사항 때문입니다. 샘플을 정확하게 읽어야 할 경우 WAV 파일이나 FLAC 파일을 사용하여 작업을 실행하십시오.

  • Linux 플랫폼에서 audioread는 단일채널 데이터를 포함한 MPEG-4 AAC 파일을 스테레오 데이터로 읽습니다.

확장 기능

모두 확장

버전 내역

R2012b에 개발됨

모두 확장