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

ハミング窓

はみんぐまど · Hamming window
16 views

ハミング窓とは、音声認識などの信号処理において、無限に続く時系列データから一部を切り出す際に用いられる代表的な窓関数の一種です。切り出し境界で発生するノイズ(不連続性)を抑制し、周波数成分を正しく解析するために使用されます。ハニング窓に比べて近傍のノイズ(サイドローブ)を低く抑えられる特徴があります。

ハミング窓とは

ハミング窓(Hamming window)とは、AIの音声処理や音響解析において、連続する音声データから一定時間(フレーム)を切り出す際に掛け合わせる代表的な窓関数です。切り出し口の境界部分をなめらかに減衰させることで、切り出すことによって生じる人工的な高周波ノイズ(スペクトル漏れ)を最小限に抑え、高精度な周波数解析を可能にします。

詳しく解説

音声認識や音響AIモデルへの入力を作成する際、長い音声信号を20〜30ミリ秒程度の短い区間に分割して処理します。しかし、単純に矩形(四角形)で切り出すと、切り出した両端が急激に変化するため、本来の音声には存在しない高周波ノイズがスペクトル解析時に発生してしまいます。この現象を防ぐために、切り出した波形の両端をなだらかに減少させる「窓関数」が適用されます。ハミング窓は、コサイン関数(余弦波)を基に設計されており、窓の両端の値が完全にゼロにはならず、約0.08(8%)のわずかな高さを残すように底上げされているのが特徴です。これにより、メインの周波数成分のすぐ近くに現れる不要なノイズ(サイドローブの第1ピーク)を効果的に抑え込むことができ、明瞭な周波数成分を抽出できます。

具体例・使われ方

ディープラーニングを用いた音声認識システムにおいて、マイクから入力された音声をAIが処理しやすいデータに変換する特徴量抽出のプロセスでハミング窓が広く使われています。例えば、音声からメル周波数ケプストラム係数(MFCC)と呼ばれる特徴量を計算する際、まず音声波形にハミング窓を適用し、その後に高速フーリエ変換(FFT)を実行します。これにより、声の高さや音色の変化といった重要な情報をノイズに邪魔されることなく抽出することができます。

似た用語との違い

ハミング窓と最も混同されやすいのが「ハニング窓」(ハン窓)です。両者はともにコサイン関数を利用した窓関数ですが、ハニング窓は窓の両端が完全に「ゼロ」に収束します。これに対し、ハミング窓は両端にわずかな「底上げ」を持たせています。この違いにより、ハミング窓は「最も近い不要なノイズ(サイドローブの最大値)を小さく抑えられる」というメリットを持つ一方、ハニング窓は「より遠くの不要なノイズを素早くゼロに減衰させられる」という特性を持ちます。解析の目的に応じて使い分けられます。

注意点

ハミング窓は汎用性が高く、多くの音声処理ライブラリでデフォルトとして採用されていますが、万能ではありません。両端にわずかな底上げがあるため、完全に信号をゼロに収束させたい場合にはハニング窓などの他の窓関数が適しています。また、窓関数を適用した切り出し処理を行うと、信号の両端の情報が弱まるため、フレーム同士を50%程度重ね合わせる(オーバーラップ)などの処理を併用しなければ、情報が失われる原因となります。

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