AudioStream[source]
创建一个起自 source 的新的 AudioStream 对象.
AudioStream[id]
是表示惟一音频流的对象.
AudioStream
AudioStream[source]
创建一个起自 source 的新的 AudioStream 对象.
AudioStream[id]
是表示惟一音频流的对象.
更多信息和选项
- AudioStream 是 Audio 对象或设备的句柄,编程式控制音频信号的回放或录音.
- source 可为一下任意:
-
audio 播放单个音频信号的音频流 {audio1,audio2,…} 播放音频信号列表的音频流 func 从函数生成的流 func dev 从音频输入设备录制的音频流 dev - 函数 func 在时间值的缓冲区上运行,并且每次应返回标量或数值向量
- 用 AudioPlay 开始播放音频流.
- 用 AudioRecord 开始记录音频流.
- 用 AudioPause 或 AudioStop 暂停或停止播放录音.
- dev 可以是任何来自于 $AudioInputDevices 的可用输入音频设备.
- 用 Audio[astream] 根据录制的流创建 Audio 对象.
- 可以指定下列选项:
-
AudioChannelAssignment Inherited 如何把音频通道分配给输出 AudioOutputDevice Inherited 用于播放的音频输出设备 Looping False 是否循环播放 SampleRate Automatic 采样率 SoundVolume Automatic 音量 - 可用 astream["prop"] 获取音频流 astream 的属性.
- 可以用 astream["prop"]=val 设置属性的值.
- 播放音频流的一些属性包括:
-
"AudioChannelAssignment" 如何把音频通道分配给输出 "AudioOutputDevice" 用于播放的音频输出设备 "BufferSize" 每个缓存内的样本数 "CurrentAudio" 当前音频信号中的片段 "ID" 流 ID "Looping" 是否循环回放 "Position" 以时间 Quantity 形式给出的播放位置 "SampleRate" 每秒样本数 "SoundVolume" 音量 "Status" 流状态 - "Status" 的可能设置包括 "Playing" 、"Recording"、"Paused" 或 "Stopped".
- AudioStream[{audio1,audio2,…}] 的其他属性:
-
"CurrentTrack" 播放曲目的索引 "Ordering" 用于播放曲目的订购 "Duration" 当前曲目的持续时间 "Durations" 所有曲目的持续时间 "TrackCount" 轨道数 - AudioStream[func] 的附加属性:
-
"Function" 生成器函数 - AudioStream[dev] 的其他属性:
-
"AudioInputDevice" 用于录音的音频输入设备 "GeneratedAssetLocation" 到将要存储录制的音频的文件的路径 "RecordedAudio" 包含录音的 Audio 对象 - 例如 Join、Append、AppendTo 和 Drop 的函数可用于更改 AudioStream 对象.
范例
打开所有单元 关闭所有单元基本范例 (3)
从音频对象创建 AudioStream 对象:
a = Audio["ExampleData/rule30.wav"];
s = AudioStream[a]AudioPlay[s]从输入设备创建 AudioStream 对象:
AudioStream[$DefaultAudioInputDevice]AudioRecord[%]AudioStop[%]从一个函数创建 AudioStream 对象:
s = AudioStream[Function[t, TriangleWave[200t]]]播放 AudioStream:
AudioPlay[s]AudioStop[s]范围 (17)
Basic Uses (5)
a = Audio["ExampleData/rule30.wav"];
stream1 = AudioStream[a]
stream2 = AudioStream[a]AudioPlay[stream1];Pause[.5];AudioPlay[stream2];a = ExampleData[{"Audio", "Drums"}];
stream = AudioStream[a];
stream["Properties"]AssociationMap[stream, stream["Properties"]]a = ExampleData[{"Audio", "Drums"}];
stream = AudioStream[a]stream["Position"] = 3AudioPlay[stream]a = ExampleData[{"Audio", "Drums"}];
stream = AudioStream[a]AudioPlay[stream];
Pause[1];
stream["SoundVolume"] = .1;
Pause[1];
stream["SoundVolume"] = 1;SystemOptions["AudioProcessingOptions" -> "StreamBufferSize"]Playback Streams (7)
检查从 Audio 对象创建的 AudioStream 的属性:
a = Audio["ExampleData/rule30.wav"];
astream = AudioStream[a]props = astream["Properties"]Table[prop -> astream[prop], {prop, props}]//Column从 Audio 对象列表创建 AudioStream:
audios = SpeechSynthesize /@ {1, 2, 3};
astream = AudioStream[audios]AudioPlay[astream]检查从 Audio 对象列表创建的 AudioStream 的属性:
audios = SpeechSynthesize /@ {1, 2, 3};
astream = AudioStream[audios]props = astream["Properties"]Table[prop -> astream[prop], {prop, props}]//Column从 Audio 对象列表创建 AudioStream 并指定顺序:
audios = SpeechSynthesize /@ {1, 2, 3};
astream = AudioStream[audios]astream["Ordering"] = OrderingBy[audios, Duration]AudioPlay[astream]从 Audio 对象列表创建一个 AudioStream 并设置一些属性:
audios = SpeechSynthesize /@ {1, 2, 3};
astream = AudioStream[audios]更改 "CurrentTrack" 属性并播放 AudioStream:
astream["CurrentTrack"] = 2AudioPlay[astream]可以使用 Append 扩展音频流。生成两个音频信号的音频流:
stream = AudioStream[SpeechSynthesize /@ {"Hello.", "How are you?"}]a = SpeechSynthesize["Goodbye!"];res = Append[stream, a]res["TrackCount"]AudioPlay[res];stream1 = AudioStream[SpeechSynthesize /@ {"Hello.", "How are you?"}]stream2 = AudioStream[SpeechSynthesize[#, "Karen"]& /@ {"I'm fine.", "Thank you!"}]res = Join[stream1, stream2]res["TrackCount"]AudioPlay[res];Generator Streams (4)
检查从函数创建的 AudioStream 的属性:
astream = AudioStream[Function[t, TriangleWave[200t]]]props = astream["Properties"]Table[prop -> astream[prop], {prop, props}]//Column用 AudioStream 从函数并记录生成的信号:
s = AudioStream[Function[t, TriangleWave[200t]]];
AudioRecord[s]AudioStop[s]Audio[s]//Normals = AudioStream[Function[t, {TriangleWave[200t], TriangleWave[250t]}]];
AudioPlay[s]AudioStop[s]通过函数创建 AudioStream:
s = AudioStream[Function[t, TriangleWave[200t]]];
AudioPlay[s]s["Function"] = Function[t, .5Tanh[100Sin[300 * 2.Pit]]]AudioStop[s]Input Streams (1)
检查从输入设备创建的 AudioStream 的属性:
astream = AudioStream[$DefaultAudioInputDevice]props = astream["Properties"]Table[prop -> astream[prop], {prop, props}]//Column选项 (6)
AudioChannelAssignment (1)
默认情况下,AudioChannelAssignment 继承自相应的 Audio 对象:
a = Audio["ExampleData/rule30.wav", AudioChannelAssignment -> {1, 2}];
astream = AudioStream[a];AudioChannelAssignment /. Options[a]astream["AudioChannelAssignment"]有可能把 AudioStream 设置成不同的通道分配:
astream = AudioStream[a, AudioChannelAssignment -> {2}];astream["AudioChannelAssignment"]AudioChannelAssignment /. Options[a]AudioOutputDevice (1)
缺省情况下,AudioOutputDevice 承继自相应的 Audio 对象:
a = Audio["ExampleData/rule30.wav", AudioOutputDevice -> $DefaultAudioOutputDevice];
astream = AudioStream[a];AudioOutputDevice /. Options[a]astream["AudioOutputDevice"]可以用 AudioOutputDevice 选项把 AudioStream 分配到不同的设备:
astream = AudioStream[a, AudioOutputDevice -> $AudioOutputDevices[[2]]];AudioOutputDevice /. Options[a]astream["AudioOutputDevice"]Looping (1)
默认情况下,AudioLooping 为 1:
a = Audio["ExampleData/rule30.wav"];
astream = AudioStream[a];
AudioPlay[astream]astream = AudioStream[a, Looping -> 2];
AudioPlay[astream]Looping 选项的值不必为整数:
astream = AudioStream[a, Looping -> 1.5];
AudioPlay[astream]SampleRate (2)
用 SampleRate 选项控制生成器 AudioStream 输入采样率:
astream = AudioStream[SawtoothWave[250 * #]&, SampleRate -> 8000];
AudioPlay[astream]AudioStop[astream]用 SampleRate 选项控制 AudioStream 输入采样率:
astream = AudioStream[$DefaultAudioInputDevice, SampleRate -> 8000];
AudioRecord[astream]AudioStop[astream]
AudioSampleRate[Audio[astream]]SoundVolume (1)
缺省情况下,SoundVolume 承继自相应的 Audio 对象:
a = Audio["ExampleData/rule30.wav", SoundVolume -> .5];
astream = AudioStream[a];astream["SoundVolume"]astream["SoundVolume"]可以用 SoundVolume 选项把 AudioStream 的音量设置为不同的值:
astream = AudioStream[a, SoundVolume -> .1];SoundVolume /. Options[a]astream["SoundVolume"]应用 (4)
With[{a = ExampleData[{"Audio", "Drums"}]},
astream = AudioStream[a];
Column@{Button[
Dynamic[astream["Status"]],
Switch[astream["Status"],
"Playing", astream["Status"] = "Paused",
"Paused" | "Stopped", astream["Status"] = "Playing"
]
],
ProgressIndicator[Dynamic[astream["Position"] / Duration[a]]
]
}]a = ExampleData[{"Audio", "Drums"}];
astream = AudioStream[a];gauge[audio_] := HorizontalGauge[AudioMeasurements[audio, "LoudnessEBU"], {-60, 10}, GaugeMarkers -> Placed[Automatic, "DivisionCenter"], GaugeStyle -> Blue, GaugeLabels -> {"dbRMS", "Value"}, ScaleDivisions -> {5, 2}]Dynamic[gauge[astream["CurrentAudio"]]]
AudioPlay[astream];AudioStop[astream]a = ExampleData[{"Audio", "Drums"}];
astream = AudioStream[a];spectrum[audio_] := Periodogram[audio, 2000, PlotRange -> {{40, 20000}, {-80, 10}}, ScalingFunctions -> {"Log", "dB"}, Frame -> True, Axes -> False]Dynamic[spectrum[astream["CurrentAudio"]]]
AudioPlay[astream];AudioStop[astream]从仅使用二进制操作的函数创建 AudioStream:
par1 = 12;par2 = 8;par3 = 4;sampleRate = 8000;
s = AudioStream[Function[time, With[{t = Round[time * sampleRate]}, Clip[t * BitAnd[BitOr[BitShiftRight[t, par1], BitShiftRight[t, par2]], BitAnd[63, BitShiftRight[t, par3]]], {0, 255}] / 255. - .5
]], SampleRate -> sampleRate];
AudioPlay[s]Column[{Slider[Dynamic[par1], {4, 20, 1}],
Slider[Dynamic[par2], {4, 20, 1}],
Slider[Dynamic[par3], {1, 6, 1}]}]AudioStop[]属性和关系 (2)
用 AudioPlay 创建并开始播放一个音频流:
a = Import["ExampleData/rule30.wav"];
AudioPlay[a]用 AudioRecord 创建并开始对一个音频流进行录音:
AudioRecord[$DefaultAudioInputDevice]AudioStop[%]可能存在的问题 (2)
a = Import["ExampleData/rule30.wav"];astream = AudioStream[a];astream["BufferSize"]AudioPlay[astream]astream["BufferSize"] = 10000AudioPlay[astream]astream = AudioStream[$DefaultAudioInputDevice];astream["Position"] = 3文本
Wolfram Research (2017),AudioStream,Wolfram 语言函数,https://reference.wolfram.com/language/ref/AudioStream.html (更新于 2021 年).
CMS
Wolfram 语言. 2017. "AudioStream." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2021. https://reference.wolfram.com/language/ref/AudioStream.html.
APA
Wolfram 语言. (2017). AudioStream. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/AudioStream.html 年
BibTeX
@misc{reference.wolfram_2026_audiostream, author="Wolfram Research", title="{AudioStream}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/AudioStream.html}", note=[Accessed: 14-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_audiostream, organization={Wolfram Research}, title={AudioStream}, year={2021}, url={https://reference.wolfram.com/language/ref/AudioStream.html}, note=[Accessed: 14-September-2026]}