本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

audiowrite

写音频文件

说明

示例

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 结构体包含以下信息字段:FilenameCompressionMethodNumChannelsSampleRateTotalSamplesDurationTitleCommentArtistBitsPerSample

输入参数

全部折叠

要写入的文件的名称或文件的完整路径,指定为包含文件扩展名的字符向量或字符串标量。如果已指定路径,它可以是绝对或相对路径。如果未指定路径,则目标目录是当前的工作目录。

audiowrite 支持以下文件格式。

平台支持文件格式
所有平台WAVE (.wav)
OGG (.ogg)
FLAC (.flac)
Windows®MacMPEG-4 AAC(.m4a.mp4

示例: 'myFile.m4a'

示例: '../myFile.m4a'

示例: 'C:\temp\myFile.m4a'

在 Windows 上写 AAC 文件时,audiowrite 使用额外的静音样本填充输出信号的前后沿。Windows AAC 编码器还在音频中放置明显淡入和淡出效果。这会在向磁盘写入音频后使它的样本数量增加。

数据类型: char | string

要写入的音频数据,指定为 m×n 实矩阵,其中 m 是要写入的音频样本数,n 是要写入的音频通道数。

如果 mn 是 1,则 audiowrite 假定此维指定音频通道数,其他维指定音频样本数。

最大通道数量取决于文件格式。

文件格式最大通道数
WAVE (.wav)1024
OGG (.ogg)255
FLAC (.flac)8
MPEG-4 AAC(.m4a.mp42

y 中的数据有效范围取决于 y 的数据类型。

y 的数据类型y 的有效范围
uint80 ≤ 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

超过有效范围的数据将会被裁剪。

如果 ysingledouble,则 y 中的音频数据应归一化为范围 −1.0 至 1.0(包括二者)内的值。

数据类型: single | double | int16 | int32 | uint8

音频数据 y 的采样率(以赫兹为单位),指定为大于 0 的正整数标量。在 Windows 平台上写入到 .m4a.mp4 文件中时,audiowrite 仅支持 44100 和 48000 的采样率。

示例: 44100

数据类型: double

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

示例: 'Title','Symphony No. 9','Artist','My Orchestra' 指示 audiowrite 写入一个标题为“Symphony No. 9”和艺术家信息“My Orchestra”的音频文件。

每样本的输出位数,指定为以逗号分隔的包含 'BitsPerSample' 和整数的对组。

仅对 WAVE (.wav) 和 FLAC (.flac) 文件可用。对于 FLAC 文件,仅支持 8、16 或 24 的采样位数。

示例: 'BitsPerSample',32

用于已压缩的音频文件的千位/秒 (kbit/s) 数,指定为包含 'BitRate' 和整数、以逗号分隔的对组。在 Windows 7 或更高版本中,仅 96、128、160 和 192 为有效值。

通常,较大的 BitRate 值可以提高压缩质量。

仅适用于 MPEG-4(.m4a.mp4)文件。

示例: 'BitRate',96

Ogg Vorbis 压缩器的质量设置,指定为包含 'Quality' 和范围 [0 100] 内的数字、以逗号分隔的对组,其中 0 表示较低质量和较高的压缩率,100 表示较高质量和较低的压缩率。

仅适用于 OGG (.ogg) 文件。

示例: 'Quality',25

标题信息,指定为逗号分隔的对组,包含 'Title' 和一个字符向量或字符串标量。

数据类型: char | string

艺术家信息,指定为逗号分隔的对组,包含 'Artist' 和一个字符向量或字符串标量。

数据类型: char | string

其他信息,指定为逗号分隔的对组,包含 'Comment' 和一个字符向量或字符串标量。

数据类型: char | string

注意

Mac 平台上,audiowrite 仅将元数据写入到 WAVE、OGG 和 FLAC 文件,不将 'Title''Author''Comment' 字段写入到 MPEG-4 AAC 文件。

算法

输出数据类型由文件格式、y 的数据类型和指定输出 BitsPerSample 决定。

文件格式y 的数据类型每样本的输出位数输出数据类型
WAVE (.wav), uint8int16int32singledouble8uint8
16int16
24int32
uint8int16int3232int32
singledouble32single
singledouble64double
FLAC (.flac)uint8int16int32singledouble8int8
16int16
24int32
MPEG-4(.m4a.mp4)、
OGG (.ogg)
uint8int16int32singledouble不适用single

在 R2012b 中推出