AudioGenerator[model]
指定された model の1秒の音声を生成する.
AudioGenerator[model,t]
t 秒の音声を生成する.
AudioGenerator[model,t,"type"]
指定された"type"の音声サンプルを生成する.
AudioGenerator
AudioGenerator[model]
指定された model の1秒の音声を生成する.
AudioGenerator[model,t]
t 秒の音声を生成する.
AudioGenerator[model,t,"type"]
指定された"type"の音声サンプルを生成する.
詳細とオプション
- AudioGeneratorは,振動子やノイズを含む異なるタイプの音声を生成することができる.
- model の使用可能な設定
-
f 時間の任意の関数 f のサンプルを秒単位で取る proc ランダム過程 proc からサンプルを生成する tseries TimeSeries tseries からサンプルを生成する "model" 名前付きの関数"model"からサンプルを生成する - 無音
-

"Silence" 無音(0)信号 - 振動子
-

{"Sin",freq,phase} 正弦波 
{"Triangle",freq,phase} 三角波 
{"Sawtooth",freq,phase} 鋸波 
{"Square",freq,phase} 方形波 
{"Pulse",freq,phase,width} デューティサイクル width を使った矩形波 
{"Impulse",freq,phase} インパルス信号 - デフォルトで,
,
,
が使われる. - パラメータの freq,phase,width は,スカラー値,Quantity,Audioオブジェクト,TimeSeriesあるいは純関数でよい.
- 注
-

"White" 一定のパワースペクトル密度 
"Pink"
に従うパワースペクトル密度
"Brown"
に従うパワースペクトル密度
"Blue"
に従うパワースペクトル密度
{"Color",α}
に従うパワースペクトル密度.ただし,

