音声信号処理とは

音 声信号処理とは,人間の音声に何らかの処理を加えて,目的とする信号を取り出すことです.例えば,音声重畳雑音除去は,音声に含まれる雑音を取り除いて, 元のきれいな音声を取り出すのが目的です.また,最近では混ざり合った人間の声から,目的の人の声だけを取り出す研究も盛んに行われています.

音声重畳雑音除去は,みなさんが日頃使っている携帯電話でも使用されています.そこでは,スペクトルサブトラクション(スペクトル減算)法というのが一般的に用いられています.図を以下に示します.

SS

こ の方法の特徴は,音声が無く,雑音だけが存在する状態で,まずは雑音のスペクトルだけを検出していき,それを音声と雑音が混じるスペクトルから引き算する ものです.スペクトルを算出するには高速フーリエ変換(FFT)が使用されます.一つのマイクロフォンで実現できることから,小型化,低コスト化が可能の ため,実用化が成功しています.ただし,厳密にはこの方法は単一マイクロホンシステムではなく,擬似単一マイクロフォンシステムです.すなわち,本来なら 雑音用と音声用に2つのマイクが必要なところを,時間差を利用して,一つのマイクを共有しているものです.ただし,問題もあります.それは,事前に検出し た雑音特性が変化すると雑音を引き残したり,引きすぎたりといった問題が生じます.また,FFT演算ではブロック処理(ある一定のデータをまとめて処理す る)ため,実時間性が要求される場合には注意が必要です.

それではここで主な雑音除去システムを紹介しておきましょう.

ま ず,適応ノイズキャンセラです.これは別のページで紹介している適応信号処理技術を用いるもので,雑音用にマイクを設け(そのため複数マイクロフォン方 式),その雑音が,音声用のマイクロフォンへ到達する過程を適応信号処理により推定し,音声用のマイクに入力された音声と雑音が混じった信号からそれを差 し引くことで雑音を除去するものです.

nc
こ の方法の大きな問題は,雑音用のマイクに音声が混じらないよう(図の点線の逆)にしなければならないという点です.すなわち,雑音用マイクには雑音だけが 入力されるような環境を作らないといけません.そのため,一般的には2つのマイクの間の距離を保つ必要があり,システムを小型化するには問題となります.

もう一つ紹介するのはマイクロフォンアレイという技術です.これは複数のマイクロフォンをアレイ状に配置し,位相の違いを推定して同一方向の信号は同相化して強調しようとするものです.当然ながら,マイクは複数必要なため,やはり小型化や低コスト化には問題があります.

array

したがって,擬似的な場合を除き,純粋に単一マイクロフォン方式による音声の雑音除去技術はまだ確立されていないと言えます.

た だし,単一マイクロフォンが良いかと言えば,それには限界があります.極端な例として,以下のような場合を想定してみましょう.音声(取り出したい音)が ある振幅を持つ正弦波で,雑音(消したい音)が同じ振幅で逆相の正弦波であった場合,雑音重畳音声はどうなるでしょう.そうです.振幅0の直流(グラウン ドレベル)になってしまいます.

sin

ゼロレベルの信号をどのように変換しようが何も出てきませんので,雑音除去ができないことはおわかりだと思います.極端な例ですが単一マイクロフォン方式の限界を示すには十分です.

で は,このゼロレベルの信号からどうやれば元の音声が取り出せるでしょうか?それには少なくとも元の雑音信号の情報が何らかの形で必要です.雑音信号の振幅 と位相が分かれば,それを0から差し引くと,確かに元の信号が再現できます.したがって,雑音信号だけを取り出す仕組みを備えてないと,厳密に音声の再現 はできない,言い換えれば単一マイクロフォン方式には限界があることが分かります.先のスペクトルサブトラクション法は時間差を利用してうまくこの問題を 解決している訳です.

我々の研究では,そのような単一マイクロフォン方式の限界を知りつつも,現状では,小型化,低コスト化が優先されると考え,単一マイクロフォン方式で処理する方法を考えています.詳しくは論文の方をご覧下さい.