Watson 服务不支持哪些符号以避免 BadRequestException

what all are symbols not supported by Watson service to avoid BadRequestException

我目前正在使用 IBM Watson 的文本转语音 API,通过 Java SDK

代码如下

TextToSpeech textToSpeech = new TextToSpeech();
textToSpeech.setUsernameAndPassword(username, password);
ServiceCall<InputStream> inputStreamServiceCall = textToSpeech.synthesize(text, Voice.EN_ALLISON, AudioFormat.OGG);
InputStream in = inputStreamServiceCall.execute();

将文本转换为语音时出现以下异常

com.ibm.watson.developer_cloud.service.exception.BadRequestException: at com.ibm.watson.developer_cloud.service.WatsonService.processServiceCall(WatsonService.java:416) ~[java-sdk-3.3.0.jar:na] at com.ibm.watson.developer_cloud.service.WatsonService.execute(WatsonService.java:179) ~[java-sdk-3.3.0.jar:na]

com.ibm.watson.developer_cloud.service.WatsonService processServiceCall SEVERE: GET https://stream.watsonplatform.net/text-to-speech/api/v1/synthesize?text=Question%20%20%3Cbreak%20time%3D%221s%22/%3E%20Use%20the%20figure%20below%20to%20answer%20the%20following%20question.%20If%20AC||DE,%20which%20of%20the%20following%20justifies%20%CE%94ABC%20~%20%CE%94DBE?%20%20%3Cbreak%20time%3D%221s%22/%3E%20%20Answer%20Choices%20%20%20%3Cbreak%20time%3D%221s%22/%3E%20%20Choice%20A%20%20%3Cbreak%20time%3D%221s%22/%3E%20%20%20Definition%20of%20Similar%20Triangles%20%20%20%3Cbreak%20time%3D%221s%22/%3E%20%20Choice%20B%20%20%3Cbreak%20time%3D%221s%22/%3E%20%20%20SAS%20Similarity%20Theorem%20%20%20%3Cbreak%20time%3D%221s%22/%3E%20%20Choice%20C%20%20%3Cbreak%20time%3D%221s%22/%3E%20%20%20SSS%20Similarity%20Theorem%20%20%20%3Cbreak%20time%3D%221s%22/%3E%20%20Choice%20D%20%20%3Cbreak%20time%3D%221s%22/%3E%20%20%20AA%20Similarity%20Postulate%20&voice=en-US_AllisonVoice&accept=audio/ogg;%20codecs%3Dopus, status: 400, error:

我通过将以下符号“”©—’‘▒“{}|`\ 替换为 space 解决了这个问题。

请指出 watson 服务不支持的符号有哪些?

将您的 com.ibm.watson.developer_cloud java-sdk 升级到更高的 version.latest 是 3.8.0。在 java-sdk-3.3.0.jar 中,一些字符在 API 调用 watson 时没有正确编码。