Программа С#, использующая файл sphinx4 .jar, преобразованный в .dll, не работает

Когда я пытаюсь создать экземпляр LiveSpeechRecognizer, он выдает ошибку, которая дает следующую трассировку стека:

Exception thrown: 'edu.cmu.sphinx.util.props.PropertyException' in VoiceRecognition.dll
   at edu.cmu.sphinx.frontend.AutoCepstrum.newProperties(PropertySheet ps)
   at edu.cmu.sphinx.util.props.PropertySheet.getOwner()
   at edu.cmu.sphinx.util.props.ConfigurationManager.lookup(String instanceName)
   at edu.cmu.sphinx.util.props.PropertySheet.getComponentList(String name, Class tclass)
   at edu.cmu.sphinx.frontend.FrontEnd.newProperties(PropertySheet ps)
   at edu.cmu.sphinx.util.props.PropertySheet.getOwner()
   at edu.cmu.sphinx.util.props.PropertySheet.getComponent(String name)
   at edu.cmu.sphinx.decoder.scorer.SimpleAcousticScorer.newProperties(PropertySheet ps)
   at edu.cmu.sphinx.util.props.PropertySheet.getOwner()
   at edu.cmu.sphinx.util.props.PropertySheet.getComponent(String name)
   at edu.cmu.sphinx.decoder.search.WordPruningBreadthFirstSearchManager.newProperties(PropertySheet ps)
   at edu.cmu.sphinx.decoder.search.WordPruningBreadthFirstLookaheadSearchManager.newProperties(PropertySheet ps)
   at edu.cmu.sphinx.util.props.PropertySheet.getOwner()
   at edu.cmu.sphinx.util.props.PropertySheet.getComponent(String name)
   at edu.cmu.sphinx.decoder.AbstractDecoder.newProperties(PropertySheet ps)
   at edu.cmu.sphinx.decoder.Decoder.newProperties(PropertySheet ps)
   at edu.cmu.sphinx.util.props.PropertySheet.getOwner()
   at edu.cmu.sphinx.util.props.PropertySheet.getComponent(String name)
   at edu.cmu.sphinx.recognizer.Recognizer.newProperties(PropertySheet ps)
   at edu.cmu.sphinx.util.props.PropertySheet.getOwner()
   at edu.cmu.sphinx.util.props.ConfigurationManager.lookup(String instanceName)
   at edu.cmu.sphinx.api.Context..ctor(String path, Configuration config)
   at edu.cmu.sphinx.api.Context..ctor(Configuration config)
   at edu.cmu.sphinx.api.AbstractSpeechRecognizer..ctor(Configuration configuration)
   at edu.cmu.sphinx.api.LiveSpeechRecognizer..ctor(Configuration configuration)
   at TestingStandaloneCSVoiceRecognition.Program..ctor()

Я пытался просмотреть документацию и код, чтобы выяснить, что вызывает это, но пока мне не везло. Вероятно, я должен отметить, что я использовал IKVM для преобразования .jars в .dll, который я импортирован в проект Visual Studio C #. LiveSpeechRecognizer даже не заканчивает создание экземпляра, прежде чем выдать ошибку. Я убедился, что импортировал все зависимости, так что это не проблема. Программа Java работает нормально.


person Astrolamb    schedule 27.09.2018    source источник


Ответы (1)


Плохая идея вызывать код Java из C#, вместо этого вы можете просто использовать dll pocketsphinx с API C#, см.

https://github.com/cmusphinx/pocketsphinx/tree/master/swig/csharp

person Nikolay Shmyrev    schedule 22.10.2018
comment
Я работал над попыткой сделать это, но я изо всех сил пытаюсь заставить swig работать правильно. - person Astrolamb; 23.10.2018
comment
В чем именно проблема с swig? - person Nikolay Shmyrev; 23.10.2018
comment
Я просто еще не знаю, как его использовать, я думаю. Я использую окна, и .exe, предоставленный для использования с окнами, ничего не делает. - person Astrolamb; 24.10.2018