主要内容

音频文件读取器

音频文件流

描述

这个音频文件读取器系统对象™ 从音频文件中读取音频样本。

要从音频文件中读取音频样本,请执行以下操作:

  1. 创建音频文件读取器对象,并设置其属性。

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

要了解有关系统对象如何工作的更多信息,请参见什么是系统对象?

创建

描述

afr= dsp。AudioFileReader返回音频文件读取器系统对象,afr从音频文件中读取音频的。

实例

afr= dsp。AudioFileReader (文件名称)返回音频文件读取器对象,afr具有文件名属性设置为文件名称

实例

afr= dsp。AudioFileReader (名称、值)返回音频文件读取器系统对象,afr,将每个指定的属性设置为指定的值。将每个属性名用单引号括起来。未指定的属性具有默认值。

属性

全部展开

除非另有说明,属性是nontunable,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而释放函数打开它们。

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

有关更改属性值的更多信息,请参见基于系统对象的MATLAB系统设计

将音频文件的名称指定为字符向量或字符串标量。如果文件名不可更改被设置为错误的该文件在MATLAB上®路径,则不需要指定文件的全名。如果文件名不可更改被设置为真正的,则文件名必须存在于当前目录中,或者必须指定完整的文件路径。文件名可以是一个http网站地址,比如'http://audio.wgbh.org:8004/'。有关示例,请参阅读取和播放音频文件从http Web地址

这个文件名属性在生成的代码中是可调的。也就是说,在运行从该对象生成的代码时,可以将音频文件的名称作为输入传递。文件属性,如音频格式、音频通道数量、采样率和比特率是不可调优的,必须与您通过CodegenPrototypeFile属性。指定的原型音频文件确定生成的代码可以读取的音频文件的属性和类型。有关示例,请参阅可调音频文件名称在生成的代码

支持的音频文件格式如下表所示。万博1manbetx

平台 文件扩展名
窗户® . wav,.wma,.avi,aif,.aifc,.aiff,.mp3,欧先生,.snd, .mp4, .m4a, .flac, .ogg, .mov
非windows .avi、.mp3、.mp4、.m4a、.wav、.flac、.ogg、.aif、.aifc、.aiff、.au、.snd、.mov

指定一个正整数作为播放文件的次数。

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

将音频帧中的样本数指定为正的标量整数值。

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

设置音频文件读取器对象输出的音频数据的数据类型。指定数据类型为“双人”,“单一”,“int16”,或“uint8”

将此属性设置为true以启用可调性文件名在生成的C/C++代码中。具有指定名称的文件文件名必须存在于当前目录中,或者必须指定完整的文件路径。

如果文件名不可更改被设置为真正的,文件属性(如音频格式、音频通道数、采样率和比特率)不可调,必须与通过指定的原型音频文件的属性匹配CodegenPrototypeFile属性。指定的原型音频文件确定生成的代码可以读取的音频文件的属性和类型。例如,如果指定的原型文件是. wav文件,则生成的代码只能读取. wav文件。如果指定的原型文件采样率为44100hz,则生成的代码可以读取采样率为44100hz的文件。

数据类型:必然的

将代码生成中使用的原型音频文件的名称指定为字符向量或字符串标量。仅当文件不在MATLAB路径上时,才指定文件的完整路径。文件名可以是http web地址,如'http://audio.wgbh.org:8004/'

中指定的音频文件的属性文件名(例如音频格式、音频通道数、采样率、咬码率)必须与中指定的音频文件属性匹配CodegenPrototypeFile.指定的原型音频文件决定了生成的代码可以读取的音频文件的属性和类型。例如,如果指定的原型文件是. wav文件,则生成的代码只能读取. wav文件。如果指定的原型文件采样率为44100hz,则生成的代码可以读取采样率为44100hz的文件。

支持的音频文件格式如下表所示:万博1manbetx

平台 文件扩展名
窗户 . wav,.wma,.avi,aif,.aifc,.aiff,.mp3,欧先生,.snd, .mp4, .m4a, .flac, .ogg, .mov
非windows .avi、.mp3、.mp4、.m4a、.wav、.flac、.ogg、.aif、.aifc、.aiff、.au、.snd、.mov

依赖关系

该属性仅在文件名不可更改属性设置为真正的

此属性是只读的。

此属性显示音频文件的采样率(以Hz为单位)。

数据类型:

指定要从中读取的样本范围,作为以下形式的向量:[StartSample终样],在哪里StartSample样本是在哪个文件读取开始,和终样是文件读取停止的示例。

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

用法

描述

实例

音频=误判率()输出一帧音频样本,音频. 可以使用指定播放文件的次数PlayCount所有物按指定次数播放文件后,音频包含的沉默。

[音频,eof]=afr()返回文件结束符指示符,eofeof每次输出时都为true音频包含文件中的最后一个音频示例。

输出参数

全部展开

