IBM Watson语音到文本仅返回Java SDK中的第一个单词
我正在使用IBMWatson语音到文本JavaSDK,当我上传.wav文件时,响应JSON只包含第一个转录的单词。当我将相同的文件上传到web演示时,我得到了完整的响应 使用SDK实现非常简单:IBM Watson语音到文本仅返回Java SDK中的第一个单词,java,speech-to-text,ibm-watson,Java,Speech To Text,Ibm Watson,我正在使用IBMWatson语音到文本JavaSDK,当我上传.wav文件时,响应JSON只包含第一个转录的单词。当我将相同的文件上传到web演示时,我得到了完整的响应 使用SDK实现非常简单: SpeechToText service = new SpeechToText(); service.setUsernameAndPassword("<username>", "<password>"); File audio = new File("src/test/reso
SpeechToText service = new SpeechToText();
service.setUsernameAndPassword("<username>", "<password>");
File audio = new File("src/test/resources/sample1.wav");
SpeechResults transcript = service.recognize(audio, HttpMediaType.AUDIO_WAV);
System.out.println(transcript);
SpeechToText服务=新建SpeechToText();
service.setUserName和密码(“,”);
文件音频=新文件(“src/test/resources/sample1.wav”);
SpeechResults转录本=service.recognize(音频,HttpMediaType.audio_WAV);
系统输出打印文本(抄本);
您正在使用的识别()
签名将在第一次暂停后返回。要查看所有结果,请执行以下操作:
RecognizeOptions options = new RecognizeOptions();
options = options.continuous(true)
.contentType(HttpMediaType.AUDIO_WAV)
.interimResults(false)
.inactivityTimeout(10)
.maxAlternatives(1)
.wordConfidence(false)
.timestamps(true)
.model("en-US_BroadbandModel");
SpeechResults transcript = service.recognize(audio, options);
这对我来说适用于使用以下maven依赖项:
<dependency>
<groupId>com.ibm.watson.developer_cloud</groupId>
<artifactId>java-sdk</artifactId>
<version>2.8.0</version>
</dependency>
com.ibm.watson.developer\u云
java sdk
2.8.0
我正在尝试完全相同的事情,使用Chris K描述的相同参数(除了“中间结果=真”)
但是,它仍然抛出一个异常
java.lang.NullPointerException
at java.io.StringReader.<init>(StringReader.java:50)
at com.google.gson.JsonParser.parse(JsonParser.java:45)
at com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.WebSocketSpeechToTextClient$WebSocketListener.onTextMessage(WebSocketSpeechToTextClient.java:66)
at com.neovisionaries.ws.client.ListenerManager.callOnTextMessage(ListenerManager.java:352)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:233)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:211)
at com.neovisionaries.ws.client.ReadingThread.handleTextFrame(ReadingThread.java:910)
at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:693)
at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:102)
at com.neovisionaries.ws.client.ReadingThread.run(ReadingThread.java:61)
java.lang.NullPointerException
at java.io.StringReader.<init>(StringReader.java:50)
at com.google.gson.JsonParser.parse(JsonParser.java:45)
at com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.WebSocketSpeechToTextClient$WebSocketListener.onTextMessage(WebSocketSpeechToTextClient.java:66)
at com.neovisionaries.ws.client.ListenerManager.callOnTextMessage(ListenerManager.java:352)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:233)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:211)
at com.neovisionaries.ws.client.ReadingThread.handleTextFrame(ReadingThread.java:910)
at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:693)
at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:102)
at com.neovisionaries.ws.client.ReadingThread.run(ReadingThread.java:61)
java.lang.NullPointerException
at java.io.StringReader.<init>(StringReader.java:50)
at com.google.gson.JsonParser.parse(JsonParser.java:45)
at com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.WebSocketSpeechToTextClient$WebSocketListener.onTextMessage(WebSocketSpeechToTextClient.java:66)
at com.neovisionaries.ws.client.ListenerManager.callOnTextMessage(ListenerManager.java:352)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:233)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:211)
at com.neovisionaries.ws.client.ReadingThread.handleTextFrame(ReadingThread.java:910)
at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:693)
at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:102)
at com.neovisionaries.ws.client.ReadingThread.run(ReadingThread.java:61)
java.lang.NullPointerException
位于java.io.StringReader。(StringReader.java:50)
位于com.google.gson.JsonParser.parse(JsonParser.java:45)
在com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.WebSocketSpeechToTextClient$WebSocketListener.onTextMessage(WebSocketSpeechToTextClient.java:66)
在com.neovisionires.ws.client.ListenerManager.callOnTextMessage(ListenerManager.java:352)上
在com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:233)上
在com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:211)上
位于com.neovisionaries.ws.client.ReadingThread.handletexframe(ReadingThread.java:910)
位于com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:693)
位于com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:102)
位于com.neovisionaries.ws.client.ReadingThread.run(ReadingThread.java:61)
java.lang.NullPointerException
位于java.io.StringReader。(StringReader.java:50)
位于com.google.gson.JsonParser.parse(JsonParser.java:45)
在com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.WebSocketSpeechToTextClient$WebSocketListener.onTextMessage(WebSocketSpeechToTextClient.java:66)
在com.neovisionires.ws.client.ListenerManager.callOnTextMessage(ListenerManager.java:352)上
在com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:233)上
在com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:211)上
位于com.neovisionaries.ws.client.ReadingThread.handletexframe(ReadingThread.java:910)
位于com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:693)
位于com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:102)
位于com.neovisionaries.ws.client.ReadingThread.run(ReadingThread.java:61)
java.lang.NullPointerException
位于java.io.StringReader。(StringReader.java:50)
位于com.google.gson.JsonParser.parse(JsonParser.java:45)
在com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.WebSocketSpeechToTextClient$WebSocketListener.onTextMessage(WebSocketSpeechToTextClient.java:66)
在com.neovisionires.ws.client.ListenerManager.callOnTextMessage(ListenerManager.java:352)上
在com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:233)上
在com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:211)上
位于com.neovisionaries.ws.client.ReadingThread.handletexframe(ReadingThread.java:910)
位于com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:693)
位于com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:102)
位于com.neovisionaries.ws.client.ReadingThread.run(ReadingThread.java:61)
这似乎与这个问题有关
这将在里程碑2.9.0中实现(当前为2.8.0)它对我有效,中期结果为真。您不应该在
speechResults.isFinal()
上执行lock.countDown()
操作-有多条消息是最终消息(每次演讲暂停时都会发生)。很好,没有在任何地方看到记录。回答中没有解释这一点,但是将continuous
选项设置为true
是检索所有结果的关键,而不仅仅是第一次暂停后的结果。
java.lang.NullPointerException
at java.io.StringReader.<init>(StringReader.java:50)
at com.google.gson.JsonParser.parse(JsonParser.java:45)
at com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.WebSocketSpeechToTextClient$WebSocketListener.onTextMessage(WebSocketSpeechToTextClient.java:66)
at com.neovisionaries.ws.client.ListenerManager.callOnTextMessage(ListenerManager.java:352)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:233)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:211)
at com.neovisionaries.ws.client.ReadingThread.handleTextFrame(ReadingThread.java:910)
at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:693)
at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:102)
at com.neovisionaries.ws.client.ReadingThread.run(ReadingThread.java:61)
java.lang.NullPointerException
at java.io.StringReader.<init>(StringReader.java:50)
at com.google.gson.JsonParser.parse(JsonParser.java:45)
at com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.WebSocketSpeechToTextClient$WebSocketListener.onTextMessage(WebSocketSpeechToTextClient.java:66)
at com.neovisionaries.ws.client.ListenerManager.callOnTextMessage(ListenerManager.java:352)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:233)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:211)
at com.neovisionaries.ws.client.ReadingThread.handleTextFrame(ReadingThread.java:910)
at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:693)
at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:102)
at com.neovisionaries.ws.client.ReadingThread.run(ReadingThread.java:61)
java.lang.NullPointerException
at java.io.StringReader.<init>(StringReader.java:50)
at com.google.gson.JsonParser.parse(JsonParser.java:45)
at com.ibm.watson.developer_cloud.speech_to_text.v1.websocket.WebSocketSpeechToTextClient$WebSocketListener.onTextMessage(WebSocketSpeechToTextClient.java:66)
at com.neovisionaries.ws.client.ListenerManager.callOnTextMessage(ListenerManager.java:352)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:233)
at com.neovisionaries.ws.client.ReadingThread.callOnTextMessage(ReadingThread.java:211)
at com.neovisionaries.ws.client.ReadingThread.handleTextFrame(ReadingThread.java:910)
at com.neovisionaries.ws.client.ReadingThread.handleFrame(ReadingThread.java:693)
at com.neovisionaries.ws.client.ReadingThread.main(ReadingThread.java:102)
at com.neovisionaries.ws.client.ReadingThread.run(ReadingThread.java:61)