信号処理機械学習音声処理

ハナン窓

はなんまど · Hann Window
18 views

ハナン窓(ハン窓・ハニング窓)とは、信号処理や音声分析において、時系列データを切り出す際に端部の不連続性を抑え、周波数漏れ(スペクトルリーク)を低減させるための窓関数の一つです。コサイン関数を用いたなめらかな形状を持ち、音声認識や音響AIモデルの前処理(短時間フーリエ変換など)で標準的に利用されます。

ハナン窓とは

ハナン窓は、時間領域のデータを一定区間で切り出す際、両端の数値を滑らかにゼロへ近づけることで、周波数解析時の歪みやスペクトルリークを抑える代表的な窓関数です。

詳しく解説

信号処理や音声分析において、無限に続く音響データなどの時系列信号から局所的な特徴量を抽出するために短時間フーリエ変換(STFT)などが用いられます。単にデータを四角く切り出す(矩形窓)と、切り出しの境界で急激な変化(不連続性)が生じ、本来存在しない高周波成分が周波数スペクトル上に発生する「スペクトルリーク」という現象が起きます。ハナン窓はコサイン関数の半周期を利用して両端を滑らかにゼロに収束させる重み付けを行うことで、境界の不連続性を軽減します。AIによる音声認識、音声合成、楽曲分析などの前処理として、スペクトログラムを生成する段階で極めて重要な役割を果たします。

具体例・使われ方

例えば、AIを用いた音声認識システムにおいて、マイクから入力された連続的な人間の声を一定時間(例えば25ミリ秒ごと)に分割して周波数分析を行う際、各区間にハナン窓を適用します。これにより、ノイズの少ない綺麗なスペクトログラムが生成され、音声を正しい文字テキストへ変換する深層学習モデルの精度向上に寄与します。

似た用語との違い

ハニング窓(ハナン窓)とハミング窓は、ともにコサイン関数を用いた代表的な窓関数ですが、端部の扱いが異なります。ハナン窓は窓の両端が完全にゼロになりますが、ハミング窓は両端が約0.08の値を持ちゼロになりません。ハナン窓は周波数漏れの抑制に優れる一方、ハミング窓はメインローブが僅かに狭く、近接した周波数成分の識別に向いているという違いがあります。また、重み付けを行わない矩形窓と比べると、どちらも高周波ノイズの発生を大幅に抑えられます。

注意点

ハナン窓を適用すると、区間の両端付近のデータ強度が減衰(消失)するため、データをそのまま切り出すだけでは両端の重要な情報が失われる危険があります。このため、実用上は時間軸上でデータを半分程度ずつ重ね合わせて切り出す「オーバーラップ処理」を組み合わせる必要があります。また、時間分解能と周波数分解能のトレードオフが存在するため、窓幅の適切な設定が不可欠です。

更新日時: 2026年9月20日 20:15