55

ご挨拶、

マイクをタップするたびに文字列を出力するプログラムを Python で作成しようとしています。「タップ」と言うときは、大きな突然のノイズまたはそれに似たものを意味します。

私はSOで検索し、この投稿を見つけました:オーディオのトーンを認識する

PyAudio ライブラリは私のニーズに合っていると思いますが、プログラムにオーディオ信号を待機させる方法 (リアルタイムのマイク監視) と、それを処理する方法 (フーリエ変換を使用する必要があるかどうか) がよくわかりません上記の投稿で指示されました)?

よろしくお願いします。

4

3 に答える 3

7

...そして、それを処理する方法を取得したとき (上記の投稿で指示されたようにフーリエ変換を使用する必要がありますか)?

「タップ」が必要な場合は、周波数よりも振幅に関心があると思います。したがって、フーリエ変換はおそらく特定の目的には役に立ちません。おそらく、入力の短期間 (たとえば 10 ミリ秒) の振幅の実行中の測定を行い、特定のデルタによって突然増加したときを検出したいと思うでしょう。次のパラメーターを調整する必要があります。

  • 「短期」振幅測定とは
  • あなたが探しているデルタ増加は何ですか
  • デルタ変更が発生する必要がある速さ

周波数には興味がないと言いましたが、最初にフィルタリングを行って、特に低周波数成分と高周波数成分を除外することをお勧めします。これは、いくつかの「誤検知」を回避するのに役立つ場合があります。FIR または IIR デジタル フィルターを使用してこれを行うことができます。フーリエは必要ありません。

于 2009-12-20T23:42:20.750 に答える