Когда я пытаюсь использовать код STT Java с набором модели «zh-CN_BroadbandModel», не может получить ожидаемый результат.Watson речевое сообщение, как вернуть язык, отличный от английского, в 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);
}
SpeechResult, как показано ниже:
{"results": [{
"final": true,
"alternatives": [
{"transcript": "?? ? ? ? ?? ? ? ? ?? ??? ? ??? ?? ? ? ?? ?? ? ??? ? ?? ? ?? ?? ? ?? ? ?? ? ?? ?? ? "}]}],
"result_index": 0
}
Я попытался изменить модель на "ан-US_BroadbandModel", даже с той же файл WAV, то вернуть английские слова (хотя wav находится на китайском языке). В этом случае, я думаю, что «модель» влияет.
Но в ответ я вижу, что местный номер en_US
.
Любой способ установить язык?
Благодарим за отзыв. Я использовал java-sdk-java-wrapper-1.1.0, проблема выглядит в ResponseUtil.getString (ответ HttpResponse) для строки: return EntityUtils.toString (entity, "UTF-8"); Когда я изменю его на следующий код, чтобы использовать IOUtils.copy вместо EntityUtils, проблема исчезла. \t InputStream resContent = entity.getContent(); \t StringWriter writer = new StringWriter(); \t Строковое кодирование = "UTF-8"; \t IOUtils.copy (resContent, writer, encoding); Строковый результат = writer.toString(); \t resContent.close(); \t writer.close(); \t результат возврата; –
Я открыл проблему для изучения этого https://github.com/watson-developer-cloud/java-sdk/issues/117. Можете ли вы предоставить образец файла для использования при тестировании? Я хочу, чтобы мы исправили вашу проблему –