属性中指定的长度为的列向量返回的音频样本帧SamplesPerFrame财产。属性中指定音频输出的数据类型OutputDataType财产。

数据类型:||int16|uint8

文件结束指示符,返回为1.或者0.的值1.输出时音频包含文件中的最后一个音频示例。

数据类型:必然的

目标函数

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

释放(obj)

全部展开

信息 关于特定音频文件的信息
结束 文件尾状态(逻辑)
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 使内部状态复位系统对象

例子

全部崩溃

使用标准音频输出设备读取和播放音频文件。

笔记:如果您使用的是R2016a或早期版本,请使用等效的一步语法。例如obj ()就变成了步骤(obj)

您可以选择读取整个数据,也可以使用阅读范围财产。默认情况下,阅读范围设置为[1 inf],表示文件读取器从源读取整个数据。在本例中,set阅读范围到3Fs,表示读文件器读取前3秒的数据。

误判率= dsp。AudioFileReader (“speech_dft.mp3”,“ReadRange”(3 * 22050));adw = audioDeviceWriter (“SampleRate”, afr.SampleRate);~isDone(afr)音频= afr();adw(音频);终止释放(误判率);释放(adw);

读取音频数据从一个http web地址使用音频文件读取器系统对象™。使用音频设备编写器系统对象。

初始化

创建一个音频文件阅读器来读取数据http://audio.wgbh.org:8004/.设置音频设备写入器的采样率与音频文件读取器的采样率一致。

误判率= dsp。AudioFileReader ('http://audio.wgbh.org:8004/')
误判率= dsp。AudioFileReader与属性:Filename: 'http://audio.wgbh.org:8004/' PlayCount: 1 SamplesPerFrame: 1024 OutputDataType: 'double' SampleRate: 44100 ReadRange: [1 Inf]
adw = audioDeviceWriter (afr.SampleRate)
adw = audioDeviceWriter带有属性:Driver: 'DirectSound' Device: 'Default' SampleRate: 44100显示所有属性

阅读并回放

直接从网站地址读取特定数量的数据,并使用音频设备写入器回放数据。

对于I = 1:1000 audio = afr();adw(音频);终止

关闭输入文件和音频输出设备。

释放(afr)释放(adw)

从名为的函数生成MEX文件writeAudio.此功能从中读取音频信号funky-stereo.wav文件,将信号抽取为2的倍数,并将抽取的信号写入指定的输出文件。

这个音频文件读取器对象从中读取音频信号funky-stereo.wav文件。这个funky-stereo.wav文件有两个通道,采样率为44100hz,比特率为1411kbps。这个CodegenPrototypeFile对象的属性设置为摇滚立体声.wav文件。这个摇滚立体声.wav文件具有与文件相同的文件属性,例如音频通道数、采样率和比特率funky-stereo.wav文件。这个数字信号处理器对象将输入音频信号抽取为2倍。这个dsp。AudioFileWriter对象将抽取的信号写入输出文件myoutput.wav.由于抽取过程,输出文件的采样率为22050 Hz,比特率为2822 kbps。

类型书面的
afr = dsp. audifilereader ('FilenameIsTunableInCodegen',true,…“CodegenPrototypeFile”、“rock-stereo.wav”);误判率。文件名= readfile;% Filename是funky-stereo.wav和CodegenPrototypeFile是% rock-stereo.wav。firdec = dsp.FIRDecimator(2, '汽车');% decimate by 2 afw = dsp.AudioFileWriter('SampleRate',22050);afw。文件名= writefile;while ~isDone(afr) audio = afr(); audiod = firdec(audio); afw(audiod); end release(afr); release(afw); end

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

readfilename = coder.typeof (“一个”,[1 500],[0 1]);writefilename=coder.typeof(“b”[500], [0 1]);

方法生成MEX文件codegen作用

codegenwriteAudio-args{readfilename, writefilename}
代码生成成功。
书面形式(“时髦的立体声.wav”,“myoutput.wav”);

限制

对于MP3, MPEG-4 AAC,和AVI音频文件Windows 7或更高版本和Linux®平台,音频文件读取器对象可以读取比预期更少的样本。在Windows平台上,这是由于底层Media Foundation框架的限制。在Linux平台上,这是由于底层GStreamer框架的限制。如果您需要准确的样本读数,请使用WAV或FLAC文件。

算法

该对象实现了算法、输入和输出从多媒体文件块引用页面。对象属性对应于块参数,除了:

  • 对象没有对应的属性从文件继承采样时间块参数。对象始终从文件继承采样时间。

  • 对象没有对应的属性输出文件结束指示符参数。对象总是输出EOF作为最后的输出。

  • 对象没有对应的属性多媒体输出参数,因为音频是唯一支持的输出。万博1manbetx

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

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

  • 对象没有对应的属性视频输出数据类型参数。

扩展功能

2012年推出