0 / 0 / 1
Регистрация: 27.04.2011
Сообщений: 17
|
|
1 | |
Использование Sphinx4 jar в .NET через ikvm.net или веб сервисы?27.04.2011, 01:30. Показов 2209. Ответов 4
Метки нет Все метки)
(
Здравствуйте,
Пытвюсь заставить распознаватель речи Sphinx 4 работать в .NET. Пробовал IKVM.NET и веб сервисы. Не одно решение неработает корректно. Вот темы где я пытаюсь разобраться с кодом, багами и ексепшенами (на английском). веб сервисы ikvm.net Буду очень благодарен за помощь или за предлощение другого решения относительно работы Sphinx .jar в .NET.
0
|
|
27.04.2011, 01:30 | |
Ответы с готовыми решениями:
4
Как в .Net core выключать или включать сервисы в appSettings? Открыть jar файл (minecraft.jar) посредством VB.NET Создаие веб-узла ASP.NET и использование в нем UpdatePanel Использование VB или VB .NET совместно с IIS |
_
2363 / 1239 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
|
|
27.04.2011, 14:17 | 2 |
То есть, если я правильно понял, ты сначала создал в netbeans веб-службу на java, а потом проект на шарпе, который подключался к этой вебслужбе и передавал запросы, а эта вебслужба передавала в приложение на шарпе результат распознавания?
Не лучше ли сразу все на java сделать?
0
|
0 / 0 / 1
Регистрация: 27.04.2011
Сообщений: 17
|
|
27.04.2011, 15:22 [ТС] | 3 |
Да, сначала так, и простой стринг типа "хело фром джава" оно передавало в C#. Потом сделал клиент на джава в нет бинс (на всяк случай). Сейчас работаю только в нет бинс, но ексепшены лезут, простой пример сфинкса работает в простом консольном приложении нормально, а вот результат (распознаных слов) через веб сервис нормально не передается.
Я думаю может это изза того что разпознавание идет на сервере (соотвественно и поиск ресурса- микрофона), +почему-то веб сервис какбудто хчет кудато файл ресурса копировать (в C:\Users\UserName\GlassFish_Server\glassfish\domai ns\domain0\lib\classes\), хоть он должен быть с исходниками (вместе с .class файлами или на каталог выше). А есть вообще другой метод использования джарника в нет? Можно ли как-то устанить ексепшены при работе с ikvm.net, или это проблемы ikvm.net после конвертирования? PS: еси кто может помочь - могу дать исходники. А вот ексепшин моего последнего билда с темы "веб сервисы": Код
Compiling 1 source file to C:\Users\Sergii\Documents\NetBeansProjects\ClientWSApplication\build\classes compile-single: run-single: Start speaking. Press Ctrl-C to quit. Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Allocation of search manager resources failed at com.sun.xml.internal.ws.fault.SOAP11Fault.getProtocolException(SOAP11Fault.java:178) at com.sun.xml.internal.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:119) at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:108) at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:78) at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:107) at $Proxy29.configSphinx(Unknown Source) at clientwsapplication.ClientWSApplication.configSphinx(ClientWSApplication.java:58) at clientwsapplication.ClientWSApplication.main(ClientWSApplication.java:21) Caused by: java.lang.RuntimeException: Allocation of search manager resources failed at edu.cmu.sphinx.decoder.search.SimpleBreadthFirstSearchManager.allocate(SimpleBreadthFirstSearchManager.java:650) at edu.cmu.sphinx.decoder.AbstractDecoder.allocate(AbstractDecoder.java:87) at edu.cmu.sphinx.recognizer.Recognizer.allocate(Recognizer.java:168) at wsSphinx.NewWebService.configSphinx(NewWebService.java:28) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.glassfish.webservices.InstanceResolverImpl$1.invoke(InstanceResolverImpl.java:143) at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:150) at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:261) at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100) at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641) at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600) at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482) at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:116) at org.glassfish.webservices.MonitoringPipe.process(MonitoringPipe.java:142) at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:119) at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641) at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600) at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482) at com.sun.xml.ws.api.pipe.helper.AbstractTubeImpl.process(AbstractTubeImpl.java:116) at com.sun.enterprise.security.webservices.CommonServerSecurityPipe.processRequest(CommonServerSecurityPipe.java:212) at com.sun.enterprise.security.webservices.CommonServerSecurityPipe.process(CommonServerSecurityPipe.java:144) at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:119) at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641) at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600) at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585) at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482) at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314) at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608) at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259) at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162) at org.glassfish.webservices.JAXWSServlet.doPost(JAXWSServlet.java:145) at javax.servlet.http.HttpServlet.service(HttpServlet.java:755) at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59) at com.sun.grizzly.ContextTask.run(ContextTask.java:71) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513) at java.lang.Thread.run(Thread.java:662) Caused by: java.io.FileNotFoundException: C:\Users\UserName\GlassFish_Server\glassfish\domains\domain0\lib\classes\hello.gram (The system cannot find the file specified) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:120) at java.io.FileInputStream.<init>(FileInputStream.java:79) at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70) at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161) at java.net.URL.openStream(URL.java:1010) at edu.cmu.sphinx.jsgf.parser.JSGFParser.newGrammarFromJSGF(JSGFParser.java:232) at edu.cmu.sphinx.jsgf.JSGFGrammar.loadNamedGrammar(JSGFGrammar.java:697) at edu.cmu.sphinx.jsgf.JSGFGrammar.commitChanges(JSGFGrammar.java:613) at edu.cmu.sphinx.jsgf.JSGFGrammar.createGrammar(JSGFGrammar.java:300) at edu.cmu.sphinx.linguist.language.grammar.Grammar.allocate(Grammar.java:116) at edu.cmu.sphinx.linguist.flat.FlatLinguist.allocate(FlatLinguist.java:300) at edu.cmu.sphinx.decoder.search.SimpleBreadthFirstSearchManager.allocate(SimpleBreadthFirstSearchManager.java:646) ... 62 more Java Result: 1 BUILD SUCCESSFUL (total time: 13 seconds)
0
|
_
2363 / 1239 / 78
Регистрация: 28.10.2009
Сообщений: 4,331
|
|
27.04.2011, 15:45 | 4 |
Особо помочь не могу - с вебслужбами на джаве не работал, не знаю насколько они адекватно связываются с ресурсами net-приложения. Да и так особо даже не представляю как jar-файл связать с net-приложением
К тому же не совсем понятно, как ты работаешь с микрофоном - допустим вебслужба на одном компьютере, net-приложение на другом - тогда скорее всего вебслужба будет активизировать микрофон на том компе, на котором она находится, а не на клиенте. Как вариант я тебе советую попробовать те демо-приложения, где там файл распознается, а всю работу организовать примерно так - net приложение записывает звук в файл и передает его на вебслужбу, а та уже отвечает. Но все равно, не совсем понятно, а зачем тут net - если ты неплохо с джавой знаком и опять же может всю структуру приложения построить на джаве, особенно если учесть, что сфинкс изначально закошен под этот язык. PS. там еще есть такая штука как pocetsphinx - на с - может с помощью нее попытаться создать библиотеку, которую затем подключать к net-приложению
0
|
0 / 0 / 1
Регистрация: 27.04.2011
Сообщений: 17
|
|
27.04.2011, 16:00 [ТС] | 5 |
Мое задание - заставить Sphinx4 работать в .net, так как весь главный проект написан на си++ (нет). Вот я и ищу способы это сделать. Теоретически, IKVM.NET - это идеальный вариант, так как он конвертирует .jar файлы в .dll, но когда использую сконвертированный сфинкс4, вижуал студио дает ексепшены, а код тот же самый как и в простом неловорд консольном джава проекте. Вот я и пробую веб сервисы теперь ...
0
|
27.04.2011, 16:00 | |
Помогаю со студенческими работами здесь
5
Что выбрать в Xamarin.Android ADO.NET или SQLite.NET? VISUAL C++.NET или VB.NET. На каких программистов спрос больше? Подскажите что лучше выбрать VB.NET или C.NET (C#) ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |