主要内容

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.财产。指定的原型音频文件决定了生成的代码可以读取的音频文件的属性和类型。例如,请参见生成的代码中的可调音频文件名

下表列出了支持的音频文件格式。万博1manbetx

平台 文件名扩展名
视窗® . wav.wma.avi.AIF.AIFC..AIFF.mp3.au.snd, .mp4, .m4a, .flac, .ogg, .mov
非窗户 .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文件。如果指定的原型文件采样率为44100 Hz,则生成的代码可以读取具有44100 Hz的采样率的文件。

数据类型:逻辑

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

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

下表列出了支持的音频文件格式:万博1manbetx

平台 文件名扩展名
视窗 . wav.wma.avi.AIF.AIFC..AIFF.mp3.au.snd, .mp4, .m4a, .flac, .ogg, .mov
非窗户 .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帧],指示文件读取器从源读取整个数据。在此示例中,设置ReadRange到3FS,指示文件读取器读取数据的前3秒。

AFR = DSP.AUDIOFILEREADER('speem_dft.mp3''ReadRange',[1 3 * 22050]);adw = audiodevicewriter('采样率', afr.SampleRate);尽管〜Isdone(AFR)Audio = AFR();adw(音频);结束释放(AFR);释放(ADW);

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

初始化

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

AFR = DSP.AUDIOFILEREADER(“http://audio.wgbh.org: 8004 /”
AFR = DSP.AUDIOFILEREADER.with properties: Filename: 'http://audio.wgbh.org:8004/' PlayCount: 1 SamplesPerFrame: 1024 OutputDataType: 'double' SampleRate: 44100 ReadRange: [1 Inf]
adw = audiodevicewriter(afr.samplevere)
adw = audiodevicewriter具有属性:驱动程序:'directsound'设备:'默认'samplege:44100显示所有属性

阅读并回放

直接从Web地址读取特定数量并使用音频设备编写器播放数据。

I = 1:1000 audio = afr();adw(音频);结束

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

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

从一个名为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
函数writeaudio(readfile,writefile)afr = dsp.audiofilereader('filenameistunableindegen',true,...'codegenprototypefile','rock-stereo.wav');AFR.FILENAME = READFILE;%filename是funky-stereo.wav和codegenprototypefile是%rock-stereo.wav。firdec = dsp.firdecimator(2,'auto');百分之二次百分比= dsp.audiofileWriter('Sampleate',22050);afw.filename = writefile;〜ISDONE(AFR)AUDIO = AFR();audiod = firdec(音频);AFW(audod);结束释放(AFR); release(afw); end

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

readfilename = coder.typeof ('一种'[500], [0 1]);writefilename = coder.typeof ('B'[500], [0 1]);

方法生成MEX文件Codegen.函数。

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

限制

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

算法

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

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

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

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

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

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

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

扩展能力

介绍了R2012a