17

私は音声合成と音声合成の開発を行っていますが、OpenEarsAPIが非常に便利であることがわかりました。

このcmu-slmベースのAPIの原理は、言語モデルを使用して、iPhoneデバイスで聞いた音声をマッピングすることです。そこで、API音声認識エンジンにフィードするための大きな英語モデルを見つけることにしました。しかし、OpenEarsで使用するvoxfourge英語データモデルの形式を理解できませんでした。

英語の.languagemodelファイルと.dicファイルをOpenEarsで動作させるにはどうすればよいか考えている人はいますか?

4

2 に答える 2

5

LMフォーマットについて:

AFAIKのほとんどの言語モデルは、言語モデルにARPA標準を使用しています。Sphinx/CMU言語モデルはバイナリ形式にコンパイルされます。Sphinx LMを別の形式に変換するには、ソース形式が必要です。他のほとんどの言語モデルはテキスト形式です。

HTK音声認識ツールキットの使用をお勧めします; 詳細なドキュメントはこちら: http: //htk.eng.cam.ac.uk/ftp/software/htkbook_html.tar.gz

CMUのSLMツールキットの説明もあります:http ://www.speech.cs.cmu.edu/SLM/toolkit_documentation.html

ネットで見つけたARPA形式の言語モデルの例を次に示します。http ://www.arborius.net/~jphekman/sphinx/full/index.html

おそらく、最初にARPA LMを作成してから、必要に応じて任意のバイナリ形式に変換することをお勧めします。

一般に:

言語モデルを構築するには、この時点までの現在の入力を観察した後、語彙内の他の単語の確率を決定するために、多くのトレーニングデータが必要です。

認識したい単語を追加するだけで言語モデルを「作成」することはできません。また、多くのトレーニングデータ(=音声認識アプリケーションの実行時に観察される一般的な入力)も必要です。

言語モデルは単なる単語リストではなく、入力内の次のトークン(単語)の確率を推定します。これらの確率を推定するには、トレーニングプロセスを実行する必要があります。このプロセスでは、トレーニングデータ(履歴データなど)を調べ、そこで単語の頻度を観察して、上記の確率を推定します。

あなたの問題については、おそらく迅速な解決策として、すべての単語が同じ頻度/確率を持っていると仮定してください。

  1. 認識したい単語で辞書を作成する(辞書内のN語)

  2. 各単語の確率が1/Nの言語モデルを作成する(ユニグラム言語モデル)

次に、HTK Toolkitを使用して、そのユニグラム言語モデル(LM)を別のLMで補間し、より大きなコーパスを作成できます。

于 2011-04-19T17:41:46.783 に答える
2

古い質問ですが、答えはまだ興味深いかもしれません。OpenEarsには言語モデル生成が組み込まれているため、1つのオプションは、MITLMライブラリとNSScannerを使用して上記のCMUツールキットと同じタスクを実行するLanguageModelGeneratorクラスを使用して、必要に応じてアプリでモデルを動的に作成することです。 。iPhoneで5000語を超えるコーパスを処理するには非常に長い時間がかかりますが、いつでもシミュレーターを使用して一度実行し、ドキュメントフォルダーから出力を取得して保持することができます。

大きな語彙を認識するための別のオプションについて、ここで説明します。

50,000語のARPA言語モデルファイルの作成

そうは言っても、OpenEarsの開発者として、CMUツールの5000語の制限は、Pocketsphinxを使用するときにiPhoneでまともな精度と処理速度を持つ可能性が高い最大語彙サイズにかなり近いことを指摘する必要があります。したがって、最後の提案は、タスクを再概念化して、大きな語彙認識を絶対に必要としないようにすることです(たとえば、OpenEarsではモデルをオンザフライで切り替えることができるため、1つの巨大なモデルは必要ないかもしれませんがさまざまなコンテキストで切り替えることができる複数の小さなものでうまくいくことができます)、またはサーバー上で大きな語彙認識を行うことができるネットワークベースのAPIを使用する(または独自のサーバーでSphinx4を使用する独自のAPIを作成する)ことができます。幸運を!

于 2011-07-18T19:28:43.973 に答える