2014-09-20 16 views
11

Prima di provare a utilizzare PocketSphinx per Android, ho utilizzato l'API di riconoscimento vocale di Google. Non ho bisogno di impostare un nome di ricerca o un file di dizionario. Ha appena riconosciuto ogni parola che è stata detta.CMUSphinx PocketSphinx - Riconoscere tutti (o una grande quantità) di parole

Ora, in PocketSphinx, ho bisogno di farlo. Ma posso solo trovare come impostare il riconoscimento per una parola, o per impostare il dizionario (quelli disponibili nel progetto demo hanno solo poche parole) che il riconoscitore pensa che queste siano le uniche parole esistenti, il che significa che se qualcuno dice qualcosa di simile, Il riconoscitore pensa che sia la parola elencata nel dizionario.

Voglio solo chiedere, Come posso impostare alcuni nomi di ricerca, O come posso impostarlo per riconoscere tutte le parole disponibili (o anche una grande quantità di esse)? Forse qualcuno ha un file dizionario con un gran numero di parole?

+0

Anche io ho bisogno dello stesso. Se trovi una tale lista di parole? – SandeepAggarwal

risposta

16

Prima di provare a utilizzare PocketSphinx per Android, ho utilizzato l'API di riconoscimento vocale di Google. Non ho bisogno di impostare un nome di ricerca o un file di dizionario. Ha appena riconosciuto ogni parola che è stata detta.

Google API riconosce anche un insieme ampio ma limitato di parole. Per lungo tempo non è riuscito a riconoscere "Spotify". Il riconoscitore vocale di Google utilizza circa 50k parole come descritto nel loro publication.

Voglio solo chiedere, Come posso impostare alcuni nomi di ricerca, O come posso impostarlo per riconoscere tutte le parole disponibili (o anche una grande quantità di esse)? Forse qualcuno ha un file dizionario con un gran numero di parole?

La demo include un ampio riconoscimento vocale del vocabolario con un modello linguistico (parte prevista). Esistono modelli di lingua più grandi per la lingua inglese disponibili per il download, ad esempio En-US generic language model.

Il codice semplice per eseguire il riconoscimento è così:

recognizer = defaultSetup() 
    .setAcousticModel(new File(assetsDir, "en-us-ptm")) 
    .setDictionary(new File(assetsDir, "cmudict-en-us.dict")) 
    .getRecognizer(); 
    recognizer.addListener(this); 

    // Create keyword-activation search. 
    recognizer.addNgramSearch(NGRAM_SEARCH, new File(assetsDir, "en-us.lm.bin");); 

    // Start the search 
    recognizer.startListening(NGRAM_SEARCH); 

Tuttavia, essi non sono facili da montare nel dispositivo e decodificare in tempo reale. Se si desidera decodificare la voce in tempo reale con un vocabolario ampio, è necessario eseguire lo streaming audio su un server. O è necessario limitare il vocabolario e la lingua a qualche piccolo sottoinsieme di inglese generico. È possibile ottenere ulteriori informazioni sul riconoscimento vocale in CMUSphinx in tutorial.

+0

il collegamento all'esempio modello di linguaggio generico En-US è rotto. :-( –

+0

Scusa, funziona per me. Puoi anche esplorare http://sourceforge.net/projects/cmusphinx/files/Acoustic%20and%20Language%20Models/US% 20English/ –

+0

@NikolayShmyrev ti dispiacerebbe aiutarmi con questo https://sourceforge.net/p/cmusphinx/discussion/help/thread/5fd09180/ – blackHawk