ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

wavread

WAVE (.wav) サウンド ファイルの読み込み

    メモ:    wavread は将来のリリースで削除されます。代わりに audioread を使用してください。

構文

y = wavread(filename)
[y, Fs] = wavread(filename)
[y, Fs, nbits] = wavread(filename)
[y, Fs, nbits, opts] = wavread(filename)
[___] = wavread(filename, N)
[___] = wavread(filename, [N1 N2])
[___] = wavread(___, fmt)
siz = wavread(filename,'size')

説明

y = wavread(filename) は、文字列 filename で指定される WAVE ファイルを読み込み、サンプルされたデータを y で返します。filename が拡張子を含まない場合、wavread.wav を付加します。

[y, Fs] = wavread(filename) は、ファイル内のデータをエンコードするために使用されるサンプル レート (Fs) を Hz 単位で返します。

[y, Fs, nbits] = wavread(filename) は、1 サンプルあたりのビット数 (nbits) を返します。

[y, Fs, nbits, opts] = wavread(filename) は、WAV ファイルに格納されている追加情報の構造体 opts を返します。この構造体の内容は、ファイルごとに異なります。一般に使われる構造体のフィールド名は、opts.fmt (オーディオ形式情報) と opts.info (タイトル、著者などを記述するテキスト) です。

[___] = wavread(filename, N) は、ファイル内の各チャンネルから最初の N 個のサンプルのみを返します。

[___] = wavread(filename, [N1 N2]) は、ファイル内の各チャンネルから N1 から N2 のサンプルのみを返します。

[___] = wavread(___, fmt) は、ファイルから読み取られるサンプルを表すために使用されるデータ形式 y を指定します。fmt は、以下のいずれかの値か部分一致 (大文字と小文字は区別されない) です。

'double'倍精度の正規化されたサンプル (既定の設定)
'native'ファイルにあるネイティブ データ型のサンプル

siz = wavread(filename,'size') は、実際のオーディオ データではなく filename 内に含まれているオーディオ データのサイズを、ベクトル siz = [samples channels] として返します。

出力スケーリング

y の値の範囲は、指定されたデータ形式 fmt によります。WAV ファイルで見つけられた一般的なビット幅に基づく出力スケールの例は、'double''native' 形式の両方の下に与えられます。

Native 形式

ビット数MATLAB データ型データの範囲
8uint8 (符号なし整数) 0 <= y <= 255
16int16 (符号付き整数) -32768 <= y <= +32767
24int32 (符号付き整数) -2^23 <= y <= 2^23-1
32single (浮動小数点) -1.0 <= y < +1.0

Double 形式

ビット数MATLAB データ型データの範囲
N<32double-1.0 <= y < +1.0
N=32double-1.0 <= y <= +1.0
メモ: WAV ファイルに保存された N=32 ビット データ サンプルの場合、y の値は -1.0 または +1.0 を超える可能性があります。

wavread は、サンプルあたり 32 ビットまでのマルチチャンネル データをサポートします。

wavread は、Pulse-code Modulation (PCM) データ形式のみをサポートします。

サンプル ファイル handel.mat から WAV ファイルを作成し、ファイルの一部を MATLAB® に読み戻します。

% Create WAV file in current folder.
load handel.mat
 
hfile = 'handel.wav';
wavwrite(y, Fs, hfile)
clear y Fs
 
% Read the data back into MATLAB, and listen to audio.
[y, Fs, nbits, readinfo] = wavread(hfile);
sound(y, Fs);

% Pause before next read and playback operation.
duration = numel(y) / Fs;
pause(duration + 2)
 
% Read and play only the first 2 seconds.
nsamples = 2 * Fs;
[y2, Fs] = wavread(hfile, nsamples);
sound(y2, Fs);
pause(4)
 
% Read and play the middle third of the file.
sizeinfo = wavread(hfile, 'size');
 
tot_samples = sizeinfo(1);
startpos = tot_samples / 3;
endpos = 2 * startpos;
 
[y3, Fs] = wavread(hfile, [startpos endpos]);
sound(y3, Fs);
この情報は役に立ちましたか?