3

マイクからの音声入力をリアルタイムで検出しようとしています。

私はすでに入力を受け取り、FFTアルゴリズムを実行し、結果をdBで示しています。周波数領域、時間領域、スペクトログラムがあります。

基本周波数を取得するにはどうすればよいですか?基本周波数を取得した場合、周波数が特定の値の間にある場合、私たちが話しているのは音声であると指定できますか?私がすでに持っているものでこれを行う他の方法はありますか?

事前にTks

4

2 に答える 2

3

周波数推定にはさまざまなアルゴリズムがあり、使用する適切なアルゴリズムは何をしているかによって異なります。どのような種類の入力を期待していますか? その入力で何をしたいですか?どのような処理能力がありますか?

基本周波数を検出しても、特定の人が話しているかどうかを特定するのには役立ちません。声の周波数は絶えず変化します。その人のフォルマントなどの「指紋」を作成する必要があります。

単純に FFT のピークを見つけるだけでは、音声については良い結果が得られません。ケプストラム分析を調べてください。

于 2009-12-05T18:38:49.867 に答える
1

音声の範囲内(たとえば、400〜10K hz)のスペクトログラムの最高峰を取ります。それはあなたに基本周波数を与えるはずです。

または、頻度のヒストグラムを統合する必要がある場合があります。これは、かなり高い周波数と広いスペクトルを持つ歯擦音(「s」の音)と摩擦音(「f」と「th」の音)で始まる、またはそれらを含む単語がある場合があるためです。母音以外の何かで始まったので、スピーチの始まりを見逃したくありません。

もう一つの要因は、声以外に何を拾うかです。バックグラウンドノイズがたくさんありますか?どんな種類?ない場合は、音が存在するだけで十分です。たとえば、音楽がある場合は、まったく別の課題があります。音声と他の音を区別しようとしている場合は、ニューラルネットワークアプローチを試してみたくなるでしょう。そのレベルの複雑さが必要になる可能性があります。

于 2009-10-23T15:40:39.893 に答える