Watson 语音转文本服务如何 return java 中的英语以外的语言
Watson speech-to-text service how to return language other than English in java
当我尝试将模型设置为 "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);
}
语音结果如下:
{"results": [{
"final": true,
"alternatives": [
{"transcript": "?? ? ? ? ?? ? ? ? ?? ??? ? ??? ?? ? ? ?? ?? ? ??? ? ?? ? ?? ?? ? ?? ? ?? ? ?? ?? ? "}]}],
"result_index": 0
}
我尝试将模型更改为"en-US_BroadbandModel",即使使用相同的wav文件,它也是return英文单词(尽管wav是中文的)。在这种情况下,我认为 "model" 设置确实会影响。
但在响应中,我可以看到本地是 en_US
。
有什么设置语言的方法吗?
这是 Windows 中 Java 使用的控制台输出编码的问题。
Windows 上的默认控制台输出编码不是 UTF-8,而是 CP850.
使用具有显式编码的 PrintStream 来查看结果。
PrintStream out = new PrintStream(System.out, true, "UTF-8");
当我尝试将模型设置为 "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);
}
语音结果如下:
{"results": [{
"final": true,
"alternatives": [
{"transcript": "?? ? ? ? ?? ? ? ? ?? ??? ? ??? ?? ? ? ?? ?? ? ??? ? ?? ? ?? ?? ? ?? ? ?? ? ?? ?? ? "}]}],
"result_index": 0
}
我尝试将模型更改为"en-US_BroadbandModel",即使使用相同的wav文件,它也是return英文单词(尽管wav是中文的)。在这种情况下,我认为 "model" 设置确实会影响。
但在响应中,我可以看到本地是 en_US
。
有什么设置语言的方法吗?
这是 Windows 中 Java 使用的控制台输出编码的问题。
Windows 上的默认控制台输出编码不是 UTF-8,而是 CP850.
使用具有显式编码的 PrintStream 来查看结果。
PrintStream out = new PrintStream(System.out, true, "UTF-8");