【发布时间】:2015-07-26 22:23:36
【问题描述】:
我一直在尝试让 Sphinx 使用 .gram 文件检测其字典中的所有单词(大约 130k),但它处理了大约 30 秒,然后我收到此错误:
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.HashMap.newNode(HashMap.java:1734)
at java.util.HashMap.putVal(HashMap.java:630)
at java.util.HashMap.put(HashMap.java:611)
at java.util.HashSet.add(HashSet.java:219)
at java.util.AbstractCollection.addAll(AbstractCollection.java:344)
at edu.cmu.sphinx.linguist.flat.FlatLinguist$GState.addLeftContext(FlatLinguist.java:754)
at edu.cmu.sphinx.linguist.flat.FlatLinguist$GState.pushLeftContexts(FlatLinguist.java:738)
at edu.cmu.sphinx.linguist.flat.FlatLinguist$GState.pushLeftContexts(FlatLinguist.java:742)
at edu.cmu.sphinx.linguist.flat.FlatLinguist$GState.pushLeftContexts(FlatLinguist.java:742)
at edu.cmu.sphinx.linguist.flat.FlatLinguist$GState.pushLeftContexts(FlatLinguist.java:718)
at edu.cmu.sphinx.linguist.flat.FlatLinguist$GState.collectContexts(FlatLinguist.java:846)
at edu.cmu.sphinx.linguist.flat.FlatLinguist.compileGrammar(FlatLinguist.java:415)
at edu.cmu.sphinx.linguist.flat.FlatLinguist.allocate(FlatLinguist.java:326)
at edu.cmu.sphinx.decoder.search.SimpleBreadthFirstSearchManager.allocate(SimpleBreadthFirstSearchManager.java:602)
at edu.cmu.sphinx.decoder.Decoder.allocate(Decoder.java:109)
at edu.cmu.sphinx.recognizer.Recognizer.allocate(Recognizer.java:182)
at voce.SpeechRecognizer.<init>(SpeechRecognizer.java:94)
at voce.SpeechInterface.init(SpeechInterface.java:79)
at recognitionTest.main(recognitionTest.java:9)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
是否有不同的或更节省内存的方法来完成这项任务?
我正在使用一个名为 Voce 的利用 Sphinx 的库,以便更简单地进行识别和合成,如果这很重要的话。
【问题讨论】:
-
“检测其字典中的所有单词”——这是什么意思?
-
@Alexander Solovets Sphinx 有一个字典文件,列出了所有支持的单词及其发音。我将这些单词格式化为 .gram 文件并尝试在我的程序中使用它。
标签: speech-recognition cmusphinx