2016-02-22 2 views
3

Я пытаюсь использовать CMUSphinx, но мне тяжело. Я включил core и data банки в проект в Eclipse, который я скачал с hereОтключить консольный беспорядок в CMUSphinx4

Я пытался сделать Живое распознавание речи, как упоминалось in the tutorial, но когда я пытаюсь запустить его, консоль заполнена каким-то ошибка, как The dictionary is missing a phonetic transcription for the word '....' и многие.

Код:

import edu.cmu.sphinx.api.Configuration; 
import edu.cmu.sphinx.api.LiveSpeechRecognizer; 
import edu.cmu.sphinx.api.SpeechResult; 

public class Hello {  

    public static void main(String[] args) throws Exception { 
    Configuration configuration = new Configuration(); 


    configuration.setAcousticModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us"); 

    configuration.setDictionaryPath("resource:/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict"); 

    configuration.setLanguageModelPath("resource:/edu/cmu/sphinx/models/en-us/en-us.lm.bin"); 
    LiveSpeechRecognizer recognizer = new LiveSpeechRecognizer(configuration); 

    while(true) 
    { 
    System.out.println("Start speaking..."); 
    recognizer.startRecognition(true); 
    SpeechResult result = recognizer.getResult(); 
    System.out.println("result: "+result.getHypothesis()); 

    recognizer.stopRecognition(); 
    } 

} 
} 

консоль:

23:15:07.552 INFO unitManager   CI Unit: *+NSN+ 
23:15:07.556 INFO unitManager   CI Unit: *+SPN+ 
23:15:07.556 INFO unitManager   CI Unit: AA 
23:15:07.556 INFO unitManager   CI Unit: AE 
23:15:07.556 INFO unitManager   CI Unit: AH 
23:15:07.556 INFO unitManager   CI Unit: AO 
... 
...  /* Similar to above messages */ 
... 
... 
23:15:08.447 INFO autoCepstrum   Cepstrum component auto-configured as follows: autoCepstrum {MelFrequencyFilterBank, Denoise, DiscreteCosineTransform2, Lifter} 
2016-02-22 23:15:08.649 java[68475:2340128] 23:15:08.649 WARNING: 140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h. 
Start speaking... /* My Output */ 
23:15:08.653 INFO dictionary   Loading dictionary from: jar:file:/Users/sriharish/Java/sphinx4-data-5prealpha-20151218.160017-5.jar!/edu/cmu/sphinx/models/en-us/cmudict-en-us.dict 
23:15:08.786 INFO dictionary   Loading filler dictionary from: jar:file:/Users/sriharish/Java/sphinx4-data-5prealpha-20151218.160017-5.jar!/edu/cmu/sphinx/models/en-us/en-us/noisedict 
23:15:08.786 INFO acousticModelLoader Loading tied-state acoustic model from: jar:file:/Users/sriharish/Java/sphinx4-data-5prealpha-20151218.160017-5.jar!/edu/cmu/sphinx/models/en-us/en-us 
23:15:08.787 INFO acousticModelLoader Pool means Entries: 16128 
23:15:08.787 INFO acousticModelLoader Pool variances Entries: 16128 
23:15:08.787 INFO acousticModelLoader Pool transition_matrices Entries: 42 
23:15:08.787 INFO acousticModelLoader Pool senones Entries: 5126 
23:15:08.787 INFO acousticModelLoader Gaussian weights: mixture_weights. Entries: 15378 
23:15:08.787 INFO acousticModelLoader Pool senones Entries: 5126 
23:15:08.787 INFO acousticModelLoader Context Independent Unit Entries: 42 
23:15:08.788 INFO acousticModelLoader HMM Manager: 137095 hmms 
23:15:08.788 INFO acousticModel  CompositeSenoneSequences: 0 
23:15:08.789 INFO trieNgramModel  Loading n-gram language model from: jar:file:/Users/sriharish/Java/sphinx4-data-5prealpha-20151218.160017-5.jar!/edu/cmu/sphinx/models/en-us/en-us.lm.bin 
23:15:09.821 INFO dictionary   The dictionary is missing a phonetic transcription for the word '3-d' 
23:15:09.821 WARNING trieNgramModel The dictionary is missing a phonetic transcription for the word '3-d' 
23:15:09.830 INFO dictionary   The dictionary is missing a phonetic transcription for the word 'adjustors' 
23:15:09.830 WARNING trieNgramModel The dictionary is missing a phonetic transcription for the word 'adjustors' 
... 
... /* Similar to above messages */ 
... 

23:15:11.231 INFO lexTreeLinguist  Max CI Units 43 
23:15:11.232 INFO lexTreeLinguist  Unit table size 79507 
23:15:11.234 INFO speedTracker   # -----------------------------   Timers---------------------------------------- 
23:15:11.235 INFO speedTracker   # Name    Count CurTime MinTime MaxTime AvgTime TotTime 
23:15:11.237 INFO speedTracker   Compile    1  1.1360s 1.1360s 1.1360s 1.1360s 1.1360s 
23:15:11.238 INFO speedTracker   Load Dictionary  1  0.1330s 0.1330s 0.1330s 0.1330s 0.1330s 
23:15:11.238 INFO speedTracker   Load AM    1  2.0880s 2.0880s 2.0880s 2.0880s 2.0880s 
23:15:11.238 INFO speedTracker   Load LM    1  1.3080s 1.3080s 1.3080s 1.3080s 1.3080s 
23:15:16.674 INFO speedTracker   This Time Audio: 0.37s Proc: 4.12s Speed: 11.14 X real time 
23:15:16.676 INFO speedTracker   Total Time Audio: 0.37s Proc: 4.12s 11.14 X real time 
23:15:16.676 INFO memoryTracker   Mem Total: 738.00 Mb Free: 378.28 Mb 
23:15:16.676 INFO memoryTracker   Used: This: 359.72 Mb Avg: 359.72 Mb Max: 359.72 Mb 
23:15:16.676 INFO trieNgramModel  LM Cache Size: 870 Hits: 153862 Misses: 870 
result: none /* My Output */ 

Я скачал рекомендованные банки и включил его в project.So, что случилось с ним? Не удалось ли предоставить словарь? Могу ли я добавить отсутствующий phonetic transcription? Если да, укажите ссылку, пожалуйста. И, наконец, как я могу отключить все предупреждения консоли и т. Д., И только вывод, который я предоставляю.

ответ

6

У меня такая же проблема, когда единственными классами, которые я использую, являются StreamSpeechRecognizer и Configuration. После просмотра источника sphinx для ConfigurationManagerUtils мне удалось получить следующий код в моих собственных классах, чтобы отключить ведение журнала консоли из пакетов edu.cmu.sphinx. Поместите этот код перед созданием распознавателя.

Logger cmRootLogger = Logger.getLogger("default.config"); 
    cmRootLogger.setLevel(java.util.logging.Level.OFF); 
    String conFile = System.getProperty("java.util.logging.config.file"); 
    if (conFile == null) { 
     System.setProperty("java.util.logging.config.file", "ignoreAllSphinx4LoggingOutput"); 
    } 

Едва элегантный, но это работает для меня, если кто-то имеет более чистый подход для отключения ведения журнала в выполнении через сфинкс конфигурации/контекст классы.

Как и в случае с любыми пакетами сторонних поставщиков, которые необходимо использовать в моем собственном проекте, у меня есть веская причина для этого непосредственно в коде, потому что 1/я не хочу раскрывать какие-либо протоколы третьей стороны и 2/t желает отправить настроенные файлы конфигурации ведения журнала для стороннего кода.

Смежные вопросы