主要内容

dsp。AudioFileReader

音频文件流

描述

dsp。AudioFileReader系统对象™从音频文件中读取音频样本。

从音频文件中读取音频样本:

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

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

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

创建

描述

误判率= dsp。AudioFileReader返回一个音频文件阅读器误判率从音频文件中读取音频。

例子

误判率= dsp。AudioFileReader (文件名称返回一个音频文件读取器对象,误判率,文件名属性设置为文件名称

例子

误判率= dsp。AudioFileReader (名称,值返回一个音频文件阅读器误判率,将每个指定的属性设置为指定的值。将每个属性名用单引号括起来。未指定的属性具有默认值。

属性

全部展开

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

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

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象进行系统设计

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

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

支持的音频文件格式如下表所示。金宝app

平台 文件扩展名
窗户® . wav.wma.aviaif.aifc.aiffmp3.au.snd, .mp4, .m4a, .flac, .ogg, .mov
非windows .avi, mp3, mp4, .m4a, wav, .flac, . ogg, aif, .aifc, .aiff, .au,爱恋,。mov

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

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

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

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

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

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

如果FilenameIsTunableInCodegen被设置为真正的,文件属性,如音频格式、音频通道数量、采样率和比特率是不可调优的,必须与您通过CodegenPrototypeFile财产。指定的原型音频文件决定了生成的代码可以读取的音频文件的属性和类型。例如,如果指定的原型文件是. wav文件,则生成的代码只能读取. wav文件。如果指定的原型文件采样率为44100hz,则生成的代码可以读取采样率为44100hz的文件。

数据类型:逻辑

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

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

支持的音频文件格式如下表所示:金宝app

平台 文件扩展名
窗户 . wav.wma.aviaif.aifc.aiffmp3.au.snd, .mp4, .m4a, .flac, .ogg, .mov
非windows .avi, mp3, mp4, .m4a, wav, .flac, . ogg, aif, .aifc, .aiff, .au,爱恋,。mov

依赖关系

该属性仅在FilenameIsTunableInCodegen属性设置为真正的

此属性是只读的。

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

数据类型:

指定要读取的样本范围,作为形式为[的矢量StartSampleEndSample),StartSample样本是在哪个文件读取开始,和EndSample是文件读取停止的示例。

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

使用

描述

例子

音频=误判率()输出一帧音频样本,音频.控件可以指定播放文件的次数PlayCount财产。播放文件的次数达到指定的次数后,音频包含的沉默。

音频eof] =误判率()返回文件结束符指示符,eofeof每次输出都是真的吗音频包含文件中的最后一个音频示例。

输出参数

全部展开

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

数据类型:||int16|uint8

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

数据类型:逻辑

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

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

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

属性可以选择读取整个数据或指定要读取的数据范围ReadRange财产。默认情况下,ReadRange设置为[1 inf],表示文件读取器从源读取整个数据。在本例中,setReadRange到3Fs,表示读文件器读取前3秒的数据。

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

读取音频数据从一个http web地址使用dsp。AudioFileReader系统对象™。使用audioDeviceWriter系统对象。

初始化

创建一个音频文件阅读器来读取数据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(音频);结束

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

发布(误判率)发布(adw)

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

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

类型writeAudio.m
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 (“一个”[500], [0 1]);writefilename = coder.typeof (“b”[500], [0 1]);

方法生成MEX文件codegen函数。

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

限制

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

算法

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

  • 对象没有对应的属性从文件继承样例时间块参数。对象总是从文件继承样例时间。

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

  • 对象没有对应的属性多媒体输出参数,因为音频是唯一支持的输出。金宝app

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

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

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

扩展功能

介绍了R2012a