JavaFX阻止sphinx4应用程序

时间:2013-06-21 23:25:56

标签: java javafx sphinx4

当我启动javafx窗口和sphinx应用程序时,我遇到了一些错误,如果我首先运行sphinx然后启动窗口程序不会记录任何命令,只有当我关闭窗口时,如果我启动窗口首先是狮身人面像记录,但通常阻挡窗口。

我的窗口:

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);




}

1 个答案:

答案 0 :(得分:0)

只能在一个应用程序中访问您的麦克风。 Yuor javafx也正在访问麦克风,正如行HelloWorld.RecDeVoz();

所暗示的那样

如果你想在你的应用程序中使用Sphinx4,你很可能必须集成它:build,将sphinx jar链接到app,然后开始识别。

如果您尝试离线识别(来自录制的音频文件),您应该更改sphinx配置以使用文件来源而不是麦克风作为输入。