科大讯飞语音接口-tts语音生成

  Demo下载链接:https://download.csdn.net/download/jinglell/11566459

语音生成是另一个难点,我的应用场景是参考科大讯飞的APP"听书神器",在微信小程序端小说爬取完之后,可以对当前的文章进行朗读处理,由于每天的免费次数有限,所以我对生成的音频流并没有直接返回而是也存储为.wav格式的音频的形式到本地资源服务器。
  首先正常情况下也是查看msc.dll,

但是语音合成我这次采用的是另一种形式:在线合成形式,通过请求接口和POST传参合成语音,需要注意的是要MD5加密APIKey+时间+参数Md5(APIKey + curTime + paraBase64);
  下面是我的代码:

public static void Text2Audio(string text,string path,string speeker = "xiaoyan"){// 应用APPID(必须为webapi类型应用,并开通语音合成服务,参考帖子如何创建一个webapi应用:http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=36481)string appID = "**your appID**";// 接口密钥(webapi类型应用开通合成服务后,控制台--我的应用---语音合成---相应服务的apikey)string APIKey = "**your API key**";// 语音合成webapi接口地址String url = "http://api.xfyun.cn/v1/service/v1/tts";String bodys;// 待合成文本//string text = "test测试音频";// 对要合成语音的文字先用utf-8然后进行URL加密byte[] textData = Encoding.UTF8.GetBytes(text);text = HttpUtility.UrlEncode(textData);bodys = string.Format("text={0}", text);//aue = raw, 音频文件保存类型为 wav或者pcm//aue = lame, 音频文件保存类型为 mp3string AUE = "raw";string param ="{\"aue\":\"" + AUE + "\","+"\"auf\":\"audio/L16;rate=16000\","+"\"voice_name\":\"" + speeker + "\"," +"\"engine_type\":\"intp65\"}";// 获取十位的时间戳TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);string curTime = Convert.ToInt64(ts.TotalSeconds).ToString();// 对参数先utf-8然后用base64编码byte[] paramData = Encoding.UTF8.GetBytes(param);string paraBase64 = Convert.ToBase64String(paramData);// 形成签名string checkSum = Md5(APIKey + curTime + paraBase64);// 组装http请求头HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);request = (HttpWebRequest)WebRequest.Create(url);request.Method = "POST";request.ContentType = "application/x-www-form-urlencoded";request.Headers.Add("X-Param", paraBase64);request.Headers.Add("X-CurTime", curTime);request.Headers.Add("X-Appid", appID);request.Headers.Add("X-CheckSum", checkSum);Stream requestStream = request.GetRequestStream();StreamWriter streamWriter = new StreamWriter(requestStream, Encoding.GetEncoding("gb2312"));streamWriter.Write(bodys);streamWriter.Close();String htmlStr = string.Empty;HttpWebResponse response = request.GetResponse() as HttpWebResponse;Stream responseStream = response.GetResponseStream();using (StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("UTF-8"))){string header_type = response.Headers["Content-Type"];if (header_type == "audio/mpeg"){Stream st = response.GetResponseStream();MemoryStream memoryStream = StreamToMemoryStream(st);// 保存音频文件地址和音频格式类型//string path = "D:/audios/temp/audioTest23334455.pcm";File.WriteAllBytes(path, streamTobyte(memoryStream));//Console.WriteLine(response.Headers);//Console.ReadLine();}else{htmlStr = reader.ReadToEnd();//Console.WriteLine(htmlStr);//Console.ReadLine();}}responseStream.Close();}

科大讯飞的两个接口iat/tts到此结束,有问题欢迎留言。{>_<}
ps:刚刚想着改改我发布的项目里的appID什么的突然想到了,除了配置appID appKey、替换msc.dll、配置IIS Server外,还要记得在你的科大讯飞应用控制台里添加你的IP 白名单,不然会无效的。我csdn下载里的项目里的appID、appKey虽然没改,但是别想着直接用我的了哈,因为我没添加你们的IP到我的应用白名单,你们的请求都是无效的。

微信小程序+.NET(六) 科大讯飞语音接口-tts语音生成相关推荐

  1. 微信小程序和百度的语音识别接口详解

    介绍 因为项目需要,使用到了微信小程序和百度的语音接口 现在将项目中的一个小模块拿出来单独分享. 技术关键字 微微信小程序 百度语音接口 nodejs,express fluent-ffmegp 环境 ...

  2. 微信小程序利用腾讯云IM发送语音 + 图片

    微信小程序利用腾讯云IM发送语音 + 图片 能做到这里 说明你已经可以发送普通文本了 如果没有的话可以看一下我的上一篇文章 有完整的讲解 效果图 语音聊天 发送图片 传送 → 发送图片 发送语音 ** ...

  3. 开发微信小程序,就是这么简单!可自动生成微信小程序源代码,配套JS SDK、接口和后台

    开发微信小程序,就是这么简单!自己动手,丰衣足食! 开发微信小程序有多简单?
 你只需要掌握前端开发,就可以轻松开发自己的微信小程序,实现自己的业务功能.借助果创云,无须域名.无须服务器.无须数据库, ...

  4. 微信小程序获取二维码接口整理,.Net Core后台获取小程序二维码

    2019独角兽企业重金招聘Python工程师标准>>> 一.关于二维码接口说明 参考:https://my.oschina.net/tianma3798/blog/1811307 获 ...

  5. 微信小程序调用网易云音乐接口

    微信小程序调用网易云音乐接口 前段时间QQ音乐的调用接口不能用了,给大家整理了一个网易云音乐的调用接口. 1.API接口: API接口地址 2.访问连接地址: http://neteasecloudm ...

  6. 微信小程序访问云服务器,微信小程序访问云服务器ThinkPHP接口的HTTPS问题

    在上篇文章中我已经介绍了如何在云端服务器中搭建微信小程序可访问的ThinkPHP接口.https://www.jianshu.com/p/e7125b69bf14 在浏览器中输入:http://公网I ...

  7. 小程序api 分享scene_网课查题题库接口API-在线免费授权,微信小程序网课答案api接口...

    网课查题题库接口API-在线免费授权,微信小程序网课答案api接口更多相关问题 支持员工实现绩效目标.促进员工自身发展的能力标准的目标是().A.组织目标B.部门目标C.发展目标B.化肝煎合左金丸C. ...

  8. 微信小程序实现分享里调用接口

    微信小程序实现分享里调用接口 在开发微信小程序的时候,有一个需求,在点击分享按钮的时候,调用后台的接口,来获取一个分享的值,在分享的时候在分享链接里拼这个值. 初始的想法 在onShareAppMes ...

  9. 微信小程序实现腾讯云接口 图象识别

    微信小程序实现腾讯云接口 图象识别 注:操作环境:springboot+微信小程序 1.导入maven 腾讯云图象识别接口 jar包 <!-- 腾讯云文字识别接口--><depend ...

最新文章

  1. opencv java match_Java OpenCV-从knnMatch提取匹配项
  2. python财务-财务方面的学生如何学习python?
  3. 乘客公交车上被盗 司机该不该停车闭门等警察
  4. http方法_像本地方法一样调用http服务,feign框架springboot项目实践
  5. Win7如何快速打开命令提示符
  6. 用TensorFlow可视化卷积层的方法
  7. mysql当数据改变时_MySQL中,当update修改数据与原数据相同时会再次执行吗?
  8. 看完这个你还不理解右值引用和移动构造 你就可以来咬我(中)
  9. IdentityServer4之JWT签名(RSA加密证书)及验签
  10. C#如何解决对ListView控件更新以及更新时界面闪烁问题
  11. java 时间换算_【时间工具】整理下java时间换算专题
  12. 关于浏览器预检(OPTIONS)请求
  13. 怎么安装64位JAVA,大师来详解
  14. 小程序容器进一步强化国家政务服务平台功能
  15. Source Sink (live555)
  16. Android 系统性能优化
  17. caffeine本地缓存的使用和详解
  18. 华为matepad切换电脑模式_华为MatePad Pro关于PC模式常用操作指南
  19. 【读书笔记】IC行业常见术语
  20. css下拉菜单汇总案例

热门文章

  1. 基于阈值的图像二值化方法MATLAB
  2. 怎样制作网关服务器,如何设计自己的网关(一)
  3. vuedraggable插件使用---小心得(欢迎广大网友补充)
  4. SSM框架搭建详细解析
  5. 数据服务 开源方案技术选型
  6. 【串级PID】浅谈串级PID作用及意义——快速理解串级PID结构优势(附图)
  7. 微信小程序视图控件与bindtap之间的问题的解决
  8. 基于ITIL的医院信息化服务管理实践(客户说)
  9. 四轴飞行器资料分享,几个G ,66个文件,如果链接失效请私聊我
  10. vmware_无法连接虚拟机vmx提前退出