目录
audiowrite函数的功能是写音频文件。
语法
audiowrite(filename,y,Fs)
audiowrite(filename,y,Fs,Name,Value)
说明
audiowrite(filename,y,Fs) 以采样率 Fs 将音频数据矩阵 y 写入名为 filename 的文件。filename 输入还指定了输出文件格式。输出数据类型取决于音频数据 y 的输出文件格式和数据类型。
audiowrite(filename,y,Fs,Name,Value) 使用一个或多个 Name,Value 对组参数指定的其他选项。
示例
写入音频文件
从示例文件 handel.mat 创建 WAVE 文件,并将此文件读回 MATLAB®。在当前文件夹中写 WAVE (.wav) 文件。
load handel.mat
filename = 'handel.wav';
audiowrite(filename,y,Fs);
clear y Fs
使用 audioread 将数据读回 MATLAB。
[y,Fs] = audioread(filename);
收听音频。
sound(y,Fs);
指定采样位数和元数据
从示例文件 handel.mat 创建 FLAC 文件并指定采样输出位数和注释。
load handel.mat
filename = 'handel.flac';
audiowrite(filename,y,Fs,'BitsPerSample',24,...
'Comment','This is my new audio file.');
clear y Fs
使用 audioinfo 函数查看有关新 FLAC 文件的信息。
info = audioinfo(filename) ;
info 结构体包含以下信息字段:Filename、CompressionMethod、NumChannels、SampleRate、TotalSamples、Duration、Title、Comment、Artist 和 BitsPerSample。
要写入的文件的名称或文件的完整路径,指定为包含文件扩展名的字符向量或字符串标量。根据写入的位置,filename 可以采用以下形式之一。
·当前位置,即:'sample_audio.wav'
·其它文件夹位置,即:'C:\myFolder\sample_audio.mp3'或者'myFolder\sample_audio.wav'
·远程位置,即:scheme_name://path_to_file/my_file.ext
audiowrite函数支持以下文件格式,即:
平台支持 | 文件格式 |
---|---|
所有平台 | FLAC (.flac) |
OGG (.ogg) | |
OPUS (.opus) | |
WAVE (.wav) | |
Windows® 和 Mac | MPEG-4 AAC(.m4a、.mp4) |
要写入的音频数据,指定为 m×n 实矩阵,其中 m 是要写入的音频样本数,n 是要写入的音频通道数。
如果 m 或 n 是 1,则 audiowrite 假定此维指定音频通道数,其他维指定音频样本数。
最大通道数量取决于文件格式。
文件格式 | 最大通道数 |
---|---|
WAVE (.wav) | 1024 |
OGG (.ogg) | 255 |
OPUS (.opus) | 255 |
FLAC (.flac) | 8 |
MPEG-4 AAC(.m4a、.mp4) | 2 |
y中的数据有效范围取决于 y
的数据类型。
y 的数据类型 | y 的有效范围 |
---|---|
uint8 | 0 ≤ y ≤ 255 |
int16 | -32768 ≤ y ≤ +32767 |
int32 | -2^31 ≤ y ≤ 2^31–1 |
single | -1.0 ≤ y ≤ +1.0 |
double | -1.0 ≤ y ≤ +1.0 |
音频数据 y 的采样率(以赫兹为单位),指定为大于 0 的正整数标量。当写入 .opus 文件时,audiowrite 仅支持 48000、24000、16000、12000 或 8000 的采样率。在 Windows 平台上写入到 .m4a 或 .mp4 文件中时,audiowrite 仅支持 48000 和 44100 的采样率。