Java tutorial
/* * Copyright 2015 AT&T * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.att.api.speech.controller; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.codec.binary.Base64; import org.json.JSONObject; import com.att.api.controller.APIController; import com.att.api.oauth.OAuthToken; import com.att.api.speech.service.TtsService; public class TextToSpeechController extends APIController { private static final long serialVersionUID = 161244360288778547L; public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { final JSONObject jresponse = new JSONObject(); try { final OAuthToken token = this.getFileToken(); final TtsService srvc = new TtsService(appConfig.getApiFQDN(), token); final String contentType = request.getParameter("contentType"); final String plaintext = request.getParameter("plaintext"); final String ssml = request.getParameter("ssml"); final String xArg = request.getParameter("x_arg"); String speechText = null; if (contentType.equals("text/plain")) { speechText = plaintext; if (speechText.length() > 250) { throw new Exception("Character limited of 250 reached"); } } else { speechText = ssml; } final byte[] wavBytes = srvc.sendRequest(contentType, speechText, xArg); JSONObject jaudio = new JSONObject().put("type", "audio/wav").put("base64", new String(Base64.encodeBase64(wavBytes))); jresponse.put("success", true).put("audio", jaudio); } catch (Exception e) { jresponse.put("success", false).put("text", e.getMessage()); } response.setContentType("text/html"); PrintWriter writer = response.getWriter(); writer.print(jresponse); writer.flush(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } } /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */