web-dev-qa-db-ja.com

CまたはJavaまたはPHPでの音声認識?

CまたはJavaまたはPHP音声認識アプリケーションを実行するためのよく知られている確立されたフレームワークはありますか?マイクオーディオ入力と英語の単語を認識します。疑似などコード:

Speech s = new Speech();
s.input(micStream);
result = s.recognise("Hello");
if (result) { printf("Matched hello"); } else { printf("No match found"); }

フォローアップ:

これをダウンロードしてください: sphinx4/1.0%20beta6 /

enter image description here

  1. ライブラリを追加する

  2. コードをコピーして貼り付けます:

    a)コードからロードできるどこかに置かれたxmlファイル:

    https://Gist.github.com/2551321

    b)これを使用:

    package edu.cmu.sphinx.demo.hellowrld;
    import edu.cmu.sphinx.frontend.util.Microphone;
    import edu.cmu.sphinx.recognizer.Recognizer;
    import edu.cmu.sphinx.result.Result;
    import edu.cmu.sphinx.util.props.ConfigurationManager;
    import Java.io.IOException;
    import Java.util.logging.Level;
    import Java.util.logging.Logger;
    import models.Tts;
    
    public class Speech {
    
      public static void main(String[] args) {
        ConfigurationManager cm;
    
        if (args.length > 0) {
            cm = new ConfigurationManager(args[0]);
        } else {
            ///tmp/helloworld.config.xml
            cm = new ConfigurationManager(Speech.class.getResource("speech.config.xml"));
    
        }
        Recognizer recognizer = (Recognizer) cm.lookup("recognizer");
        recognizer.allocate();
    
        Microphone microphone = (Microphone) cm.lookup("microphone");
        if (!microphone.startRecording()) {
            System.out.println("Cannot start microphone.");
            recognizer.deallocate();
            System.exit(1);
        }
    
        System.out.println("Say: (Hello | call) ( Naam | Baam | Caam | Some )");
    
        while (true) {
            System.out.println("Start speaking. Press Ctrl-C to quit.\n");
    
            Result result = recognizer.recognize();
    
            if (result != null) {
                String resultText = result.getBestFinalResultNoFiller();
                System.out.println("You said: " + resultText + '\n');
    
                    Tts ts = new Tts();
                    try {
                        ts.load();
                        ts.say("Did you said: " + resultText);
                    } catch (IOException ex) {
    
                    } 
            } else {
                System.out.println("I can't hear what you said.\n");
            }
        }
      }
    }
    
24
user285594

これをチェックしてください: http://cmusphinx.sourceforge.net/

9
Raoul

うーん。興味深いトピック。何年も前に、Amigaでいくつかの(かなり基本的な)音声認識ソフトウェアを使って遊んだり、かなりの時間を費やしたりしましたが、私は昔、この種のことについては何もしていません。楽しいですが、疑似コードの例のように簡単にはいきません。

これにはサードパーティのAPIライブラリが必要になります。 (自分で書くのは可能だと思いますが、それが実現可能なアイデアであるとは思えません)

利用可能なAPIライブラリは多数あります。 Googleはいくつかの結果を出しました-これが私が得た結果の1つです: http://en.wikipedia.org/wiki/Microsoft_Speech_API -しかし、おそらく試してみる必要がありますあなたがあなたのニーズを満たすものを得るまで、いくつか。

おそらく、それは商用APIになる可能性があります-つまり、あなたはそれにお金を払わなければならないでしょう。いくつかのオープンソースのものがあるかもしれませんが(大まかなGoogleingには何も表示されませんでしたが、存在していると思います)、それらは使用するのがはるかに難しいようです。

満足のいくライブラリを入手し、それとやり取りするためのコードを記述したら、音声認識は非常に扱いにくいため、作業は完了しません。

さまざまなアクセントが問題の始まりにすぎません。話者の性別と話す速度も、発話された内容を認識する能力に影響します。人間はコンピュータよりもfar音声認識が得意ですが、不慣れなアクセントに苦労しています。

音声認識ソフトウェアは通常、特定の単語や語句を認識するようにトレーニングする必要があります。あなたの例のように、文字列と照合しようとはしません。認識するように訓練されたフレーズの特定の1つを見つけるように要求します。

要するに、それは非常に大きなフィールドであり、あなたは明らかにつま先を浸すだけで​​す。うまくいきますようにと願っていますが、近い将来、多くの研究期間が必要です。

ここにあなたを助けるかもしれない他のいくつかのリンクがあります:

2
Spudley

Googleの音声認識エンジンを中心に構築されているCライブラリlibsprecを試してください。

http://github.com/H2CO3/libsprec

2
user529758

数か月間これらの質問を見てから、ほとんどの開発者の選択肢が次のように分類されるのを見てきました。

Windowsユーザー-.NetまたはMicrosoft.SpeechのSystem.Speech機能を使用して、Microsoftが提供する無料の認識機能をインストールします。 Windows 7には完全な音声エンジンが含まれています。その他は無料でダウンロードできます。 SAPIと呼ばれる同じエンジンに対するC++ APIがあります。 http://msdn.Microsoft.com/en-us/magazine/cc163663.aspx を参照してください。または http://msdn.Microsoft.com/en-us/library/ms723627(v = vs.85).aspx 。 Windows用のMicrosoftエンジンの背景 System.Speech.RecognitionとMicrosoft.Speech.Recognitionの違いは何ですか?

Linuxの人々-Sphinxは良い支持者のようです。 http://cmusphinx.sourceforge.net/ および http://cmusphinx.sourceforge.net/wiki/ を参照してください

商用製品-Nuance、Loquendo、AT&T、その他

オンラインサービス-Nuance、Yapme、その他

もちろん、これも役立つかもしれません- http://en.wikipedia.org/wiki/List_of_speech_recognition_software

JavaスピーチAPIがあります。JavaスピーチAPI http://Java.Sun.com/のjavax.speech.recognitionを参照してください。 products/Java-media/speech/forDevelopers/jsapi-guide/Recognition.html 。このAPIをサポートする音声エンジンを見つける必要があると思います。Sphinxが完全にサポートしているとは思いません- http://cmusphinx.sourceforge.net/sphinx4/doc/Sphinx4-faq.html#support_jsapi

他にもたくさんありますSO quesitons: Linuxのテキスト読み上げおよび音声認識ツールが必要です

2
Michael Levy

HTKは、Cで最も人気のあるフレームワークの1つです。

http://htk.eng.cam.ac.uk/

簡単には使えませんが、間違いなく強力です。

1
Dariusz

J.A.R.V.I.S. Java Speech APIは非常に堅牢で機能的で、Sphinxに代わる優れたミニマリストです。

https://github.com/The-Shadow/Java-speech-api

0
Skylion