我正在尝试将语音集成到聊天机器人中的文本服务中,但收到标题中提到的错误。我只是使用了文档中所述的服务。他们将授权方法从用户名+密码更改为api键,对吗? 这是我得到的错误:
2019年2月26日上午11:18:38 okhttp3.internal.platform.Platform日志 信息:-> POST https://stream.watsonplatform.net/speech-to-text/api/v1/recognize http / 1.1(1字节的正文) 2019年2月26日11:18:40 okhttp3.internal.platform.Platform log INFO:<-401未经授权的https://stream.watsonplatform.net/speech-to-text/api/v1/recognize(2434ms,37字节正文) 2019年2月26日11:18:40 com.ibm.watson.developer_cloud.service.WatsonService processServiceCall 严重:POST https://stream.watsonplatform.net/speech-to-text/api/v1/recognize,状态:401,错误:未经授权 线程“ AWT-EventQueue-0”中的异常com.ibm.watson.developer_cloud.service.exception.UnauthorizedException:未经授权:由于凭据无效,访问被拒绝。提示:您是否设置了端点? 在com.ibm.watson.developer_cloud.service.WatsonService.processServiceCall(WatsonService.java:368) 在com.ibm.watson.developer_cloud.service.WatsonService $ WatsonServiceCall.execute(WatsonService.java:429) 在STTService.erkenneAudio(STTService.java:66) 在GUI $ recordAudioButtonListener.actionPerformed(GUI.java:179)
尽管如此,这还是我的代码的样子:
SpeechToText stt = new SpeechToText();
stt.setApiKey("3PHwb6P36A0hgiovasdcqgesVyDZEO7awg2L1be");
stt.setEndPoint("https://stream.watsonplatform.net/speech-to-text/api");
try {
RecognizeOptions recognizeOptions = new RecognizeOptions.Builder()
.audio(new File("C:/Users/jvermaet/Desktop/hallo.wav"))
.contentType(HttpMediaType.AUDIO_WAV)
.build();
SpeechRecognitionResults srr = stt.recognize(recognizeOptions).execute();
System.out.println(srr.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("OO");
}
答案 0 :(得分:0)
我只需要使用IAmOptions构造器。如果无法导入IAmOptions,则可能是因为您使用的是旧版本的sdk,这是我的主要问题。
IamOptions options = new IamOptions.Builder()
.apiKey("{apikey}")
.build();
Assistant assistant = new Assistant("{version}", options);
assistant.setEndPoint("{url}");