2009-03-20 4 views
6

私は、音声をテキストに変換できる基本的な音声認識ソフトウェアを書きたいと思っています。私はそのようなソフトウェアを書くのに最も適している言語を知りたかったのです。 Javaはこの仕事に適していますか?音声認識ソフトウェアを書くのにどの言語を使うのですか?

編集:ありがとうございました。私は大学のプロジェクトのためのツールを作りたいと思っています。私は最初からそれを書いてはいけません。ちょうど音声認識の力をデモしたい。このツールは、メモ帳のようなテキストエディタでユーザーが言うことを書いただけです。あまりにも正確である必要はありません。私は、このフィールドが非常に興味深いと思ったときに、音声認識の背後にあるさまざまなアルゴリズムを試して学びたいと思っています。

は、Javaがそれへのインタフェースに適していてもよいが、音声認識が真剣に生のイサキが必要です。、 ディーパック

答えて

2

をありがとう私は実際の認識エンジンのためにCのようなコンパイルされた密接な金属言語を選択しています。

これは、ちょっと軽く行うべきことではありません。あなたが始める前に覚えておく必要がある非常に多くの理論があります。私自身は、可能ならば既存のエンジンの1つをライセンスし、そのまわりにまともな製品を作ることに集中します。

これは、製品をビルドすることを意図している場合です。あなたが実験したいだけなら、あなた自身で覚えておいてください。それは楽しいでしょう(ポイントまで:-)。

+0

@Paxはあなたの答えに対する私の逆の回答にコメントしてください。 – MarkusQ

+0

既存のエンジンのライセンスはおそらく生産性が高いという考えに同意します。しかし、あなたは現在、Javaは事実上、ネイティブに「コンパイルされた」言語であることも知っています。いずれにしても、人々は今までPythonでエンジンを書いています... –

+0

@paxdiablo、この回答に感謝します。私は6年後に返信していることは分かっていますが...私は、APIを打つことで音声対話ソフトウェアを自分のアプリケーションに統合したいのですが、外国語のエンドポイントはありません。私はそれについてここに投稿しました:http://stackoverflow.com/questions/32937367/speech-to-text-api-for-foreign-languages。手伝ってくれますか? – Growler

0

私はJavaが良いオプションになると思う、それはどのように入力を受け取るかによって異なります。 Javaのサウンドには素晴らしいライブラリーがいくつかあります。

言語は、それはパターン認識の問題になりますので、問題になるだろうされていません。 javaがあなたが最もよく知っている言語なら、私はそれを使用します。

1

Aは、パックスは言ったほとんどすべてに同意するので、私は逆張りも、反対を主張するつもりです。従来の知恵は、音声認識では「真剣に生ハツカネズミを必要とする」ということです。これは正しいことかもしれません。

しかし、それは誰もがそれがいつもされている方法だと信じているかもしれません。人間の脳が音声を認識するようにかき回すブルートフォース大量のデータを行わないことから口論、私が仕事をより効率的くらいを行うために巧妙な特徴抽出アルゴリズムが存在することを示唆しています。

は、それが事実である場合、あなたはこのようなアルゴリズムを発見しようとすれば、より高いレベルの言語は、タスクに良く適しているかもしれません。あなたが効率的になると、アルゴリズム的な表現力が向上します。

しかし、彼はおそらく正しいでしょう。

+0

私はあなたが言いたいことには、MarkusQは同意しません。しかし、脳は大規模な並列性を持っています。私たちはJREに1000億スレッドを生成しようとする可能性がありますが、どれくらいうまく行くのかはわかりません(はい、私はそれが愚かであることを知っています。私は試してみるべきあなたの主張に同意する。 – paxdiablo

+0

@Pax興味深い質問です。音声認識には10^11スレッドのニューロンを使ってはいけません。 10^11ニューロンのうち10^9のオーダーで音声認識に使用しますが、おそらく10^2 /秒の遷移率で、私のクアッドコアのデスクトップは簡単に10倍のヒットします... – MarkusQ

+0

私は同意しません。自動音声認識分野では、最良のアプローチはそれほど巧妙ではなく、膨大な量のトレーニングデータと計算に依存します。それはそれが好きな人のためではなく、結果が良いからです。しかし、我々はポケットにムーアの法則で道に進んでいる:-) – Jiri

3

私は、これは潜在的に非常に大きなプロジェクトであり、最も現実的な解決策は、単に既存のエンジンをライセンスするだろうということであることパックスに同意します。

あなたがしたいことの範囲がの場合、これまで知られていたいくつかの発話の間でを区別すると、それはかなり小さいプロジェクトですが、それでもかなりです。

しかし...あなたが本当に本当に本当にあなた自身の開発を開始したいん決定した場合、私は、Javaを使用しない理由を見ることができません。 「Cがより速い」という考え方は、主に神話(または時代遅れの情報に基づく)です。

4

私の学生はSphinxを使用しています。これはJavaで書かれています(私が信じているC++のポートです)。あなたが望むものには適していないかもしれませんが(私はあなた自身の辞書を作る必要があると思いますが)チェックアウトする価値があります。

0

Javaはturing completeなので、すべてのプログラミングジョブを処理できます。あなたがかどうかは、Javaで何かを行うにはかどうかは完全にあなた次第です。

0

私たちはJavaで書かれたShynxフレームワークで中程度の成功を収めましたが、本当に面倒な作業は、アルゴリズムと数学の理解にあります。