音声圧縮器を構築する
音声圧縮器を構築する.
In[1]:=
![Click for copyable input](assets.ja/build-an-audio-compressor/In_26.png)
a = Import["ExampleData/rule30.wav"]
In[2]:=
![Click for copyable input](assets.ja/build-an-audio-compressor/In_27.png)
AudioPlot[a, ImageSize -> Medium]
Out[2]=
![](assets.ja/build-an-audio-compressor/O_10.png)
閾値0.02で信号の二乗平均平方根(RMS)振幅を計算する.
In[3]:=
![Click for copyable input](assets.ja/build-an-audio-compressor/In_28.png)
amplitude = AudioBlockMap[Max[.02, Sqrt@Mean[#^2]] &, a, {.01, .005}]
Out[3]=
![](assets.ja/build-an-audio-compressor/O_11.png)
信号のダイナミックレンジを圧縮する.
In[4]:=
![Click for copyable input](assets.ja/build-an-audio-compressor/In_29.png)
AudioNormalize[a/AudioGenerator[amplitude]]
In[5]:=
![Click for copyable input](assets.ja/build-an-audio-compressor/In_30.png)
AudioNormalize[a/AudioGenerator[amplitude]];
AudioPlot[%, ImageSize -> Medium]
Out[5]=
![](assets.ja/build-an-audio-compressor/O_12.png)