AudioBlockMap[f,audio,dur]
将 f 应用于 audio 中无重叠的长度为 t 的分区.
AudioBlockMap[f,audio,{dur,offset}]
将 f 应用于 audio 中位移为 d 的分区.
AudioBlockMap[f,audio,{dur,offset,wfun}]
在应用 wfun 后将 f 用于 audio 中的分区.
AudioBlockMap
AudioBlockMap[f,audio,dur]
将 f 应用于 audio 中无重叠的长度为 t 的分区.
AudioBlockMap[f,audio,{dur,offset}]
将 f 应用于 audio 中位移为 d 的分区.
AudioBlockMap[f,audio,{dur,offset,wfun}]
在应用 wfun 后将 f 用于 audio 中的分区.
更多信息和选项
- AudioBlockMap[f,audio,…] 返回 TimeSeries ,其值为应用于 audio 分区的 f 结果. 时间为对应分区的中心.
- 函数 f 适用于不同形式的使用已命名参数的分区数据:
-
#AudioData 或 #1 每个分区的原始音频数据(默认) #FourierData 每个分区的傅立叶变换 #MagnitudeSpectrum 傅立叶变换的幅值 #PowerSpectrum 每个分区的功率谱 - 时间变量 dur 和 offset 可用以秒表示的标量形式给出,也可以时间或样本 Quantity 对象的形式给出.
- 平滑窗 wfun 可用在
到
之间取样的窗函数指定,或用以分区长度为标准重新取样的数值列表指定. 默认情况下,不使用平滑操作,这等价于 DirichletWindow. - 可给出下列选项:
-
Alignment Center 对齐分区时间戳 FourierParameters {-1,1} 傅立叶参数 MetaInformation None 包括其他元信息 MissingDataMethod None 处理缺失值的方法 Padding Automatic 填充设计 PaddingSize Automatic 填充量 ResamplingMethod "Interpolation" 用于重采样路径的方法 - Alignment 的可能设置包括:
-
Left 在每个分区的开头返回时间 Center 在每个分区的中间返回时间 Right 在每个分区的结尾返回时间 a 在 -1 (左)和 1 (右)之间缩放对齐 - Padding 的可能设置包括:
-
None 无填充,去除样本较少的分区 0 零(无声)填充 val 恒定值 "Fixed" 边界值的重复 "Periodic" 完整音频的循环重复 "Reflected" 边界上的音频反射 "Reversed" 倒转完整音频
范例
打开所有单元 关闭所有单元基本范例 (1)
a = \!\(\*AudioBox[""]\);max = AudioBlockMap[Max, a, Quantity[20, "Milliseconds"]]Show[AudioPlot[a, AspectRatio -> 1 / 2, PlotRange -> All], ListLinePlot[max, PlotStyle -> Red]]范围 (7)
函数规范 (5)
函数 f 可返回任何 TimeSeries 支持的数值:
a = Import["ExampleData/rule30.wav"];
stdev = AudioBlockMap[StandardDeviation, a, .04]Show[AudioPlot[a, AspectRatio -> 1 / 2, PlotRange -> All], ListLinePlot[stdev, PlotStyle -> Red, PlotRange -> {-1, 1}]]minmax = AudioBlockMap[MinMax, a, .04]Show[AudioPlot[a, AspectRatio -> 1 / 2, PlotRange -> All], ListLinePlot[minmax, PlotStyle -> {Orange, Darker[Green]}, PlotRange -> {-1, 1}]]a = \!\(\*AudioBox[""]\);f[values_] := Blend[{Green, Yellow, Red}, Max[values]]colors = AudioBlockMap[f, AudioNormalize@a, .05]["Values"]Column[{AudioPlot[a, FrameTicks -> None, ImageSize -> Medium],
ArrayPlot[{colors}, ImageSize -> Medium]}]a = \!\(\*AudioBox[""]\);res = AudioBlockMap[Arg@#FourierData[[100]]&, AudioNormalize@a, .05]Show[ListLinePlot[res, PlotStyle -> Red, PlotRange -> All], AudioPlot[a, AspectRatio -> 1 / 2, PlotRange -> All]]a = \!\(\*AudioBox[""]\);res = AudioBlockMap[FindPeaks[#MagnitudeSpectrum][[2, 1]]&, AudioNormalize@a, .05]Show[ListLinePlot[res, PlotStyle -> Red, PlotRange -> All], AudioPlot[a, AspectRatio -> 1 / 2, PlotRange -> All]]a = \!\(\*AudioBox[""]\);res = AudioBlockMap[LowpassFilter[#PowerSpectrum, .4]&, AudioNormalize@a, .05]MatrixPlot[Log@res["Values"]]分区规范 (2)
a = \!\(\*AudioBox[""]\);max = AudioBlockMap[Max, a, 0.05]Show[AudioPlot[a, AspectRatio -> 1 / 2, PlotRange -> All], ListLinePlot[max, PlotStyle -> Red]]max = AudioBlockMap[Max, a, {0.05, 0.02}]Show[AudioPlot[a, AspectRatio -> 1 / 2, PlotRange -> All], ListLinePlot[max, PlotStyle -> Red]]max = AudioBlockMap[Max, a, {0.05, 0.02, HammingWindow}]Show[AudioPlot[a, AspectRatio -> 1 / 2, PlotRange -> All], ListLinePlot[max, PlotStyle -> Red]]分区尺寸和位移可指定为一个时间量 Quantity、样本量 "Samples" Quantity 或一个数字,意思为以秒为单位的持续时间:
a = Import["ExampleData/rule30.wav"];
AudioBlockMap[Max, a, 1]% == AudioBlockMap[Max, a, Quantity[1, "Seconds"]]AudioBlockMap[Max, a, Quantity[44100, "Samples"]]选项 (2)
Alignment (1)
默认情况下,结果得到的 TimeSeries 的时间戳位于每段分区的中心:
audio = Import["ExampleData/rule30.wav"];audioplot = AudioPlot[audio, AspectRatio -> 1 / 2, PlotRange -> All, PlotRangePadding -> Scaled[.05], GridLines -> {Table[i, {i, 0, QuantityMagnitude@Duration@audio, .3}], None}];max = AudioBlockMap[Max, audio, .3];
Show[audioplot,
ListPlot[max, PlotStyle -> Red, Filling -> Axis, PlotMarkers -> Automatic, PlotRange -> {-1, 1}]]中心对齐即为 Alignment->0:
max = AudioBlockMap[Max, audio, .3, Alignment -> 0];
Show[audioplot,
ListPlot[max, PlotStyle -> Red, Filling -> Axis, PlotMarkers -> Automatic, PlotRange -> {-1, 1}]]使用 Alignment->Right 可将返回的结果属性置于每段分区的末尾:
max = AudioBlockMap[Max, audio, .3, Alignment -> Right];
Show[audioplot,
ListPlot[max, PlotStyle -> Red, Filling -> Axis, PlotMarkers -> Automatic, PlotRange -> {-1, 1}]]max = AudioBlockMap[Max, audio, .3, Alignment -> -.5];
Show[audioplot,
ListPlot[max, PlotStyle -> Red, Filling -> Axis, PlotMarkers -> Automatic, PlotRange -> {-1, 1}]]Padding (1)
audio = Audio[Range[10.], SampleRate -> 1];
AudioBlockMap[#&, audio, 4, Padding -> Automatic]["Values"]AudioBlockMap[#&, audio, 4, Padding -> "Periodic"]["Values"]使用 Padding->None 可从计算中去掉不完整分区:
AudioBlockMap[#&, audio, 4, Padding -> None]["Values"]应用 (3)
a = Import["ExampleData/rule30.wav"];
dBrms = AudioBlockMap[20Log10[Sqrt@Mean[# ^ 2]]&, a, {Quantity[50, "Milliseconds"], Quantity[5, "Milliseconds"]}];ListLinePlot[dBrms]Histogram[dBrms, 40]𝒟 = KernelMixtureDistribution[dBrms, 1]Table[Plot[f[𝒟, x], {x, -50, 0}, Filling -> Axis, PlotLabel -> f], {f, {PDF, CDF}}]Moment[𝒟, 1]Quantile[𝒟, 0.95]//Quieta = \!\(\*AudioBox[""]\);
AudioPlot[a]amplitude = AudioBlockMap[Max[.02, Sqrt@Mean[# ^ 2]]&, a, {.01, .005}]AudioNormalize[a / Audio[amplitude]]AudioPlot[%]a = \!\(\*AudioBox[""]\);m = AudioBlockMap[{Hue[Max@#], Disk[{0, 0}, Max@#]}&, a, {.1, .01, HannWindow}]Graphics[{Opacity[.5], MapThread[{#1[[1]], Translate[#1[[2]], {#2, 0}]}&, {m["Values"], m["Times"]}]}]属性和关系 (1)
许多 AudioLocalMeasurements 属性可以使用 AudioBlockMap 进行计算:
a = Import["ExampleData/rule30.wav"];AudioBlockMap[Max, a, {.5, .5, None}, Padding -> None] == AudioLocalMeasurements[a, "Max", PartitionGranularity -> {.5, .5, None}, PaddingSize -> 0]互动范例 (1)
a = \!\(\*AudioBox[""]\);cf[x_] := Blend[{Green, Yellow, Red}, x]
Table[cf[i], {i, 0, 1, .1}]fps = 30;disks = AudioBlockMap[{cf[Max@#], Disk[{0, 0}, Max@#]}&, a, {.1, 1 / fps}]["Values"];
RandomSample[disks, 2]ListAnimate[Table[
Graphics[d, PlotRange -> 1], {d, disks}], fps, TransitionEffect -> "Fade"]ListAnimate[Table[
Graphics[d, PlotRange -> 1], {d, Rest@FoldList[Flatten@Append[#1 /. Opacity[x_] -> Opacity[Clip[x - .1, {0, 1}]], {Opacity[1], #2}]&, {}, disks]}], fps, TransitionEffect -> "Fade"]文本
Wolfram Research (2016),AudioBlockMap,Wolfram 语言函数,https://reference.wolfram.com/language/ref/AudioBlockMap.html (更新于 2019 年).
CMS
Wolfram 语言. 2016. "AudioBlockMap." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2019. https://reference.wolfram.com/language/ref/AudioBlockMap.html.
APA
Wolfram 语言. (2016). AudioBlockMap. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/AudioBlockMap.html 年
BibTeX
@misc{reference.wolfram_2026_audioblockmap, author="Wolfram Research", title="{AudioBlockMap}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/AudioBlockMap.html}", note=[Accessed: 13-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_audioblockmap, organization={Wolfram Research}, title={AudioBlockMap}, year={2019}, url={https://reference.wolfram.com/language/ref/AudioBlockMap.html}, note=[Accessed: 13-August-2026]}