如何从 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:
我想从我的 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: