zoukankan      html  css  js  c++  java
  • 使用百度语音合成tts对文字消息进行语音播报

    地址:http://ai.baidu.com/tech/speech/tts

    前台代码:

    <audio id='music' src=""></audio>
    <script>
     /*  #spd    选填    语速,取值0-9,默认为5中语速
        #pit    选填    音调,取值0-9,默认为5中语调
        #vol    选填    音量,取值0-15,默认为5中音量
        #per    选填    发音人选择, 0为普通女声,1为普通男生,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女声
        */
        var spd = '${spd!""}';
        var pit = '${pit!""}';
        var vol = '${vol!""}';
        var per = '${per!""}';
        var myToken = '${myToken!""}';
        var cuid = '${cuid!""}';
        function play(text) {
            var player = document.querySelector('#music');
            var url = "http://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid="+cuid+"&tok="+myToken+"&tex="+text+"&vol="+vol+"&per="+per+"&spd="+spd+"&pit=" + pit;
    
            if(player.paused ){
                // 暂停中
                    player.src =url;
                    player.play();
            }
        }
    </script>

    获取token的java类:

    import org.json.JSONObject;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.List;
    import java.util.Map;
    
    /**
     * 获取token类
     */
    public class AuthService {
    
        /**
         * 获取权限token
         * @return 返回示例:
         * {
         * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",
         * "expires_in": 2592000
         * }
         */
        public static String getAuth() {
            // 官网获取的 API Key 更新为你注册的
            String clientId = "ksnh3bAPPByrYGMD4MwTaMum";
            // 官网获取的 Secret Key 更新为你注册的
            String clientSecret = "e2LgPHXraUqzUA5N7U5OtWULq9LAZdiB ";
            return getAuth(clientId, clientSecret);
        }
    
        /**
         * 获取API访问token
         * 该token有一定的有效期,需要自行管理,当失效时需重新获取.
         * @param ak - 百度云官网获取的 API Key
         * @param sk - 百度云官网获取的 Securet Key
         * @return assess_token 示例:
         * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"
         */
        public static String getAuth(String ak, String sk) {
            // 获取token地址
            String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
            String getAccessTokenUrl = authHost
                    // 1. grant_type为固定参数
                    + "grant_type=client_credentials"
                    // 2. 官网获取的 API Key
                    + "&client_id=" + ak
                    // 3. 官网获取的 Secret Key
                    + "&client_secret=" + sk;
            try {
                URL realUrl = new URL(getAccessTokenUrl);
                // 打开和URL之间的连接
                HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
                connection.setRequestMethod("GET");
                connection.connect();
                // 获取所有响应头字段
                Map<String, List<String>> map = connection.getHeaderFields();
                // 遍历所有的响应头字段
                for (String key : map.keySet()) {
                    System.err.println(key + "--->" + map.get(key));
                }
                // 定义 BufferedReader输入流来读取URL的响应
                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String result = "";
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
                /**
                 * 返回结果示例
                 */
                System.err.println("result:" + result);
                JSONObject jsonObject = new JSONObject(result);
                String access_token = jsonObject.getString("access_token");
                return access_token;
            } catch (Exception e) {
                System.err.printf("获取token失败!");
                e.printStackTrace(System.err);
            }
            return null;
        }
    
    }

    随机获取cuid的java类:

    import java.util.Random;
    
    /**
     * 获取指定长度的随机字符串
     * @author 小帅丶
     * @Title RandomStringGenerator
     * @时间   2017-5-26下午4:58:53
     */
    
    public class RandomStringGenerator {
    
        /**
         * 获取一定长度的随机字符串
         * @param length 指定字符串长度
         * @return 一定长度的字符串
         */
        public static String getRandomStringByLength(int length) {
            String base = "abcdefghijklmnopqrstuvwxyz0123456789";
            Random random = new Random();
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < length; i++) {
                int number = random.nextInt(base.length());
                sb.append(base.charAt(number));
            }
            return sb.toString();
        }
    
    }

  • 相关阅读:
    nginx 按天生成日志
    cmder
    EXCEL最大行数问题:org.apache.xmlbeans.impl.store.Saver$TextSaver.resize(Saver.java:1700)
    nginx configure 错误记录
    Flume NetCat Demo
    Flume
    hbase
    kafka安装配置
    azkaban
    sqoop
  • 原文地址:https://www.cnblogs.com/kasher/p/8483274.html
Copyright © 2011-2022 走看看