{"White",dist} dist から値のサンプルを取ったランダムノイズ 
"PeriodicRandomNoise" 振幅が一定でランダム位相の正弦波成分の和 - その他
- AudioGeneratorは,"Real32"タイプの音声オブジェクトを生成する."type"の可能な設定についてはAudioの関数ページを参照のこと.
- AudioGeneratorにはAudioと同じオプションが使える.
-
Appearance Automatic 生成されたプレーヤーの外観 AnnotationRules None 名前付き注釈のリスト AudioChannelAssignment Automatic 出力にどのように音声チャンネルを割り当てるか AudioOutputDevice $DefaultAudioOutputDevice 再生に使用する音声出力デバイス AudioLabel Automatic 音声オブジェクトに表示するラベル MetaInformation 音声と関連付けられたメタ情報 SampleRate Automatic サンプリングレート SoundVolume 1 音量
全オプションのリスト
例題
すべて開く すべて閉じる例 (3)
スコープ (17)
基本的な用法 (2)
AudioGenerator["Sin"]//DurationAudioGenerator["Sin", 5]//DurationAudioGenerator["Sin", Quantity[100, "ms"]]//DurationAudioGenerator["Sin", Quantity[4410, "samples"]]//Durationデフォルトで,生成される音声は"Real32"タイプである:
AudioGenerator["Sin", 1]//AudioTypeAudioGenerator["Sin", 5, "SignedInteger8"]//AudioTypeモデル指定 (15)
振動子 (5)
AudioGenerator[{"Sin", Quantity[2000, "Hertz"]}]AudioGenerator[{"Sin", 1000 + 1000Sin[2 * Pi#]&}]Spectrogram[%, PlotRange -> {All, {0, 3000}}]正弦波の周波数を別のAudioオブジェクトで制御する:
freqMod = Import["ExampleData/rule30.wav"];
AudioGenerator[{"Sin", 440 + 2000 * freqMod}]Spectrogram[%, PlotRange -> {All, {0, 2000}}]TimeSeriesで正弦波の周波数を制御する:
frequencies = {378, 366, 287, 482, 595, 522, 227, 412, 481, 390};
times = {0.2, 0.5, 0.7, 1.1, 1.4, 1.7, 1.9, 2., 2.4, 2.7};
freqMod = TimeSeries[frequencies, {times}]AudioGenerator[{"Sin", freqMod}]waveforms = {"Sin", "Triangle", "Sawtooth", "Square", "Pulse", "Impulse"};Table[AudioPlot[AudioGenerator[i, .01], PlotTheme -> "Minimal", PlotLabel -> i],
{i, waveforms}]//Multicolumn雑音生成器 (5)
AudioGenerator["White"]Histogram@AudioData@AudioGenerator[{"White", NormalDistribution[]}]noises = {"White", "Pink", "Brown", "Blue", {"Color", 1.5}, "PeriodicRandomNoise"};Table[AudioPlot[AudioGenerator[i, .01], PlotLabel -> i, PlotTheme -> "Minimal"], {i, noises}]//Multicolumnピンク,茶色,青の各ノイズのスペクトルは,α がそれぞれ1,2,
である f-αの分布に従う:
colors = {"Pink", "Brown", "Blue"};
Periodogram[AudioGenerator /@ colors, 4000, ScalingFunctions -> {"Log10", Automatic}, PlotRange -> {-50, 25}, PlotLegends -> colors, PlotStyle -> {RGBColor[1, 0.5, 0.5], RGBColor[0.772079, 0.431554, 0.102387], RGBColor[0.368417, 0.506779, 0.709798]}]"PeriodicRandomNoise"のスペクトルは完全に平らである:
Periodogram[AudioGenerator["PeriodicRandomNoise"]]関数を使う (1)
AudioGeneratorは時間の関数をサポートする:
f[x_] := Sin[440 2Pi x];
AudioGenerator[f, 2]過程を使う (2)
AudioGenerator[FractionalGaussianNoiseProcess[.2]]//AudioNormalizeランダム過程から生成された音声を使って正弦波の振幅を制御する:
telegraph = AudioGenerator[TelegraphProcess[4], 4];(1 + telegraph) * \!\(\*AudioBox[""]\)時系列を使う (2)
TimeSeriesから音声オブジェクトを生成する:
AudioGenerator[TimeSeries[Range[10] / 10.]]//AudioPlot不規則なTimeSeriesから音声オブジェクトを生成する:
amplitudes = AudioGenerator[TimeSeries[{{0, 1}, {1, 0}, {1.5, .3}, {3, 0}}]];
amplitudes * AudioGenerator["Sin", 3]AudioPlot@%オプション (1)
SampleRate (1)
デフォルトで,SampleRate->44100が使われる:
AudioGenerator["Sin"]//AudioSampleRateAudioGenerator["Sin", SampleRate -> 1000]//AudioSampleRateアプリケーション (8)
ノイズの適用 (2)
時間データからの音声生成 (2)
msft = TimeSeriesRescale[TimeSeries@FinancialData["MSFT", {"Jan. 1, 1990", "Jan. 1, 2018"}], {0, 10}];
aapl = TimeSeriesRescale[TimeSeries@FinancialData["AAPL", {"Jan. 1, 1990", "Jan. 1, 2018"}], {0, 10}];resampledMSFT = QuantityMagnitude@TimeSeriesResample[Round[MovingAverage[msft, 60]], 1 / 8];
resampledAAPL = QuantityMagnitude@TimeSeriesResample[Round[MovingAverage[aapl, 60]], 1 / 8];
ListLinePlot[{resampledMSFT, resampledAAPL}, PlotStyle -> {Automatic, Automatic, PointSize[Large]}, PlotLegends -> {"MSFT", "AAPL"}]midiToFreq[m_] := 2 ^ ((m - 69) / 12) * 440.;res = .8Mean[{AudioGenerator[{"Sin", midiToFreq[.5resampledMSFT + 40]}], AudioGenerator[{"Triangle", midiToFreq[.5resampledAAPL + 40]}]}]TimeSeriesのリストを使って調和正弦波のリストの振幅を制御する:
duration = 5;sineBank = Table[AudioGenerator[{"Sin", Quantity[100, "Hertz"] * i, 0}, duration], {i, 10}];amplitudes = Table[AudioGenerator[TimeSeries[RandomInteger[{0, 1}, 40], {RandomReal[{0, duration}, 40]}], duration, SampleRate -> 200], 10];Mean[amplitudes * sineBank]AudioPlot@%多周波数の生成 (3)
一連のマルチ周波数(DTMF)トーンを生成して電話番号のダイアル音のシミュレーションを行う:
keys = {1 -> {697, 1209}, 2 -> {697, 1336}, 3 -> {697, 1477}, 4 -> {770, 1209}, 5 -> {770, 1336}, 6 -> {770, 1477}, 7 -> {852, 1209}, 8 -> {852, 1336}, 9 -> {852, 1477}, 0 -> {941, 1336}};dtmf[str_String] := AudioJoin[Table[{Mean[AudioGenerator[{"Sin", #}, Quantity[200, "Milliseconds"]]& /@ (key /. keys)], Quantity[50, "Milliseconds"]}, {key, ToExpression /@ Characters[str]}]]phoneNumber = "6345789";dtmf[phoneNumber]Grid[Partition[MapIndexed[Labeled[Audio[Mean[AudioGenerator[{"Sin", #}, .1]& /@ #], Appearance -> "Minimal"], First@#2]&, Flatten[Outer[List, {697, 770, 852}, {1209, 1336, 1477}], 1]], 3]]range = 12;
duration = 20;
lfoFreq = .05;
basePitch = 30;
numOsc = 8;
midiToFreq[m_] := 2 ^ ((m - 69) / 12) * 440.phasors = Table[AudioGenerator[{"Sawtooth", lfoFreq, 2.Pi / numOsc(i - 1.)}, duration, SampleRate -> 500] / 2. + .5, {i, numOsc}];
AudioPlot[phasors, PlotLayout -> "Overlaid", PlotRange -> All]振動子を制御する周波数を作る.音の高さが線形に増加するように,周波数はそれぞれを厳密に1オクターブ離して指数的に増加させる:
freqs = Table[midiToFreq[(phasors[[i]]) * 12 * numOsc + basePitch], {i, numOsc}];
AudioPlot[freqs, PlotLayout -> "Overlaid", PlotRange -> All]振動子を制御する振幅を作る.周波数が最小値になると振幅は0になる:
amps = Cos[# * Pi - Pi / 2.]& /@ phasors;
AudioPlot[amps, PlotLayout -> "Overlaid", PlotRange -> All]AudioPlot[AudioNormalize /@ {freqs[[2]], amps[[2]]}, PlotRange -> All]res = Mean[
Table[amps[[i]]AudioGenerator[{"Sin", freqs[[i]]}, SampleRate -> 24000], {i, numOsc}]]Spectrogram[res, 8192, 4096, HannWindow]周波数と振幅の変調 (1)
a = \!\(\*AudioBox[""]\);Periodogram[a, 2000, PlotRange -> {{0, 10000}, All}]22050Hzの正弦曲線で振幅を変調し,コンテンツをスペクトルのハイエンドにシフトする.結果はすでにほとんどの人には聞こえない:
amsignal = a×AudioGenerator[{"Sin", Quantity[22050, "Hertz"]}, Duration@a, SampleRate -> 96000]Periodogram[amsignal, 2200]22050Hzで等しい位相の別の正弦曲線でAM振動の変調をもとに戻す:
result = LowpassFilter[amsignal * AudioGenerator[{"Sin", Quantity[22050, "Hertz"]}, Duration@amsignal, SampleRate -> 96000], Quantity[5000, "Hertz"], 201]考えられる問題 (2)
AudioGenerator[{"Sin", 5001}, SampleRate -> 10000]TimeSeriesは,入力として使用される場合は,非負の数値によるタイムスタンプを必要とする:
ts = TimeSeries[FinancialData["GE", {"Jan. 1, 2015", "Jan. 1, 2016"}]]AudioGenerator[{"Sin", ts}]//HeadTimeSeriesは,単一のスカラー値の経路を必要とする:
ts = TimeSeries[{{0, {600, 300}}, {1, {400, 300}}}]AudioGenerator[{"Sin", ts}]//Head
インタラクティブな例題 (3)
Manipulate[
AudioPlot[
AudioGenerator[{"Sin", freq, phase}, .1]
], {freq, 10, 100}, {phase, 0, 10}, ContinuousAction -> False]AudioGenerator[{"Color",α}]のスペクトルは f-αの分布に従う:
Manipulate[
Periodogram[AudioGenerator[{"Color", α}], 2000, ScalingFunctions -> {"Log10", Automatic}, PlotRange -> {-60, 30}], {α, -2, 2}, ContinuousAction -> False]Manipulate[
Periodogram[
AudioGenerator[{"Sin", freq + freqModAmount * modFreq * AudioGenerator[{"Sin", modFreq}]}],
ScalingFunctions -> "Absolute", PlotRange -> {{0, 1000}, All}, ImageSize -> Medium],
{{freq, 440, "Carrier Frequency"}, -500, 500},
{{modFreq, 100, "Modulation Frequency"}, -200, 200},
{{freqModAmount, 0, "Amount of Frequency Modulation"}, 0, 10},
ControlPlacement -> Top, ContinuousAction -> False
]おもしろい例題 (4)
AudioGenerator[{"Sin", 400 + 300 * AudioGenerator[{"Sin", 100 * #&}, 4]}, SampleRate -> 8000]24を底とするPiの各桁を使って正弦波振動子の一連の周波数を生成する:
digits = First@RealDigits[π, 24, 100]midiToFreq[m_] := 2 ^ ((m - 69) / 12) * 440.
AudioGenerator[{"Sin", TimeSeries[midiToFreq[50 + digits], {0, 10}]}, SampleRate -> 8000]DiscreteMarkovProcessを使って旋律を作る:
𝒫 = DiscreteMarkovProcess[12, (| | | | | | | | | | | | |
| -------- | ------- | -------- | ------- | -------- | -------- | ------- | -------- | ------- | -------- | ------- | -------- |
| (7/153) | 0 | (31/153) | (2/153) | (23/153) | (2/51) | (8/153) | (1/9) | (1/153) | (25/153) | (5/153) | (28/153) |
| 0 | 0 | (1/3) | 0 | 0 | 0 | 0 | (1/2) | 0 | (1/6) | 0 | 0 |
| (31/111) | 0 | 0 | 0 | (29/111) | (2/37) | (1/37) | (8/111) | 0 | (11/111) | (1/37) | (20/111) |
| (1/4) | 0 | (1/12) | (1/6) | 0 | 0 | 0 | (1/4) | 0 | (1/4) | 0 | 0 |
| (25/128) | (1/128) | (27/128) | 0 | (3/128) | (23/128) | (5/128) | (21/128) | (1/128) | (5/64) | (5/128) | (7/128) |
| (4/113) | 0 | (19/113) | 0 | (23/113) | 0 | 0 | (35/113) | 0 | (13/113) | 0 | (19/113) |
| (7/29) | 0 | (2/29) | (1/29) | (5/29) | 0 | 0 | (7/29) | (2/29) | (1/29) | 0 | (4/29) |
| (15/166) | (3/166) | (2/83) | (2/83) | (27/166) | (37/166) | (7/166) | (19/166) | 0 | (15/83) | (1/166) | (19/166) |
| 0 | 0 | 0 | 0 | (1/14) | 0 | (1/7) | (1/14) | 0 | (1/2) | 0 | (3/14) |
| (5/32) | 0 | (1/16) | (3/128) | (3/64) | (11/64) | (1/128) | (29/128) | (3/64) | 0 | (1/64) | (31/128) |
| (5/16) | 0 | (1/16) | 0 | (5/16) | 0 | 0 | (1/8) | 0 | (3/16) | 0 | 0 |
| (36/131) | (2/131) | (16/131) | 0 | (6/131) | (19/131) | (3/131) | (21/131) | (4/131) | (24/131) | 0 | 0 |)];midiToFreq[m_] := 2 ^ ((m - 69) / 12) * 440.;AudioGenerator[{"Sin", midiToFreq[59 + TimeSeriesRescale[RandomFunction[𝒫, {0, 50}], {0, 6}]]}, SampleRate -> 8000]code = <|"a" -> ".-", "b" -> "-...", "c" -> "-.-.", "d" -> "-..", "e" -> ".", "f" -> "..-.", "g" -> "--.", "h" -> "....", "i" -> "..", "j" -> ".---", "k" -> "-.-", "l" -> ".-..", "m" -> "--", "n" -> "-.", "o" -> "---", "p" -> ".--.", "q" -> "--.-", "r" -> ".-.", "s" -> "...", "t" -> "-", "u" -> "..-", "v" -> "...-", "w" -> ".--", "x" -> "-..-", "y" -> "-.--", "z" -> "--..", "1" -> ".----", "2" -> "..---", "3" -> "...--", "4" -> "....-", "5" -> ".....", "6" -> "-....", "7" -> "--...", "8" -> "---..", "9" -> "----.", "0" -> "-----", "." -> ".-.-.-", "," -> "--..--", "!" -> "-.-.--", "?" -> "..--.."|>;
withgaps = Map[StringRiffle[Characters[#], "_"]&, code];
withpauses = Map[StringInsert[#, "___", -1]&, withgaps];
withspace = AssociateTo[withpauses, " " -> "_______"];
replacements = Map[StringReplace[#, {"-" -> "111", "." -> "1", "_" -> "0"}]&, withspace];createMorseSignal[s_String, t_] := Module[{events = Characters[StringReplace[ToLowerCase[s], Normal@replacements]], ts, amps},
ts = TimeSeries[ToExpression@events, {0, (Length[events] - 1) * t, t}];
amps = AudioGenerator[ts, SampleRate -> 1000];AudioGenerator[{"Sin", 800}, Duration@amps, SampleRate -> 8000]amps
]morse = createMorseSignal["hello world", .05]AudioPlot@%テキスト
Wolfram Research (2016), AudioGenerator, Wolfram言語関数, https://reference.wolfram.com/language/ref/AudioGenerator.html.
CMS
Wolfram Language. 2016. "AudioGenerator." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/AudioGenerator.html.
APA
Wolfram Language. (2016). AudioGenerator. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/AudioGenerator.html
BibTeX
@misc{reference.wolfram_2026_audiogenerator, author="Wolfram Research", title="{AudioGenerator}", year="2016", howpublished="\url{https://reference.wolfram.com/language/ref/AudioGenerator.html}", note=[Accessed: 12-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_audiogenerator, organization={Wolfram Research}, title={AudioGenerator}, year={2016}, url={https://reference.wolfram.com/language/ref/AudioGenerator.html}, note=[Accessed: 12-September-2026]}