Watson语音到文本服务如何在java中返回英语以外的语言

1 speech-to-text chinese-locale ibm-watson ibm-cloud

当我尝试将STT设置为"zh-CN_BroadbandModel"的STT Java代码时,无法获得预期的结果.

这是我的示例代码:

public static void main (String[] args) {

    SpeechToText service = new SpeechToText();
    service.setUsernameAndPassword(USERNAME, PASSWORD);

    File file = new File("C:/IBM/Watson/APIs/speech-to-text/test.wav");

    Map<String, Object> params = new HashMap<String, Object>();
    params.put("audio", file);
    params.put("content_type","audio/wav");
    params.put("model", "zh-CN_BroadbandModel");

    SpeechResults transcript = service.recognize(params);

    System.out.println(transcript);
}
Run Code Online (Sandbox Code Playgroud)

SpeechResult如下:

{"results": [{
      "final": true,
      "alternatives": [
        {"transcript": "?? ? ? ? ?? ? ? ? ?? ??? ? ??? ?? ? ? ?? ?? ? ??? ? ?? ? ?? ?? ? ?? ? ?? ? ?? ?? ? "}]}],
  "result_index": 0
}
Run Code Online (Sandbox Code Playgroud)

我试图将模型更改为"en-US_BroadbandModel",即使使用相同的wav文件,它也会返回英文单词(尽管wav是中文).在这种情况下,我认为"模型"设置会影响.

但在回应中,我可以看到本地是en_US.

有什么办法设置语言?

Jam*_*mas 5

这是Windows中Java使用的控制台输出编码的问题.

Windows上的默认控制台输出编码不是UTF-8而是CP850.

使用具有显式编码的PrintStream来查看结果.

PrintStream out = new PrintStream(System.out, true, "UTF-8");