Audio
更多信息和选项
- Audio 是一个可以输入和输出到函数的对象,显示为一个音频播放器.
- 音频数据可以存储在内存中,或本地或远程文件中,可以流式播放和处理.
- 通过 "Store in notebook" 按钮或 ToMemory 函数,可将内存外的 Audio 对象永久保存在笔记本中. »
- 支持文件格式包括:AIFF、FLAC、MP3、MP4、Ogg、QuickTime 和 WAV.
- 可能的存储位置:
-
File[…] 本地文件中的数据 CloudObject[…] 公共或私有云对象中的数据 LocalObject[…] 本地对象中的数据 URL[…] URL 中的数据 - 根据外部资源构建 Audio 对象时,那么代表对象的字节数将会变小,因此包含的笔记本的文件大小也会变小.
- 在 Audio[data] 中,数据可以是下列任何形式:
-
{v1,v2,…} 单个通道音频的样本值 {{v11,v12,…},{v21,v22,…},…} 多通道音频的采样值,其中值 vij 对应于通道 i - 输入数组 data 可以是 List、NumericArray、SparseArray 等.
- 在 Audio[data] 中,data 的各行被认为是所得到的音频的通道.
- 默认情况下,假定采样率为 44100 Hz. 也可使用 SampleRate 选项指定其他采样率.
- Audio[Sound[…]] 将声音转换为一个音频对象,在需要的时候可采样 SoundNote 基元.
- Audio[MusicScore[…]] 将声音转换为音频对象,并根据需要对符号音乐基元进行采样.
- Audio[Video[…]] 创建一个 Audio 对象,指代 Audio 支持的文件格式的第一个音轨.
- Audio[data,"type"] 可用于创建一个不同类型的音频对象. 可使用四舍五入或裁剪强行指定 data 中的数值类型. 默认情况下,假设 "Real32".
- "type" 的可能设置包括:
-
"SignedInteger8" 从
到
的带符号的8位整数"SignedInteger16" 从
到
的带符号的16位整数"SignedInteger32" 从
到
的带符号的32位整数"Real32" 单精度实数(32位) "Real64" 双精度实数(64位) - 在需要做模式匹配的时候,Audio 可被如 AtomQ 的函数当做是原始对象.
- 可指定如下选项:
-
Appearance Automatic 生成的播放器的外观 AnnotationRules None 已命名注释的列表 AudioChannelAssignment Automatic 如何将音频通道分配给输出 AudioOutputDevice $DefaultAudioOutputDevice 用于回放的音频输出设备 AudioLabel Automatic 音频对象上显示的标签 MetaInformation 与音频相关联的元信息 SampleRate Automatic 采样率 SoundVolume 1 音量 - Appearance 的可能设置有 "Minimal"、"Basic" 和 "Detailed".
- Audio 的 Information 可能包括以下属性:
-
"Channels" 音频通道数 "DataType" 基本数据类型 "Duration" 音频信号持续时间 "Length" 音频采样数 "ResourcePath" 音频文件路径 "SampleRate" 采样率
范例
打开所有单元 关闭所有单元基本范例 (2)
范围 (12)
基本用法 (6)
从文件中导入 Audio 对象:
Import["ExampleData/car.mp3", "Audio"]Audio["ExampleData/car.mp3"]Audio["http://exampledata.wolfram.com/bach.mp3"]音频对象链接到 CloudObject:
Audio[CloudObject["https://www.wolframcloud.com/obj/documentation/rule30"]]Audio["ExampleData/Caminandes.mp4"]将内存外 Audio 对象保存到笔记本中:
ToMemory[\!\(\*AudioBox[""]\)]音频生成 (6)
Audio[Array[Sin[2π 1200 #]&, 44100, {0, 1}]]AudioChannels[%]a = Audio[Transpose@Array[{Sin[2π 1200 #], Sin[2π 500 #]}&, 44100, {0, 1}]]AudioChannels[a]Audio[Sound[«1»]]转换带音符的 Sound 对象:
Audio[Sound[{SoundNote[0, 1.75, "Trumpet"], SoundNote[7, 1.75, "Trumpet"],
SoundNote[12, 1.75, "Trumpet"]}]]将 MusicScore 对象转换为 Audio:
Audio[MusicScore[{"C", "G", "A", "D"}]]Audio[RandomInteger[{-128, 127}, 44100], "SignedInteger8"]AudioType[%]a = Audio[RandomInteger[{-128, 127}, 44100], "SignedInteger8"];res = Audio[a, "Real32"];AudioType /@ {a, res}选项 (5)
Appearance (1)
AudioLabel (1)
AudioOutputDevice (1)
默认情况下,$DefaultAudioOutputDevice 用于回放:
AudioGenerator["Sin"]//Options$DefaultAudioOutputDeviceAudioGenerator["Sin", AudioOutputDevice -> "Logitech USB Headset H340"]//Options$AudioOutputDevicesAudioGenerator["Sin", AudioOutputDevice -> "System Setting"]//OptionsMetaInformation (1)
a = Audio[RandomInteger[{-128, 127}, 44100], "SignedInteger8", MetaInformation -> {"Owner" -> "John"}]使用 Options 提取元信息:
Options[%, MetaInformation]属性和关系 (7)
使用 AudioQ 检查可用的音频表达式:
AudioQ[\!\(\*AudioBox[""]\)]AudioQ[Audio[x]]Audio 对象为最小单位,不能再细分:
AtomQ[\!\(\*AudioBox[""]\)]a = Import["ExampleData/car.mp3", "Audio"];types = {"SignedInteger8", "SignedInteger16", "SignedInteger32", "Real32", "Real"};
TextGrid[Table[{t, ByteCount@Audio[a, t]}, {t, types}], Dividers -> {False, Center}, Alignment -> Left, Spacings -> {3, .5}]Audio[file] 和 Audio[url] 不会将其基础数据导入内存:
a = Audio["ExampleData/car.mp3"];提取生成播放器的 ByteCount:
ByteCount[%]FileByteCount[FindFile["ExampleData/car.mp3"]]使用 ToMemory 可将核外(out-of-core)音频对象的数据带入内存中:
ByteCount[a = Audio["ExampleData/car.mp3"]]ByteCount[ToMemory[a]]使用 AudioGenerator 创建多种震动和噪音:
AudioGenerator["Sin"]AudioPlot[%, PlotRange -> .1]AudioGenerator["Pink"]AudioPlot[%]使用 AudioPlot 可视化音频对象的波形:
AudioPlot[Audio["ExampleData/car.mp3"]]相关的工作流程
- 录音
文本
Wolfram Research (2016),Audio,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Audio.html (更新于 2020 年).
CMS
Wolfram 语言. 2016. "Audio." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/Audio.html.
APA
Wolfram 语言. (2016). Audio. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Audio.html 年
BibTeX
@misc{reference.wolfram_2026_audio, author="Wolfram Research", title="{Audio}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/Audio.html}", note=[Accessed: 08-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_audio, organization={Wolfram Research}, title={Audio}, year={2020}, url={https://reference.wolfram.com/language/ref/Audio.html}, note=[Accessed: 08-August-2026]}