3

私は、Windows音声認識エンジンまたはSAPIを使用するアプリケーションを作成するために使用します。正しく発音したときにスコアが出る発音ゲームのようなものです。しかし、SAPIで実験を開始したとき、文法(XML)をロードしない限り、認識が不十分で、最良の認識結果が得られます。

しかし、問題は、入力テキストから最も近い発音が認識されることです。例えば:

データベース->dedebase->正しい。

たとえあなたがそれを誤って発音したとしても。それはあなたに正しい答えを与えます。

xml文法を使用せずに

データベースと言うと、「ベース/ベース/データベースなど...」になります。

あなたの答え、提案、説明を投稿してください。ベストアンサーに投票します。

is it possible or not?

ちなみに私はプロジェクトでdelphiコンパイラを使用しています...

4

3 に答える 3

4

私は2つのことをします:

  1. ISpEnginePronunciation :: GetPronunciationsを使用して、元のテキストを音素に変換します。
  2. ディクテーション文法と発音言語モデルを使用して、SAPIに一連の音素を返すように強制します。これを行うには、ISpRecoGrammar :: LoadDictation(L "Pronunciation"、SPLO_STATIC)を呼び出します。
  3. 認識された音素をターゲットの音素と比較します。

ISpEnginePronunciationはSAPI5.1では使用できないため、これはVistaとWindows7に限定されていることに注意してください。

于 2010-05-25T22:32:58.803 に答える
2

ゲームのポイントが、特定の言語(EN-USなど)の「標準発音」に最も近い発音を使用して話すようにユーザーを促すことである場合は、ユーザーに、ユーザーの特定の(変更されていない)適応するように認識機能をトレーニングさせます。発話パターンは逆効果になる可能性があります。部分的には、ユーザーの発音の失効をより寛容にするように認識機能をトレーニングすることになります。

文法ベースの認識またはディクテーションベースの認識(Eric Brownの投稿は非常に有望に見えます)を使用することになった場合でも、おそらく「自信」スコアも調べたいと思うでしょう。これらのスコアは、認識が実行された後に利用可能になり、ユーザーが実際に言ったことは、認識者がユーザーが言ったと思うことと一致することを認識者がどれだけ確信しているかを示す数値になります。レコグナイザーの構成とユースケースに応じて、信頼スコアは意味がある場合とない場合があります。

電話/音素/発音のテキスト表現に基づいて精度スコアを作成する場合、精度スコアを取得するための迅速かつ簡単な方法は、ネット上で自由に利用できる多くの実装があるレーベンシュタイン距離を使用することです。 。より良いスコアリングアルゴリズムは、比較のアトミック単位が単一の電話である再同期差分である可能性があります。

MSDNドキュメントハンティングのキーワードは次の
とおりです。ISpRecoResult->GetPhrase->SPPHRASE-> Rule->SPPHRASERULE->SREngineConfidence。

http://msdn.microsoft.com/en-us/library/ee413319%28v=vs.85%29.aspx
http://msdn.microsoft.com/en-us/library/ms720460%28v=VS.85 %29.aspx

于 2011-03-23T04:47:43.157 に答える
2

あなたが望むもののために、おそらく文法を使わないのが最善です。ただし、ユーザーは音声認識エンジンの「最小限の」基本トレーニングを行う必要があります。それほど長くはなく、比較的快適です。そして、それは認識精度に本当に違いをもたらします(私を信じてください、私は私の英語で強いフランス語のアクセントを持っています)。
ゲーム自体の予備練習として含めることもできます。
このCodeRage4セッション「音声対応Delphiアプリケーション(zip)」で見ると面白いかもしれません。

于 2010-05-18T07:26:14.717 に答える