Visualizzazione dei risultati da 1 a 4 su 4

Discussione: javax.speech maledetto

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    2

    javax.speech maledetto

    Salve a tutti.
    Vi scrivo perchè ho un dannato problema che non riesco a risolvere riguardante java.
    Quello che sto cercando di fare in un mio programma è l'implementare un riconoscitore vocale minimo che si metta in ascolto di un utente e che muti in stringa quello che "capisce". Per tutto questo utilizzo il package "javax.speech".

    Partendo dal fatto che prima di 2 giorni fa non sapevo neanche della sua esistenza e che di java non sono un super-esperto, vi dico quello che ho capito girando per la rete.

    1- Innanzitutto ho bisogno solamente di un Recognizer, ovvero ho bisogno che l'audio sia dato in input dall'utente (quindi escludiamo tutti i sintetizzatori vocali e annessi)

    2- Il codice non dovrebbe essere un problema perchè dovrei aver trovato quello che fa a caso mio (lo metto nel prossimo post).

    3- Ho scaricato gratuitamente il recognizer "sphinx4-1.0beta", per appropriarmi del package "javax.speech" citato inizialmente.

    4- Ho messo la cartella "javax\speech" nella cartella del mio programma, per fare l'import all'interno del codice.

    Quando compilo il programma va tutto bene, quindi dovrebbe importare correttamente tutte le classi dello speech. Il problema è che quando lo faccio girare mi da un nullpointer exception.

    Leggendo qua e là in internet sembra sia un problema abbastanza comune, e la chiave per risolverlo dovrebbe essere nel recognizer che si adotta (sphinx in questo caso), ma non riesco a capire come cavolo fare :/

    Ad esempio in questa vecchia discussione l'utente che ha creato il thread aveva il mio stesso problema, ed usava il mio stesso codice:

    Problema javax.speech

    Al che vi chiedo umilmente aiuto, perchè non ne posso davvero più di girare in internet per ore a cercare non so nemmeno io cosa..
    Se qualcuno di voi ha un qualsiasi aiuto da darmi è il benvenuto...grazie in anticipo!

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    2
    Ed ecco il codice come promesso:

    Codice PHP:
    import javax.speech.*;
    import javax.speech.recognition.*;
    import java.io.FileReader;
    import java.util.Locale;

    public class 
    HelloWorld extends ResultAdapter {
        static 
    Recognizer rec;

        
    // Receives RESULT_ACCEPTED event: print it, clean up, exit
        
    public void resultAccepted(ResultEvent e) {
            
    Result r = (Result)(e.getSource());
            
    ResultToken tokens[] = r.getBestTokens();

            for (
    int i 0tokens.lengthi++)
                
    System.out.print(tokens[i].getSpokenText() + " ");
            
    System.out.println();

            
    // Deallocate the recognizer and exit
            
    try {
                
    rec.deallocate();
            }
            catch(
    Exception a){
            }
            
    System.exit(0);
        }

        public static 
    void main(String args[]) {
            try {
                
                
    // Create a recognizer that supports English.
                
    rec Central.createRecognizer(new EngineModeDesc(Locale.ENGLISH));
                
                
    // Start up the recognizer
                
    rec.allocate();
         
                
    // Load the grammar from a file, and enable it
                
    FileReader reader = new FileReader("test_grammar.txt");
                
    RuleGrammar gram rec.loadJSGF(reader);
                
    gram.setEnabled(true);
        
                
    // Add the listener to get results
                
    rec.addResultListener(new HelloWorld());
        
                
    // Commit the grammar
                
    rec.commitChanges();
        
                
    // Request focus and start listening
                
    rec.requestFocus();
                
    rec.resume();
            } catch (
    Exception e) {
                
    e.printStackTrace();
            }
        }

    Ancora grazie in anticipo, sperando che qualcuno sappia aiutarmi :(

  3. #3

    java speech

    ciao anche io ho il tuo stesso problema xò il mio hello world è così...e mi da l errore di java.lang.NullpointerException alla riga dove c è scritto synth.allocate();

    import javax.speech.*;
    import javax.speech.synthesis.*;
    import java.util.Locale;
    public class HelloWorld {
    public static void main(String args[]) {
    try {
    // Create a synthesizer for English
    Synthesizer synth = Central.createSynthesizer(
    new SynthesizerModeDesc(Locale.ENGLISH));
    // Get it ready to speak
    synth.allocate();
    synth.resume();
    // Speak the "Hello world" string
    synth.speakPlainText("Hello, world!", null);
    // Wait till speaking is done
    synth.waitEngineState(Synthesizer.QUEUE_EMPTY);
    // Clean up
    synth.deallocate();
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Originariamente inviato da darkhalak
    ciao anche io ho il tuo stesso problema xò il mio hello world è così...e mi da l errore di java.lang.NullpointerException alla riga dove c è scritto synth.allocate();
    La discussione è vecchia e lo scenario è diverso: apri una nuova discussione in questi casi, come indicato nel Regolamento, senza risollevare discussioni esistenti.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.