如何从 java 发送 bluemix wav 流响应

How to send bluemix wav stream response from java

我想从我的 Java 代码中调用 IBM Bluemix 服务(比如 Text to Speech)。 我已成功获得服务凭证和 URL 但之后如何调用它?

我见过一些示例,其中人们使用了类似于下面的代码,但想知道它如何用于输出 wav 流的 Text to Speech。

  String profileString = ex.execute(profileRequest)
         .handleResponse(new ResponseHandler<String>() {
    @Override
     public String handleResponse(HttpResponse r)
      throws ClientProtocolException, IOException {
      }
    }

有人可以推荐优先级吗?

下面的 link 有一个 Java 代码示例,说明如何使用 Watson 文本到语音转换服务。

https://github.com/watson-developer-cloud/text-to-speech-java

您应该从 DemoServlet.java class:

中寻找类似的内容
@Override
    protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws ServletException, IOException {
        if (req.getParameter("text") == null || req.getParameter("voice") == null) {
            req.getRequestDispatcher("/index.jsp").forward(req, resp);
        } else {
            boolean download = false;
            if (req.getParameter("download") != null && req.getParameter("download").equalsIgnoreCase("true")) {
                download = true;
            }

            req.setCharacterEncoding("UTF-8");
            try {
                String queryStr = req.getQueryString();
                String url = baseURL + "/v1/synthesize";
                if (queryStr != null) {
                    url += "?" + queryStr;
                }
                URI uri = new URI(url).normalize();

                Request newReq = Request.Get(uri);
                newReq.addHeader("Accept", "audio/ogg; codecs=opus");

                Executor executor = Executor.newInstance().auth(username, password);
                Response response = executor.execute(newReq);
                if (download)
                {
                    resp.setHeader("content-disposition", "attachment; filename=transcript.ogg");
                }
                ServletOutputStream servletOutputStream = resp.getOutputStream();
                response.returnResponse().getEntity()
                .writeTo(servletOutputStream);
                servletOutputStream.flush();
                servletOutputStream.close();
            } catch (Exception e) {
                // Log something and return an error message
                logger.log(Level.SEVERE, "got error: " + e.getMessage(), e);
                resp.setStatus(HttpStatus.SC_BAD_GATEWAY);
            }
        }
    }

最后,下面的 link 说明了如何创建 Java war 文件并部署到 Bluemix:

https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/getting_started/gs-full-java.shtml