2016-03-22 13 views
1

私はガールフレンドがtwitch.tvのために話すときに静止画像を得るためにsphinx4を使って頭を包み込みます。この一般的なミッテスの男のようなものhttps://www.youtube.com/watch?v=L2oUE-C2g6Y話す猫は私がエミュレートしようとしているものです。誰かがJavaで話しているときに静止画を取得しようとしています

画像を方程式に導入する必要があるときに失われてしまいます。私はこれを例として使ってきました。

`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"); 
     } 
    } 
    } 
}` 

ご協力いただければ幸いです。

答えて

0

このタスクでは、Sphinx4は適切なツールではありません。リアルタイムで個々の音ではなく、音声を認識します。簡単な形式で振幅検出器をサウンド認識器が必要になります。全体的なアプローチは次のようになります。

  1. 小さな音声を録音します。たとえば100msです。
  2. 音声の振幅を計算する(サンプルの平方和の単純な和)
  3. 適切な画像を表示します(大きな塊の場合は広く口が開いているか、無音で閉じています)。

より高度なフォームでは、それに応じて母音を認識して顔の画像を調整することができます。母音はGMM分類子で認識できます。複数の感情を記録してリアルタイムで表示することもできます。認識が非常に短い解析時間を必要とし、そのようなシステムの設計を複雑にするため、リアルタイムでは問題が発生します。これは数か月のプロジェクトになります。詳細な説明hereがあります。

関連する問題