Main Content

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

输入参数

全部折叠

要写入的文件的名称或文件的完整路径,指定为包含文件扩展名的字符向量或字符串标量。

根据您写入的位置,filename 可以采用以下形式之一。

位置

形式

当前文件夹

要写入当前文件夹,请在 filename 中指定文件名。

示例:'sample_audio.wav'

其他文件夹

要写入不同于当前文件夹的文件夹,请在 filename 中指定完整或相对路径名称。

示例:'C:\myFolder\sample_audio.mp3'

示例:'myFolder\sample_audio.wav'

远程位置

要写入远程位置,filename 必须包含指定为统一资源定位器 (URL) 形式的文件的完整路径:

scheme_name://path_to_file/my_file.ext

根据您的远程位置,scheme_name 可以是下表中的值之一。

远程位置

scheme_name

Amazon S3™

s3

Windows Azure® Blob 存储

wasb, wasbs

HDFS™

hdfs

有关详细信息,请参阅处理远程数据

示例:'s3://bucketname/path_to_file/sample_audio.mp3'

audiowrite 支持以下文件格式。

平台支持

文件格式

缩写

文件扩展名

所有平台

免费的无损压缩音频编码

FLAC

.flac

MPEG-1 音频层 III
MPEG-2 音频层 III
MPEG-2.5 音频层 III

MP3

.mp3

OGG Vorbis

OGG

.ogg

OGG Opus

OPUS

.opus

Microsoft WAVE 声音

WAV

.wav

Windows®Mac

MPEG-4 第 3 部分 AAC

MP4

.m4a
.mp4

示例: 'myFile.m4a'

示例: '../myFile.m4a'

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

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

在 Linux® 平台上,以下要求适用:

  • 要使用 audiowrite 写入 MP3 文件,您必须安装 libsndfile 1.1.0 或更高版本。您还必须安装 LAME MP3 编码器和 mpg123 MP3 解码器。

  • 要使用 audiowrite 写入 OPUS 文件,您必须安装 libsndfile 1.0.29 或更高版本。您还必须安装 OPUS 编解码器。

数据类型: char | string

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

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

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

文件格式

最大通道数

WAV

1024

OGG、OPUS

255

FLAC

8

MP3、MP4

2

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

y 的数据类型

y 的有效范围

uint8

0 ≤ y ≤ 255

int16

-32768 ≤ y ≤ +32767

int32

-2^31 ≤ y ≤ 2^31–1

single, double

-1.0 ≤ y ≤ +1.0

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

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

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

音频数据 y 的采样率(以赫兹为单位),指定为大于 0 的正整数标量。

  • 写入 MP3 文件时,audiowrite 仅支持 48,000 Hz、44,100 Hz、32,000 Hz、24,000 Hz、22,050 Hz、16,000 Hz、12,000 Hz、11,025 Hz 和 8,000 Hz 的采样率。

  • 写入 OPUS 文件时,audiowrite 仅支持 48,000 Hz、24,000 Hz、16,000 Hz、12,000 Hz 和 8,000 Hz 的采样率。

  • 在 Windows 平台上写入 MP4 文件时,audiowrite 仅支持 48,000 Hz 和 44,100 Hz 的采样率。

示例: 44100

数据类型: double

名称-值参数

将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

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

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

仅适用于 FLAC 和 WAV 文件。对于 FLAC 文件,仅支持 8、16 或 24 的采样位数。

示例: 'BitsPerSample',32

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

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

仅适用于 MP4 文件。

示例: 'BitRate',96

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

仅适用于 MP3、OGG 和 OPUS 文件。

示例: 'Quality',25

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

数据类型: char | string

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

数据类型: char | string

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

数据类型: char | string

注意

Mac 平台上,audiowrite 不会将 'Title''Artist''Comment' 字段写入到 MP4 文件。

算法

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

文件格式

y 的数据类型

输出采样位数

输出数据类型

WAV

uint8, int16, int32, single, double

8

uint8

16

int16

24

int32

uint8, int16, int32

32

int32

single, double

32

single

single, double

64

double

FLAC

uint8, int16, int32, single, double

8

int8

16

int16

24

int32

MP3、MP4、OGG、OPUS

uint8, int16, int32, single, double

不适用

single

扩展功能

版本历史记录

在 R2012b 中推出

全部展开