创建SpeechConfig对象的时候出错?

对接azure的语音服务, 发到服务器上运行就出错了

java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: com.microsoft.cognitiveservices.speech.SpeechConfig.setTempDirectory(Ljava/lang/String;)V
    at io.undertow.websockets.jsr.annotated.BoundMethod.invoke(BoundMethod.java:94)
    at io.undertow.websockets.jsr.annotated.AnnotatedEndpoint$3.run(AnnotatedEndpoint.java:158)
    at io.undertow.websockets.jsr.ServerWebSocketContainer$1.call(ServerWebSocketContainer.java:170)
    at io.undertow.websockets.jsr.ServerWebSocketContainer$1.call(ServerWebSocketContainer.java:167)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.undertow.websockets.jsr.ServerWebSocketContainer.invokeEndpointMethod(ServerWebSocketContainer.java:610)
    at io.undertow.websockets.jsr.ServerWebSocketContainer.invokeEndpointMethod(ServerWebSocketContainer.java:600)
    at io.undertow.websockets.jsr.annotated.AnnotatedEndpoint.invokeMethod(AnnotatedEndpoint.java:153)
    at io.undertow.websockets.jsr.annotated.AnnotatedEndpoint.onOpen(AnnotatedEndpoint.java:102)
    at io.undertow.websockets.jsr.EndpointSessionHandler.onConnect(EndpointSessionHandler.java:129)
    at io.undertow.websockets.jsr.JsrWebSocketFilter$1.handleUpgrade(JsrWebSocketFilter.java:165)
    at io.undertow.server.protocol.http.HttpReadListener.exchangeComplete(HttpReadListener.java:390)
    at io.undertow.server.protocol.http.HttpServerConnection.exchangeComplete(HttpServerConnection.java:244)
    at io.undertow.server.HttpServerExchange.invokeExchangeCompleteListeners(HttpServerExchange.java:1353)
    at io.undertow.server.HttpServerExchange.terminateResponse(HttpServerExchange.java:1637)
    at io.undertow.server.Connectors.terminateResponse(Connectors.java:176)
    at io.undertow.server.protocol.http.HttpTransferEncoding$3.handleEvent(HttpTransferEncoding.java:199)
    at io.undertow.server.protocol.http.HttpTransferEncoding$3.handleEvent(HttpTransferEncoding.java:197)
    at io.undertow.conduits.HeadStreamSinkConduit.exitFlush(HeadStreamSinkConduit.java:192)
    at io.undertow.conduits.HeadStreamSinkConduit.flush(HeadStreamSinkConduit.java:133)
    at org.xnio.conduits.ConduitStreamSinkChannel.flush(ConduitStreamSinkChannel.java:162)
    at io.undertow.channels.DetachableStreamSinkChannel.flush(DetachableStreamSinkChannel.java:119)
    at org.xnio.channels.Channels.flushBlocking(Channels.java:63)
    at io.undertow.servlet.spec.ServletOutputStreamImpl.close(ServletOutputStreamImpl.java:619)
    at io.undertow.servlet.spec.HttpServletResponseImpl.closeStreamAndWriter(HttpServletResponseImpl.java:497)
    at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:586)
    at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:339)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)
    at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
    at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:260)
    at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)
    at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
    at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)
    at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1423)
    at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1280)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.UnsatisfiedLinkError: com.microsoft.cognitiveservices.speech.SpeechConfig.setTempDirectory(Ljava/lang/String;)V
    at com.microsoft.cognitiveservices.speech.SpeechConfig.setTempDirectory(Native Method)
    at com.microsoft.cognitiveservices.speech.SpeechConfig.<clinit>(Unknown Source)
    at com.jyw.easyway.pool.SynthesizerPoolFactory.create(SynthesizerPoolFactory.java:34)
    at com.jyw.easyway.pool.SynthesizerPoolFactory.create(SynthesizerPoolFactory.java:17)
    at org.apache.commons.pool2.BasePooledObjectFactory.makeObject(BasePooledObjectFactory.java:58)
    at com.jyw.easyway.pool.SynthesizerPoolFactory.makeObject(SynthesizerPoolFactory.java:29)
    at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:918)
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:431)
    at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:356)
    at com.jyw.easyway.pool.SynthesizerPool.borrowObject(SynthesizerPool.java:24)
    at com.jyw.easyway.ws.WebSocketSever.onOpen(WebSocketSever.java:55)
    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:498)
    at io.undertow.websockets.jsr.annotated.BoundMethod.invoke(BoundMethod.java:87)
    ... 42 more


12

【以下回答由 GPT 生成】

问题:

遇到的问题是什么?

在创建SpeechConfig对象时,遇到了java.lang.UnsatisfiedLinkError错误。

你运行的环境是什么?

目前还没有提供具体的环境信息。

你对Azure语音服务的调用方式是怎样的?

目前还没有提供对Azure语音服务的调用方式信息。

是否有其他提示或错误信息?

错误信息显示在创建SpeechConfig对象时出现了java.lang.UnsatisfiedLinkError错误。

解决方案:

由于目前提供的信息比较缺乏,我无法给出具体的解决方案。但是,对于出现java.lang.UnsatisfiedLinkError错误的问题,可能的原因包括:

  1. 缺少所需的库文件:请确保在运行代码之前,已经正确安装并配置了所需的依赖库文件。
  2. 匹配错误的库文件版本:请确保使用的库文件版本与代码兼容,并且正确配置了依赖关系。
  3. 缺少环境变量:请确保所有必需的环境变量都已正确设置,并且可以被代码访问到。

如果你提供更详细的环境信息和代码示例,我将能够更好地提供解决方案。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^