この式を使用して信号の周波数を取得しますが、複素数でコードを実装する方法がわかりませんか? Math.Sqrt(-1)に関係する式に「i」があります。この数式をコーディングして、NAduio ライブラリを使用して C# でシグナルを送るにはどうすればよいですか?
3 に答える
多くの言語では、実際にこのためのライブラリが組み込まれて提供されています。C#.NET での 1 つの例は、このリンクにあります。これにより、音声認識プログラムをセットアップする方法を順を追って説明します。また、特定の現象などのオーディオを解析するという低レベルの詳細から抽象化します (高度に最適化されたバージョンを作成したい場合を除いて、そこにあるライブラリの量を考慮すると、これは率直に言って無意味です)。
基本レベルに戻りたい場合は、次のようにします。
隠れマルコフ モデル (HMM) のような何らかの形式の確率モデルを使用する必要があります。これにより、ユーザーが言うことを許可されている単語ごとに 1 つずつ、モデルのコレクションに対してユーザーが言うことをテストできます。
さらに、オーディオ波形を、プログラムがより簡単に解釈できるものに変換したいと考えています。高速フーリエ変換 (FFT) やウェーブレット変換 (CWT) のようなもの。
手順は次のとおりです。
- 音声を入手
- バックグラウンド ノイズを除去する
- FFT または CWT による変換
- オーディオのピークやその他の特徴を検出する
- これらの機能を HMM と比較する
- しきい値に関して最良の結果を持つ HMM を選択します。
もちろん、これには、事前に正しい単語で HMM をトレーニングする必要があります。
それでも難しい問題であり、それを行うにはASRフレームワークを使用する必要があります。Sphinx4を使用して、もう少し複雑なこと(〜100ワード)を実行しました。HTKも使用できます。
一般的にあなたがしなければならないことは次のとおりです。
- 認識したい単語をすべて書き留めます
- (方向)(量)のようなコマンドの構文を決定します
次に、フレームワークを選択し、音響モデルを取得し、そのフレームワークと互換性のある辞書と言語モデルを生成します。次に、フレームワークをアプリケーションに統合します。
私はあなたがする必要があるすべての重要なことを述べたことを望みます。それらを個別にグーグルで検索するか、選択したフレームワークのチュートリアルに移動できます。
あなたのタスクは音声認識の点で比較的単純であり、それを完了すると良い結果が得られるはずです。