audiowrite
写音频文件
说明
示例
写入音频文件
从示例文件 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
— 要写入的文件的名称
字符向量 | 字符串标量
要写入的文件的名称或文件的完整路径,指定为包含文件扩展名的字符向量或字符串标量。
根据您写入的位置,filename
可以采用以下形式之一。
位置 | 形式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
当前文件夹 | 要写入当前文件夹,请在 示例: | ||||||||
其他文件夹 | 要写入不同于当前文件夹的文件夹,请在 示例: 示例: | ||||||||
远程位置 | 要写入远程位置,
根据您的远程位置,
有关详细信息,请参阅处理远程数据。 示例: |
audiowrite
支持以下文件格式。
平台支持 | 文件格式 | 缩写 | 文件扩展名 |
---|---|---|---|
所有平台 | 免费的无损压缩音频编码 | FLAC |
|
MPEG-1 音频层 III | MP3 |
| |
奥格沃比斯 | OGG |
| |
OGG Opus | OPUS |
| |
Microsoft WAVE 声音 | WAV |
| |
Windows® 和 Mac | MPEG-4 第 3 部分 AAC | 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
y
— 要写的音频数据
实矩阵
要写入的音频数据,指定为 m
×n
实矩阵,其中 m
是要写入的音频样本数,n
是要写入的音频通道数。
如果 m
或 n
是 1,则 audiowrite
假定此维指定音频通道数,其他维指定音频样本数。
最大通道数量取决于文件格式。
文件格式 | 最大通道数 |
---|---|
WAV | 1024 |
OGG、OPUS | 255 |
FLAC | 8 |
MP3、MP4 | 2 |
y
中的数据有效范围取决于 y
的数据类型。
y 的数据类型 | y 的有效范围 |
---|---|
| 0 ≤ |
| -32768 ≤ |
| -2^31 ≤ |
| -1.0 ≤ |
超过有效范围的数据将会被裁剪。
如果 y
是 single
或 double
,则 y
中的音频数据应归一化为范围 −1.0 至 1.0(包括二者)内的值。
数据类型: single
| double
| int16
| int32
| uint8
Fs
— 采样率
正整数标量
音频数据 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
— 采样输出位数
16 (默认) | 8 | 24 | 32 | 64
采样输出位数,指定为以逗号分隔的包含 'BitsPerSample'
和整数的对组。
仅适用于 FLAC 和 WAV 文件。对于 FLAC 文件,仅支持 8、16 或 24 的采样位数。
示例: 'BitsPerSample',32
BitRate
— 千位/秒 (kbit/s)
128 (默认) | 64 | 96 | 160 | 192 | 256 | 320
用于已压缩的音频文件的千位/秒 (kbit/s) 数,指定为包含 'BitRate'
和整数、以逗号分隔的对组。在 Windows 7 或更高版本中,只有 192、160、128 和 96 才是有效值。
通常,较大的 BitRate
值可以提高压缩质量。
仅适用于 MP4 文件。
示例: 'BitRate',96
Quality
— 压缩质量设置
75 (默认) | 范围 [0, 100] 内的值
MP3、Vorbis 或 OPUS 压缩的质量设置,指定为包含 'Quality'
和范围 [0, 100] 内的数字且以逗号分隔的对组,其中 0 表示较低的质量和较高的压缩率,100 表示较高的质量和较低的压缩率。
仅适用于 MP3、OGG 和 OPUS 文件。
示例: 'Quality',25
Title
— 标题信息
[]
(默认) | 字符向量 | 字符串标量
标题信息,指定为逗号分隔的对组,包含 'Title'
和一个字符向量或字符串标量。
数据类型: char
| string
Artist
— 艺术家信息
[]
(默认) | 字符向量 | 字符串标量
艺术家信息,指定为逗号分隔的对组,包含 'Artist'
和一个字符向量或字符串标量。
数据类型: char
| string
Comment
— 其他信息
[]
(默认) | 字符向量 | 字符串标量
其他信息,指定为逗号分隔的对组,包含 'Comment'
和一个字符向量或字符串标量。
数据类型: char
| string
注意
在 Mac 平台上,audiowrite
不会将 'Title'
、'Artist'
或 'Comment'
字段写入到 MP4 文件。
算法
输出数据类型由文件格式、y
的数据类型和指定输出 BitsPerSample
决定。
文件格式 |
| 输出采样位数 | 输出数据类型 |
---|---|---|---|
WAV |
| 8 |
|
16 |
| ||
24 |
| ||
| 32 |
| |
| 32 |
| |
| 64 |
| |
FLAC |
| 8 |
|
16 |
| ||
24 |
| ||
MP3、MP4、OGG、OPUS |
| 不适用 |
|
扩展功能
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
版本历史记录
在 R2012b 中推出R2023a: 写入 MP3 (.mp3
) 音频文件
您可以写入 MP3 音频文件。
R2022a: 写入 Opus (.opus
) 音频文件
您可以写入 Ogg Opus 音频文件。
R2021b: 支持基于线程的环境
您可以使用 MATLAB® backgroundPool
在后台运行 audiowrite
。
R2020b: 将音频文件写入远程位置
您可以将音频文件写入远程位置,如 Amazon S3、Windows Azure Blob 存储和 HDFS。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)