主要内容

dsp。AudioFileWriter

流到音频文件

描述

dsp。AudioFileWriter系统对象™将音频样本写入音频文件。

将音频样本写入音频文件:

  1. 创建dsp。AudioFileWriter对象并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

afw= dsp。音频FileWriter返回一个音频文件写入器系统对象,afw.该对象将音频样本写入音频文件。

afw= dsp。音频FileWriter(文件名返回一个音频文件写入器系统对象,afw.该对象具有文件名属性设置为文件名

例子

afw= dsp。音频FileWriter(名称,值返回一个音频文件写入器对象,其中每个指定属性设置为指定值。将每个属性名用单引号括起来。未指定的属性有默认值。

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

将音频文件的名称指定为字符向量或字符串标量。

文件名属性在生成的代码中是可调的。也就是说,在运行由该对象生成的代码时,可以将音频文件的名称作为输入传递。有关示例,请参见可调谐的音频文件名称在生成的代码

指定对象写入的音频文件格式。在微软®平台,从中选择一个“AVI”,“WAV”,“FLAC”,“OGG”,MPEG4的,“作品”,的WMA.在Linux上®平台,从中选择一个“AVI”,“WAV”,“FLAC”,“作品”,或“OGG”.在macOS平台上,选择其中之一“AVI”,“WAV”,“FLAC”,“OGG”,“作品”,或MPEG4的.这些缩写对应于以下文件格式:

  • “AVI”——音视频穿插

  • “WAV”——Microsoft WAVE文件

  • 的WMA—Windows Media®音频

  • “FLAC”——免费无损音频编解码器

  • “OGG”——Ogg/Vorbis压缩音频文件

  • “作品”——Opus压缩音频文件

  • MPEG4的- MPEG-4 AAC文件-你可以使用两者.m4a而且mp4扩展

默认为“WAV”

将输入音频数据的采样率指定为正的数字标量值。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

指定音频文件写入器用于压缩音频数据的压缩算法类型。压缩可以减小音频文件的大小。选择“没有(未压缩的)”将未压缩音频数据保存到文件中。其他可用选项反映系统上安装的音频压缩算法。您可以使用制表符补全来查询有效压缩机选项为您的计算机打字h .压缩机= '然后按TAB键。

依赖关系

在Windows上写入WAV或AVI文件时应用此属性®平台。

指定写入文件的未压缩音频数据的类型为“int16”,“双”,“单一”,“继承”,“int24”,“int32”,或“uint8”

依赖关系

此属性仅适用于写入未压缩的WAV文件时。

使用

语法

描述

例子

afw (音频写一帧音频样本,音频指定的输出文件文件名音频是一个矢量单声道音频输入或——- - - - - -N矩阵N-声道音频输入分别。

输入参数

全部展开

一帧音频样本,以列向量或矩阵形式返回。列向量输入表示单声道音频输入。一个——- - - - - -N矩阵表示N-通道音频输入。

如果输入是定点,则输入必须是带符号的定点输入,斜率为2的幂,且偏差为零。

数据类型:||int16|int32|uint8|fi

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

请注意:如果您正在使用R2016a或更早的版本,请将对对象的每个调用替换为等效的调用一步语法。例如,obj ()就变成了步骤(obj)

抽取音频信号,并将其作为WAV文件写入磁盘。

Afr = dsp。音频FileReader(“OutputDataType”,...“双”);firdec = dsp.FIRDecimator;抽取2Afw = dsp。音频FileWriter...“speech_dft.wav”,...“SampleRate”, afr.SampleRate / 2);~isDone(afr) audio = afr();Audiod = firdec(音频);afw (audiod);结束释放(误判率);释放(afw);

从名为writeAudio.此函数从接口读取音频信号funky-stereo.wav文件,将信号抽取2倍,并将抽取后的信号写入指定的输出文件。

dsp。AudioFileReader对象从中读取音频信号funky-stereo.wav文件。的funky-stereo.wav文件有两个通道,采样率为44100 Hz,比特率为1411 kbps。的CodegenPrototypeFile属性设置为rock-stereo.wav文件。的rock-stereo.wav文件具有相同的文件属性,如音频通道数、采样率和比特率funky-stereo.wav文件。的dsp。FIRDecimator对象将输入音频信号抽取2倍。的dsp。AudioFileWriter对象将十进制信号写入输出文件myoutput.wav.由于抽取过程,输出文件的采样率为22050 Hz,比特率为2822 kbps。

类型writeAudio.m
function writeAudio(readfile,writefile) afr = dsp.AudioFileReader('FilenameIsTunableInCodegen',true,…“CodegenPrototypeFile”、“rock-stereo.wav”);误判率。文件名= readfile;% Filename是funky-stereo.wav, CodegenPrototypeFile是% rock-stereo.wav。firdec = dsp.FIRDecimator(2,'auto');% decimate by 2 afw = dsp.AudioFileWriter('SampleRate',22050);afw。文件名=写文件;while ~isDone(afr) audio = afr(); audiod = firdec(audio); afw(audiod); end release(afr); release(afw); end

为了生成代码,将文件名指定为最大长度为500的可变长度字符向量。

Readfilename = code .typeof(“一个”,[1 500],[0 1]);Writefilename = code .typeof(“b”,[1 500],[0 1]);

生成一个MEX文件codegen函数。

codegenwriteAudioarg游戏{readfilename, writefilename}
代码生成成功。
writeAudio_mex (“funky-stereo.wav”,“myoutput.wav”);

限制

在编写这些文件时,应用以下特定于平台的限制:

窗户7

  • MPEG-4 AAC文件格式只支持44100 Hz和48000 Hz的采样率。金宝app对于其他文件格式,没有对采样率的限制。

  • MPEG-4 AAC文件格式只允许单声道或立体声输出。对于所有其他格式,允许有两个以上的音频输出通道。

  • 输出数据被填充在信号的前面和后面,带有额外的静默样本。

    Windows AAC编码器在音频信号上放置了锐利的淡入和淡出,导致信号在写入磁盘时在样本中略长。

  • 每个通道至少必须写入1025个样本到MPEG-4 AAC文件。

macOS

  • MPEG-4 AAC文件格式只允许单声道或立体声输出。对于所有其他格式,允许有两个以上的音频输出通道。

  • 并不是所有的采样率都受支持,尽管Mac Audio T金宝appoolbox™API没有明确指定限制。

Linux

  • 要在L金宝appinux机器上支持OPUS文件格式,您必须具备libsndfile 1.0.29或已安装的更新版本。在Windows和Mac,此文件随MATLAB附带®,可在美元MATLABROOT / bin / <平台>

算法

对象上描述的算法、输入和输出转到多媒体文件块引用页。对象属性对应于块参数,除了:

  • 的对象FileFormat属性不支持仅用于视频的文件格式。金宝app

  • 对象没有对应的属性参数。对象只将音频内容写入文件。

  • 对象没有对应的属性视频压缩参数。

  • 对象没有对应的属性文件颜色格式参数。

  • 对象没有对应的属性图像信号参数。

扩展功能

版本历史

在R2012a中引入

全部展开