2013-06-21 2 views
0

Когда я запускаю окно javafx и приложение sphinx, у меня есть некоторые ошибки, если я сначала запускаю sphinx, а затем запустил окно, программа не записывает никаких команд, только если я закрою окно также, если Я запускаю окно сначала как запись сфинкса, как обычно, но блокирует окно.JavaFX блокирует приложение sphinx4

Мое окно:

public class Escolha extends Application{ 
private static final Image FOTOPROXY = new Image(Escolha.class.getResourceAsStream("/foto/proxy.png")); 
private static final Font Corleone = Font.loadFont(Escolha.class.getResourceAsStream("/fontes/corleone.ttf"), 20); 

public static void main(String[] args) { 
    launch(args); 

} 

@Override 
public void start(Stage primaryStage) throws Exception { 

    init(primaryStage); 
    primaryStage.show(); 

} 

public void init(final Stage primaryStage) { 
    //primaryStage.setScene(new Scene(addBorda())); 
    Group root = new Group(); 
    primaryStage.setScene(new Scene(root)); 


    HBox hboxImagem = new HBox(); 
    hboxImagem.setPadding(new Insets(5, 5, 5, 25)); 
    hboxImagem.setSpacing(10); 
    hboxImagem.setStyle("-fx-background-color: #b3ccff"); 

    ImageView imagem = new ImageView(FOTOPROXY);   
    imagem.setFitHeight(200); 
    imagem.setFitWidth(550); 

    hboxImagem.getChildren().add(imagem); 

    HBox hboxTexto = new HBox(); 

    hboxTexto.setPadding(new Insets(15, 5, 15, 15)); 
    hboxTexto.setSpacing(10); 
    hboxTexto.setTranslateY(210); 
    hboxTexto.setStyle("-fx-border-style: solid;" + "-fx-border-width: 4;" + 
      "-fx-border-color: #99b3ff"); 

    HBox hboxBotoes = new HBox(); 
    hboxBotoes.setPadding(new Insets(35, 1, 1, -20)); 
    hboxBotoes.setSpacing(10); 

    Text texto = new Text("Caso possua proxy é necessário configura-lo antes de executar a Olivia,\n" + 
      "você deseja configurar agora?");  
    texto.setFont(Corleone);  


    EventHandler<ActionEvent> vaiSim = new EventHandler<ActionEvent>() { 
     @Override public void handle(ActionEvent event) {  
      Configuracao.configurarProxy(); 

     } 

    }; 

    Button sim = new Button("Sim"); 
    sim.setStyle("-fx-base: #b3ccff"); 
    sim.setOnAction(vaiSim); 


    EventHandler<ActionEvent> vaiNao = new EventHandler<ActionEvent>() { 
     @Override public void handle(ActionEvent event) { 

      HelloWorld.RecDeVoz(); 


     } 

    }; 

    Button nao = new Button("Não"); 
    nao.setStyle("-fx-base: #b3ccff"); 
    nao.setOnAction(vaiNao); 


    hboxBotoes.getChildren().addAll(sim, nao); 

    hboxTexto.getChildren().addAll(texto, hboxBotoes); 

    root.getChildren().addAll(hboxImagem, hboxTexto); 




} 
+0

Какая ОС вы используете? Если это Linux, возможно, что ваш системный звук настроен таким образом. Возможно, вы захотите настроить параллельный доступ к микрофону. –

+0

Нет, я использую окна, но зачем мне настраивать настройки звука? –

ответ

0

Доступ к микрофону ограничивается одним приложением. Yuor javafx также обращается к микрофону, как это подразумевается в строке HelloWorld.RecDeVoz();

Если вы хотите использовать Sphinx4 в своем приложении, вам, скорее всего, придется его интегрировать: build, link sphinx jar to app, а затем запустите признание.

Если вы пытаетесь выполнить автономное распознавание (из записанных аудиофайлов), вы должны изменить конфигурацию sphinx, чтобы использовать источник файла, а не микрофон, в качестве входа.

+0

HelloWorld.RecDeVoz(): Я вызываю класс sphinx, сфинкс уже в моем проекте. –