Java 语音 API 空响应



我正在使用java语音识别API - Jarvis位于 https://github.com/lkuza2/java-speech-api

但是,当我运行我的应用程序时,我收到一个错误:服务器返回 HTTP 响应代码:400 对于 URL:https://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=en-US&maxresults=1(这是此 api 用于从 Google 获取响应的 URL)

我还创建了一个 API 密钥,如之前的帖子中所述,并尝试使用 url(这是版本 2 API):www.google.com/speech-api/v2/recognize?output=json&lang=en-US&key=MYKey"。但在这种情况下,我从谷歌得到一个空响应。

任何人都可以告诉我如何解决这个问题吗?

我从识别器类中更改了一些内容:

我将GOOGLE_RECOGNIZER_URL常量更改为:

    private static final String GOOGLE_RECOGNIZER_URL = "https://www.google.com/speech-api/v2/recognize?output=json&lang=en-us&key=YOUR_KEY";

然后我更改了此方法,因为响应数据有 2 行

   private String rawRequest(File inputFile, int maxResults, int sampleRate) throws IOException
第一行(

读取和发送的那行)为空(我真的不知道为什么),第二行具有识别的语音响应。为此,您必须阅读第二行(不知道是否有更好的方法):

    String response = br.readLine();
    response = br.readLine();
    br.close();
    return response;

然后我更改了此方法,我认为它使用了 v1 URL 响应或其他内容,因为此方法在 json 响应中查找话语并且没有话语键。

    private void parseResponse(String rawResponse, GoogleResponse googleResponse)
    if (rawResponse == null)
        return;
    JSONObject jsonObject = new JSONObject(rawResponse);
    JSONArray jsonArray= (JSONArray) jsonObject.get("result");
    JSONArray jsonArrayResult = (JSONArray) jsonArray.getJSONObject(0).get("alternative");
    googleResponse.setResponse(jsonArrayResult.getJSONObject(0).get("transcript").toString());
    googleResponse.setConfidence(jsonArrayResult.getJSONObject(0).get("confidence").toString());

我是 json 库的新手,所以它可能是一种更好、更短的方法,但这对我有用!

相关内容

  • 没有找到相关文章

最新更新