Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

Audacity『ノイズ除去』の周波数特性

Audacityのノイズ除去を検証してみる」では、AudacityのNoise Reductionが周波数を分析しているのならば、特定の周波数をノイズとした時、その周波数が消えるか?という観点で調べてみました。周波数特性についてもう少し検証してみます。

周波数特性を調べる方法

フィルタの周波数特性を調べる時、ホワイトノイズを入力する方法があります。ホワイトノイズは全帯域の周波数成分を同じレベルで含んでいるので、フィルタを通過した信号で周波数特性が分かります。

ノイズプロファイルの周波数特性を調べる

Audacityのノイズ除去を検証してみる」の、1kHzの正弦波をノイズとしてプロファイルを取得したNoise Reductionの周波数特性を調べてみます。

1kHzの正弦波をノイズプロファイル

まずは、1kHzの正弦波でノイズプロファイルを取得します。ノイズプロファイルはこちら(Audacityでノイズ除去

  • Audacityで1kHzの正弦波を生成します *1
  • 1kHzの正弦波をノイズとしてノイズプロファイルを取得します *2

ホワイトノイズをノイズ除去して周波数特性を調べる(Noise Reductionに入力して出力を調べる)

次に、ホワイトノイズをノイズ除去して出力の周波数特性をみます。周波数分析はこちら(Audacityで周波数分析

  • ホワイトノイズを生成します *3
  • ホワイトノイズをノイズ除去します (デフォルトパラメータ:ノイズ除去=12dB, 感度=6, 周波数平滑化=3)*4
  • ホワイトノイズをノイズ除去した結果をスペクトラム表示で見ます *5

スペクトラム表示

f:id:jspnet:20201129013518p:plain:left:w600

1kHzが約12dB減衰しているのが分かります。 この周波数特性ならば、1kHzの信号が抑圧されるのは良く分かります。

ホワイトノイズは消せるか?(分析しているのは周波数だけか?)

周波数分析でノイズを抑圧するのならば、全帯域の周波数成分を含むホワイトノイズは除去しにくいのではないか?

  • ホワイトノイズをノイズプロファイルする
  • ホワイトノイズ+音声のをノイズ除去すると?

ノイズレベル大:約-40dB

Audacityのノイズ生成で、振幅を0.3として生成したホワイトノイズと音声を合成して、Noise Reductionで処理してみます。

f:id:jspnet:20201129013806p:plain:left:w600

⇦ ホワイトノイズ(大)

⇦ 音声

⇦ ホワイトノイズ + 音声*6


ノイズ除去=12dB(感度=6, 周波数平滑化=3)

ホワイトノイズ(大) + 音声をノイズ除去した結果です。

f:id:jspnet:20201129014805p:plain:left:w600 この条件では厳しそうです。

スペクトラム表示で周波数特性をみます。

ノイズ除去前

f:id:jspnet:20201129015142p:plain:left:w600 276Hz位の帯域に音声信号のピークがあります約-29dB。低域と高域のノイズは約-40dB。

ノイズ除去後

f:id:jspnet:20201129015153p:plain:left:w600 音声信号のピークが-34dB、低域と高域のノイズは約-52dB

一般に、電話回線などの音声帯域は300Hz~3.4kHzと言われていますが、使用した音声では276Hz位にピークがありますので、音声帯域として276Hz、ノイズ帯域として低域100Hz、高域5kHzを比較してみます。

ノイズ帯域がパラメータで指定した12dB抑圧されますが、音声帯域も約5dB抑圧されています。S/Nも悪いですが、ノイズプロファイルが周波数で分析しているとすると仕方がないと言えるでしょう。

ノイズレベル大、ノイズ除去=12dB ノイズ除去前 ノイズ除去後 抑圧量 備考
音声帯域のピーク 約276Hz -29dB -34dB 5dB 音声帯域も減衰
ノイズ帯域の低域 100Hz -40dB -52dB 12dB パラメータで指定した12dB
ノイズ帯域の高域 5kHz -40dB -52dB 12dB パラメータで指定した12dB


ノイズ除去=18dB(感度=6, 周波数平滑化=3)

パラメータでノイズ除去を大きくすると、さらに音声帯域に影響します。

ノイズレベル大、ノイズ除去=18dB ノイズ除去前 ノイズ除去後 抑圧量 備考
音声帯域のピーク 約276Hz -29dB -36dB 7dB 音声帯域も減衰
ノイズ帯域の低域 100Hz -40dB -58dB 18dB パラメータで指定した18dB
ノイズ帯域の高域 5kHz -40dB -58dB 18dB パラメータで指定した18dB

ノイズレベル小:約-49dB

S/N をもう少し良くして(ノイズレベルを小さくして)やってみます(振幅を0.1)。

f:id:jspnet:20201129015849p:plain:left:w600 ⇦ ホワイトノイズ(小)

⇦ 音声

⇦ ホワイトノイズ + 音声


ノイズ除去=12dB(感度=6, 周波数平滑化=3)

ホワイトノイズ(小) + 音声をノイズ除去した結果です。

f:id:jspnet:20201129015921p:plain:left:w600 これならばノイズ除去の効果があったと言えるでしょう。

音声帯域の減衰量は約2dBです。

ノイズレベル小、ノイズ除去=12dB ノイズ除去前 ノイズ除去後 抑圧量 備考
音声帯域のピーク 約276Hz -29dB -31dB 2dB 音声帯域も減衰
ノイズ帯域の低域 100Hz -49dB -61dB 12dB パラメータで指定した12dB
ノイズ帯域の高域 5kHz -48dB -60dB 12dB パラメータで指定した12dB


ノイズ除去=18dB(感度=6, 周波数平滑化=3)

パラメータを大きくすると、やはり音声帯域に影響します。

ノイズレベル小、ノイズ除去=18dB ノイズ除去前 ノイズ除去後 抑圧量 備考
音声帯域のピーク 約276Hz -29dB -33dB 4dB 音声帯域も減衰
ノイズ帯域の低域 100Hz -49dB -67dB 18dB パラメータで指定した18dB
ノイズ帯域の高域 5kHz -48dB -66dB 18dB パラメータで指定した18dB


ノイズプロファイルでは何をしている?

特定の周波数をノイズとした時ノイズ抑圧の効果は良好でした。一方ホワイトノイズを除去した場合は、音声帯域にもノイズ抑圧の影響が出ます。 ちなみに上記の、ノイズ(小)のプロファイルで、ノイズ(大)の音源(ノイズ+音声)をノイズ除去すると抑圧量がかなり減りました。 Audacityのノイズ除去のノイズプロファイルでは、ノイズの周波数特性とレベルも分析しているようです。

*1:正弦波の生成:【ジェネレーター】➞【トーン】➞【サイン波】

*2:ノイズプロファイル:【エフェクト】➞【ノイズの除去】➞ ステップ1【ノイズプロファイルの取得】

*3:ホワイトノイズの生成:【ジェネレーター】➞【ノイズ】➞【ホワイトノイズ】

*4:ノイズ除去:【エフェクト】➞【ノイズの除去】➞ ステップ2【OK】

*5:スペクトラム表示:【解析】➞【スペクトラム表示】

*6:合成:【トラック】➞【Mix】➞【新しいトラックにミックスして生成】