百度语音转换技术,让失聪人和盲人独立对话成为可能!
![](http://bbs.apistore.baidu.com/data/attachment/forum/201509/22/114451h393y4299ogz99yj.jpg)
![](http://bbs.apistore.baidu.com/data/attachment/forum/201509/22/114419uqls3u14lxs46s6j.jpg)
根据录制的语音参数,我们可以拼接参数param="format=pcm&rate=8000&channel=1&lan=zh",对于录制的语音,按照要求进行base64编码,java代码如下:
InputStream in = new FileInputStream(audioFilePath);byte[] bytes = new byte[in.available()];// 将文件中的内容读入到数组中in.read(bytes);strBase64 = new BASE64Encoder().encode(bytes); // 将字节流数组转换为字符串strBase64 = DatatypeConverter.printBase64Binary(bytes);//那么拼接后的参数:String params ="format=pcm&rate=8000&channel=1&lan=zh"; String audioEncode=ioToBase64(fileName);audioEncode = URLEncoder.encode(audioEncode); params=params+"&audioBase64="+audioEncode;import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import javax.xml.bind.DatatypeConverter;
import sun.misc.BASE64Encoder;
import com.alibaba.fastjson.JSONObject;
public class TestVoice {public static voidmain(String[] args) throws
UnsupportedEncodingException{String httpUrl = "http://APIs.baidu.com/APIstore/vop/baiduvopjson";String httpArg = "";String jsonResult = request(httpUrl, httpArg);JSONObject jsonObject = JSONObject.parseObject(jsonResult);JSONObject retdataObject = JSONObject.parseObject((String)jsonObject.get("retData"));String content = (String) retdataObject.get("result");System.out.println(content);}public static String request(String httpUrl, String httpArg) {BufferedReader reader = null;String result = null;StringBuffer sbf = new StringBuffer();String fileName = "d:\\test.pcm"; // 源文件try {URL url = new URL(httpUrl);HttpURLConnection connection =(HttpURLConnection) url.openConnection();connection.setRequestMethod("POST");connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");// 填入apikey到HTTP headerconnection.setRequestProperty("apikey", "08cb827e80ddad16ce5xxxx自己的apikey");//这里是自己的apikeyconnection.setDoOutput(true);String params ="format=pcm&rate=8000&channel=1&lan=zh";//pcm格式
String audioEncode=ioToBase64(fileName);audioEncode =URLEncoder.encode(audioEncode); params=params+"&audioBase64="+audioEncode;connection.getOutputStream().write(params.getBytes());connection.connect();InputStream is =connection.getInputStream();reader = new BufferedReader(newInputStreamReader(is, "UTF-8"));String strRead = null;while ((strRead =reader.readLine()) != null) {sbf.append(strRead);sbf.append("\r\n");}reader.close();result =sbf.toString();} catch (Exception e) {e.printStackTrace();}return result;}public static String ioToBase64(String audioFilePath) throws IOException {String strBase64 = null;try {InputStream in = new FileInputStream(audioFilePath);byte[] bytes = new byte[in.available()];// 将文件中的内容读入到数组中in.read(bytes);strBase64 = new BASE64Encoder().encode(bytes); // 将字节流数组转换为字符串strBase64 = DatatypeConverter.printBase64Binary(bytes);in.close();} catch (FileNotFoundException fe) {fe.printStackTrace();} catch (IOException ioe) {ioe.printStackTrace();}return strBase64;}
}
![](http://bbs.apistore.baidu.com/data/attachment/forum/201509/22/115543f31h6i5sk65s5s8m.jpg)
![](http://bbs.apistore.baidu.com/data/attachment/forum/201509/22/115642mkkp3f4q48aodndd.jpg)
StringBuffer params = new StringBuffer();String content = "百度语音合成技术";params.append("text="+content);params.append("&lan=zh");params.append("&ctp=1");String serverURL2 = serverURL+"?"+params.toString();
3. 发送请求
String serverURL2 = serverURL+"?"+params.toString();HttpURLConnection conn = (HttpURLConnection) new URL(serverURL2).openConnection();// add request headerconn.setRequestMethod("GET");conn.setRequestProperty("Content-Type", "Content-Type: audio/pcm; charset=utf-8");// 填入apikey到HTTP headerconn.setRequestProperty("apikey", "08cb827e80ddad16ce596xxxxxxx自己的apikey");conn.setDoInput(true);conn.setDoOutput(true);conn.connect();
![](http://bbs.apistore.baidu.com/data/attachment/forum/201509/22/115823yzcd06bdb365dbh1.jpg)
5. 测试的全部java代码
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.IOUtils;
import org.json.JSONObject;
public class BaiduTTS {private static final String serverURL = "http://APIs.baidu.com/APIstore/baidutts/tts";public static void main(String[] args) throws Exception {StringBuffer params = new StringBuffer();String content = "百度语音合成技术";params.append("text="+content);params.append("&lan=zh");params.append("&ctp=1");String serverURL2 = serverURL+"?"+params.toString();HttpURLConnection conn = (HttpURLConnection) new URL(serverURL2).openConnection();// add request headerconn.setRequestMethod("GET");conn.setRequestProperty("Content-Type", "Content-Type: audio/mp3; charset=utf-8");// 填入apikey到HTTP headerconn.setRequestProperty("apikey", "08cb827e80ddad16ce596c902cbf3b95");conn.setDoInput(true);conn.setDoOutput(true);conn.connect();printResponse(conn);}private static String printResponse(HttpURLConnection conn) throws Exception {if (conn.getResponseCode() != 200) {return "";}InputStream is = conn.getInputStream();BufferedReader rd = new BufferedReader(newInputStreamReader(is));String line;StringBuffer response = new StringBuffer();while ((line = rd.readLine()) != null) {response.append(line);response.append('\r');}rd.close();JSONObject resultObj = newJSONObject(response.toString());if(resultObj!=null){String status = resultObj.getString("retMsg");if("success".equals(status)){String retData = resultObj.getString("retData");//System.out.println(retData);byte[] audiobyte = Base64.decodeBase64(retData);FileOutputStream fos = new FileOutputStream(new File("D:\\audio1.mp3"));IOUtils.write(audiobyte, fos);System.out.println("save ok");}}return "";}
}
![](http://bbs.apistore.baidu.com/data/attachment/forum/201509/22/115948dp6cpd6ah46d2ppp.jpg)
最后,请移步百度APIStore,寻找属于你的API!!!!
百度语音转换技术,让失聪人和盲人独立对话成为可能!相关推荐
- 基于GAN的语音转换技术及语音合成TTS
https://www.toutiao.com/a6714089773171999244/ 介绍 到目前为止,我主要致力于生成人物的图像(或视频),但我希望他们一旦在屏幕上可见就会用对应的声音说话.所 ...
- android 百度语音转换工具,百度语音版app下载-百度语音版 安卓版v10.0.10.11-PC6安卓网...
百度语音版app是一款装机必备应用客户端,百度语音版app来自百度为你打造的更智能的语音交互功能,给您更便捷的搜索体验,有了百度语音版app,告别广告干扰,给您更纯净的资讯阅读环境. 软件介绍 百度语 ...
- REST实战——调用百度语音的云服务
RESTful REST(REpresentation State Transfer)描述了一个架构样式的网络系统,比如说web应用程序.它首次出现在2000年Roy Thomas Fielding的 ...
- 在微信的视频通话中将语音转成文字并显示在通话界面中,可以使用语音识别技术,将语音转换成文本,再通过编程技巧将文本显示在通话界面中。实现方法...
在微信的视频通话中将语音转成文字并显示在通话界面中,可以使用以下步骤进行实现: 使用语音识别技术将语音转换成文本.这可以使用现有的语音识别API,如百度语音识别API等. 通过编程技巧将文本显示在通话 ...
- 利用百度语音识别接口将语音转换成文字教程
一.说明 如果有一个工具能识别音视中的语音并转换成文字输出,由于可以复制粘贴而不需要逐字逐句地打,那我们进行为音频配字幕工作时将会事半功倍. 其中的关键点是音文转换,音文转换其实在很多地方都可以看到比 ...
- 语音技术(百度语音)开发 - 第一篇
语音技术(百度语音)开发 - 第一篇 AI接入指南 短语音识别标准版.查看文档 短语音识别API文档 .调用流程.speech 参数填写.参数说明.等等 官方demo地址 创建应用.百度云平台 网上案 ...
- html5d调用百度语音,易语言调用百度语音平台实现文字转换语音功能的代码
调用百度语音平台实现文字转换语音功能 此功能需要加载精易模块5.6 .版本 2 .支持库 wmp9 .程序集 窗口程序集1 .子程序 _试听按钮_被单击 播放器1.地址 = "http:// ...
- 使用百度AI将语音转换成文字(JAVA)
使用百度AI将语音转换成文字--JAVA 1.安装ffmpeg 2.使用百度AI翻译语音 1.引入dependency 2.将音频转换成文字并写入到文件中. **遇到的问题:** 4.因为需要切割长语 ...
- 超七成阅读APP都借百度语音技术促用户增长
全国十多亿人在这个春节集体"关门闭户"与手机和网络作伴,除了手游和短视频流量飞涨,在线阅读也迎来"高光时刻",特别是当手机阅读APP标配了语音朗读即" ...
最新文章
- LazyProphet:使用 LightGBM 进行时间序列预测
- Linux添加网站后无法显示,Linux:SElinux导致网站无法访问
- e300氛围灯哪里调节_黑色的奔驰E300有了亚光膜的加持 一出场就惊艳四座
- 20-190-090-安装-Flink集群安装 flink-1.9.0
- 车萝卜CEO马斌斌:真正自动驾驶的时候你更需要HUD和ARHUD...
- WordPress Shortcode(简码)介绍及使用详解
- 一次http请求中的信息
- unity 生成assestbundle资源的插件
- 宗地图绘制要求和规范_宗地图绘制的基本要求与内容.ppt
- 【阿里图标库的使用】
- Visual Studio 2015官方汇总包括下载和视频
- 浙江大学计算机学院 翁恺,“中文MOOC第一人”浙江大学教师翁恺获得百万大奖...
- thinkphp6+swoole websocket使用教程自研路线不建议使用
- html网页中圆角边框的编写,Html实现边框圆角的实例详解
- GPS接收机学习小记(一)
- c语言课设——药品管理系统
- 认清GPU的流处理器作用
- 基于用户评论情感分析详细设计与技术实现
- 2019北大计算机夏令营,2019年北京大学化学学院“全国优秀大学生夏令营”第三轮通知...
- 智云通CRM:客户说“我随便看看”,如何回应才能促进成交?