Watson STT Java-Websockets Java和HTTP POST之间的不同结果
我正在尝试构建一个应用程序,它采用流式音频输入(例如:麦克风中的线路),并使用IBMBlueMix(Watson)将语音转换为文本 我简要地修改了找到的示例Java代码。这个例子发送了一个WAV,但是我发送了一个FLAC。。。这是不相关的 结果很糟糕,非常糟糕。这是我在使用Java Websockets代码时得到的结果:Watson STT Java-Websockets Java和HTTP POST之间的不同结果,java,api,ibm-cloud,speech-to-text,ibm-watson,Java,Api,Ibm Cloud,Speech To Text,Ibm Watson,我正在尝试构建一个应用程序,它采用流式音频输入(例如:麦克风中的线路),并使用IBMBlueMix(Watson)将语音转换为文本 我简要地修改了找到的示例Java代码。这个例子发送了一个WAV,但是我发送了一个FLAC。。。这是不相关的 结果很糟糕,非常糟糕。这是我在使用Java Websockets代码时得到的结果: { "result_index": 0, "results": [ { "final": true, "alternatives": [
{
"result_index": 0,
"results": [
{
"final": true,
"alternatives": [
{
"transcript": "it was six weeks ago today the terror ",
"confidence": 0.92
}
]
}
]
}
现在,将上面的结果与下面的结果进行比较。以下是使用cURL(HTTP POST)发送相同内容时的结果:
这几乎是一个完美的结果
为什么在使用WebSocket时会有差异?这个问题在
3.0.0-RC1
版本中得到了解决
您可以从以下位置获取新的jar:
<dependency>
<groupId>com.ibm.watson.developer_cloud</groupId>
<artifactId>java-sdk</artifactId>
<version>3.0.0-RC1</version>
</dependency>
下面是一个如何使用WebSocket识别flac音频文件的示例
SpeechToText service = new SpeechToText();
service.setUsernameAndPassword("<username>", "<password>");
FileInputStream audio = new FileInputStream("path-to-audio-file.flac");
RecognizeOptions options = new RecognizeOptions.Builder()
.continuous(true)
.interimResults(true)
.contentType(HttpMediaType.AUDIO_FLAC)
.build();
service.recognizeUsingWebSocket(audio, options, new BaseRecognizeCallback() {
@Override
public void onTranscription(SpeechResults speechResults) {
System.out.println(speechResults);
}
});
SpeechToText服务=新建SpeechToText();
service.setUserName和密码(“,”);
FileInputStream audio=newfileinputstream(“指向audio file.flac的路径”);
RecognizeOptions=newrecognizeoptions.Builder()
.连续(真)
.interimResults(真)
.contentType(HttpMediaType.AUDIO\u FLAC)
.build();
service.recognizeUsingWebSocket(音频、选项、新BaseRecognitizeCallback(){
@凌驾
公开无效的onTranscription(SpeechResults SpeechResults){
System.out.println(speechResults);
}
});
}
要测试的FLAC文件:
注意:
3.0.0-RC1
是一个候选发行版。下周我们将发布一个生产版本(3.0.1
)。我在存储库中创建了一个问题,并将研究这个问题。您可以将您正在使用的音频文件添加到该问题吗?@Germanatanasio这是文件。很酷,我在github中添加了这个问题,并将致力于解决这个问题。我会查一查,然后告诉你。
'com.ibm.watson.developer_cloud:java-sdk:3.0.0-RC1'
SpeechToText service = new SpeechToText();
service.setUsernameAndPassword("<username>", "<password>");
FileInputStream audio = new FileInputStream("path-to-audio-file.flac");
RecognizeOptions options = new RecognizeOptions.Builder()
.continuous(true)
.interimResults(true)
.contentType(HttpMediaType.AUDIO_FLAC)
.build();
service.recognizeUsingWebSocket(audio, options, new BaseRecognizeCallback() {
@Override
public void onTranscription(SpeechResults speechResults) {
System.out.println(speechResults);
}
});