百度api语音
2015-10-18 15:48
381 查看
单纯的页面api,我是要做下载所以写了一个后台,
http://tts.baidu.com/text2audio?lan=zh&pid=101&ie=UTF-8&text=我爱我自己&spd=6 播放
这是页面api
后台的api写法 这里的[b]speekstr是要发声的内容,中文的话要用URLEncoder.encode转码,spd是声音的大小,0到9[/b]
http://tts.baidu.com/text2audio?lan=zh&pid=101&ie=UTF-8&text=" + URLEncoder.encode(speekstr, "UTF-8") + "&spd="+spd
我是来打酱油的,喵咪,开放平台获取到的开发者access_token就是拿来读单词的,顺便把中文也一起读,哈哈,玩玩,不必当真,有的直接抄的,懒得该,反正不给别人用,
照画的,核心就这么多,页面js自己玩吧,页面audio.js大家会玩吧,算了,代码都贴整齐,先开始是做验证码输出的直接拿来修改的,
后台访问方式及参数
http://tts.baidu.com/text2audio?lan=zh&pid=101&ie=UTF-8&text=我爱我自己&spd=6 播放
这是页面api
后台的api写法 这里的[b]speekstr是要发声的内容,中文的话要用URLEncoder.encode转码,spd是声音的大小,0到9[/b]
http://tts.baidu.com/text2audio?lan=zh&pid=101&ie=UTF-8&text=" + URLEncoder.encode(speekstr, "UTF-8") + "&spd="+spd
我是来打酱油的,喵咪,开放平台获取到的开发者access_token就是拿来读单词的,顺便把中文也一起读,哈哈,玩玩,不必当真,有的直接抄的,懒得该,反正不给别人用,
照画的,核心就这么多,页面js自己玩吧,页面audio.js大家会玩吧,算了,代码都贴整齐,先开始是做验证码输出的直接拿来修改的,
response.setCharacterEncoding("UTF-8"); response.setHeader("contentType", "text/html; charset=UTF-8"); response.setContentType("audio/mp3"); try { String imageUrl = "http://tts.baidu.com/text2audio?lan=zh&pid=101&ie=UTF-8&text=" + URLEncoder.encode(speekstr, "UTF-8") + "&spd="+spd; URL url = new URL(imageUrl); LOGGER.info(imageUrl); //打开网络输入流 DataInputStream dis=new DataInputStream(url.openStream()); int i = dis.available(); byte[] data = new byte[i]; dis.read(data); dis.close(); OutputStream outputStream = new BufferedOutputStream(response.getOutputStream()); outputStream.write(data); outputStream.flush(); outputStream.close(); } catch (Exception e) { e.printStackTrace(); }
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <% response.setHeader("Cache-Control", "no-store"); response.setHeader("Pragma","no-cache"); response.setDateHeader ("Expires", 0); %> <script src="${root}/assets/js/jquery-1.9.1.js"></script> <% String root = request.getContextPath(); request.setAttribute("root", root); %> <script> var audio; window.onload = function () { initAudio(); } var initAudio = function () { audio = document.getElementById('audio'); } function getCurrentTime(id) { alert(parseInt(audio.currentTime) + ':秒'); } function downloades(text, id,i) { if(i==1){ document.getElementById(id).innerHTML = '<a href="${root}/musicdiv/' + text + '/6" id="'+id+'" onclick="movethis(this);" download="' + text + '.mp3" style="color: blueviolet">下载语音</a>'; }else if(i=2){ document.getElementById(id).innerHTML = '<a href="' + text + '" id="'+id+'" onclick="movethis(this);" download="music.mp3" style="color: blueviolet">下载语音</a>'; } } function movethis(obj) { obj.innerHTML = ''; } function playOrPaused(text, obj) { if (audio.paused) { audio.src = text; audio.play(); obj.innerHTML = '暂停'; return; } audio.pause(); obj.innerHTML = '播放'; } function hideOrShowControls(id, obj) { if (audio.controls) { audio.removeAttribute('controls'); obj.innerHTML = '显示控制框' return; } audio.controls = 'controls'; obj.innerHTML = '隐藏控制框' return; } function vol(id, type, obj) { if (type == 'up') { var volume = audio.volume + 0.1; if (volume >= 1) { volume = 1; } audio.volume = volume; } else if (type == 'down') { var volume = audio.volume - 0.1; if (volume <= 0) { volume = 0; } audio.volume = volume; } document.getElementById('nowVol').innerHTML = returnFloat1(audio.volume); } function muted(id, obj) { if (audio.muted) { audio.muted = false; obj.innerHTML = '开启静音'; } else { audio.muted = true; obj.innerHTML = '关闭静音'; } } //保留一位小数点 function returnFloat1(value) { value = Math.round(parseFloat(value) * 10) / 10; if (value.toString().indexOf(".") < 0) { value = value.toString() + ".0"; } return value; } </script>
@RequestMapping(value = "/musicdiv/{speekstr}/{spd}", method = RequestMethod.GET)
@PathVariable("speekstr") String speekstr, @PathVariable("spd") Integer spd
后台访问方式及参数
<a href="javascript:void(0);" onclick="playOrPaused('${root}/musicdiv/Chinese painting 国画/6',audio);" download="Chinese painting 国画.mp3" style="color: purple">播放</a> <a href="javascript:void(0);" onclick="downloades('Chinese painting 国画','guohua',1)" style="color: green;">去下载</a> <span id="guohua"></span> <br> <span>Chinese painting 国画 .mp3</span> <br> <a href="javascript:void(0);" onclick="getCurrentTime('firefox');" style="color: aqua">获取播放时间</a> <a href="javascript:void(0);" onclick="hideOrShowControls('firefox',this);" style="color: aqua">隐藏控制框</a> <a href="javascript:void(0);" onclick="muted('firefox',this);" style="color: aqua">开启静音</a> <input type="button" value="+" id="upVol" onclick="vol('firefox' , 'up' , this )" style="color: aqua"/>音量<input type="button" value="-" onclick="vol('firefox' , 'down' ,this )" style="color: aqua"/> <br> 当前音量:<span id="nowVol"> - </span> <br> <audio style="height: 20px;width: 200px;" src="${root}/musicdiv/欢迎您使用本网站语音/6" id="audio" controls="controls" download="ceshi.mp3"></audio>
相关文章推荐
- 旋转数组的最小数字
- Aizu 0525 Osenbei(状压+贪心)
- 信息安全系统设计基础第五周学习总结
- ACM-ICPC国际大学生程序设计竞赛长春赛区(2015)地区赛有感
- 多态polymorphic 内存图的小小示例
- Android Studio使用疑难问题汇总
- 关于Eclipse 和 IDEA 导入library库文件 的步骤
- 浅谈thrift TVirtual*
- Ubuntu下安装codeblocks步骤
- linux内核链表回顾-(2)
- 学习IT参考路线
- clean room 与 天干物燥
- 守卫者的挑战
- MySQL自学笔记——设置外键约束
- Eclipse build launcher 3具体步骤
- java入门第八天 数组的复制扩容(截取)
- 朴素和KMP模式匹配算法(Java)
- 一、Activity的生命周期
- UI - KVOAndImageDownLoader
- 第三次作业 结对编程