C# 百度TTS,文本转语音,RestAPI之Get请求
因为用得到,所以作个记录:
代码如下:
- public class BaiduTTSService : IBaiduTTSService
- {
- public string tok = GetBaiduToken();
- private const string lan = "zh";//语言
- private const string per = "";//发音人选择 0位女 1位男 默认 女0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫,默认为普通女声
- private const string ctp = "";//客户端类型选择 web端为1
- private const string spd = "";//范围0~9 默认 5 语速
- private const string pit = "";//范围0~9 默认 5 音调
- private const string vol = "";//范围0~9 默认 5 音量
- private string cuid = Computer.GetMacAddress();//机器Mak地址
- private const string rest = "tex={0}&lan={1}&per={2}&ctp={3}&cuid={4}&tok={5}&spd={6}&pit={7}&vol={8}";
- /// <summary>
- /// tex 即:被转化的文本 可以是中英文结合体,如:hello 陈卧龙
- /// </summary>
- /// <param name="tex"></param>
- /// <returns></returns>
- public string GetBaiduUri(string tex)
- {
- string Uri = "http://tsn.baidu.com/text2audio?" + string.Format(rest, tex, lan, per, ctp, cuid, tok, spd, pit, vol);
- return Uri;
- }
- /// <summary>
- /// 获取百度Token 百度Token有效请为30天
- /// </summary>
- /// <returns></returns>
- public static string GetBaiduToken()
- {
- //string Uri = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=你的client_id&client_secret=你的client_secret";
- //string page = GetPage(Uri, "");
- //string Token = GetJsonValue(page, "access_token");
- return "24.926b57f9665a644fa7b38c76c021834d.2592000.1496304195.282335-9593280";
- }
- #region 获取网络资源
- /// <summary>
- /// 获取网络资源
- /// </summary>
- /// <param name="posturl">请求的URL</param>
- /// <param name="postData">发送的数据</param>
- /// <returns>json格式的字符串</returns>
- public static string GetPage(string posturl, string postData)
- {
- //WX_SendNews news = new WX_SendNews();
- //posturl: news.Posturl;
- //postData:news.PostData;
- System.IO.Stream outstream = null;
- Stream instream = null;
- StreamReader sr = null;
- HttpWebResponse response = null;
- HttpWebRequest request = null;
- Encoding encoding = Encoding.UTF8;
- byte[] data = encoding.GetBytes(postData);
- // 准备请求...
- try
- {
- // 设置参数
- request = WebRequest.Create(posturl) as HttpWebRequest;
- CookieContainer cookieContainer = new CookieContainer();
- request.CookieContainer = cookieContainer;
- request.AllowAutoRedirect = true;
- request.Method = "POST";
- request.ContentType = "application/x-www-form-urlencoded";
- request.ContentLength = data.Length;
- outstream = request.GetRequestStream();
- outstream.Write(data, , data.Length);
- outstream.Close();
- //发送请求并获取相应回应数据
- response = request.GetResponse() as HttpWebResponse;
- //直到request.GetResponse()程序才开始向目标网页发送Post请求
- instream = response.GetResponseStream();
- sr = new StreamReader(instream, encoding);
- //返回结果网页(html)代码
- string content = sr.ReadToEnd();
- string err = string.Empty;
- return content;
- }
- catch (Exception ex)
- {
- string err = ex.Message;
- return string.Empty;
- }
- }
- #endregion
- #region 获取Json字符串某节点的值
- /// <summary>
- /// 获取Json字符串某节点的值
- /// </summary>
- public static string GetJsonValue(string jsonStr, string key)
- {
- string result = string.Empty;
- if (!string.IsNullOrEmpty(jsonStr))
- {
- key = "\"" + key.Trim('"') + "\"";
- int index = jsonStr.IndexOf(key) + key.Length + ;
- if (index > key.Length + )
- {
- //先截逗号,若是最后一个,截“}”号,取最小值
- int end = jsonStr.IndexOf(',', index);
- if (end == -)
- {
- end = jsonStr.IndexOf('}', index);
- }
- result = jsonStr.Substring(index, end - index);
- result = result.Trim(new char[] { '"', ' ', '\'' }); //过滤引号或空格
- }
- }
- return result;
- }
- #endregion
- }
详情请参考百度TTS API:网址:http://yuyin.baidu.com/docs/tts/133
C# 百度TTS,文本转语音,RestAPI之Get请求的更多相关文章
- tts文本转语音服务
1. 谷歌tts http://translate.google.cn/translate_tts?ie=UTF-8&tl=zh-CN&q=谷歌 2. 百度tts http://tts ...
- 【TTS】文本转语音?如何不调用第三方api来实现,使用pyttsx3
@ 目录 前言 安装pyttsx3 实现TTS接口 后言 前言 本次的实现需求有点困难,所以也就记录下来,别到时候都忘了. 首先先不说正题,有兴趣的可以看一看: 1.目标是实现一个可以传一个文本就返回 ...
- 用TTS实现文本转语音
最近被toefl单词虐成狗::>_<:: 想做一个可以自动把单词转成语音的软件,这样就可以在路上戴耳机边走边听啦~ 用微软的TTS语音库可以很容易地实现.早期的TTS要想实现中英文混合朗读 ...
- iOS 文本转语音(TTS)详解:Swift
上一篇博客讲解了iOS的speech FrameWork语音识别的功能:http://www.cnblogs.com/qian-gu-ling/p/6599670.html,对应的这篇博客就写一下文本 ...
- 文本转语音TTS(文本阅读和视频配音制作)MP3
DL-TTS 通过AI驱动引擎可将文本转化为逼真的语音,它可以:(1)生成逼真的合成语音实现与人声的语调和情感匹配的流畅.发音自然的文本转语音.(2)细化的文本转语音控制支持多种语言,并可调整语速.语 ...
- C# 文本转语音朗读
1. 利用DONET框架自带的 SpeechSynthesizer ,缺点是没有感情色彩,抑扬顿挫等. using System; using System.Collections.Generic; ...
- 15.Python文本转化语音方法
1.用pywin32模块来将文本转化为语音 通过pip install pywin32安装模块,pywin32是个万金油的模块,太多的场景使用到它,但在文本转语音上,它却是个青铜玩家,简单无脑但效果不 ...
- 个人开源作品,即时通讯App支持文本、语音、图片聊天
开源一个即时通讯类App,支持纯文本.语音.地理位置.图片聊天,同时还加入了好友圈功能,支持分享动态和发送图片,支持搜索附近的人,使用的百度地图定位功能:由Bmob后端云提供服务器支持,欢迎喜欢的伙伴 ...
- unity3dWeb版文本转语音
文本转语音 <script type="text/javascript"> function VioceSpeack(str) { var zhText = str; ...
随机推荐
- loadrunner 脚本优化-加密与解密
脚本优化-加密与解密 by:授客 QQ:1033553122 密码加密 可以给密码加密,意在把结果字符串作为脚本的参数或者参数值.例如,完整可能有一个用户密码填写的表单,你想测试网站针对不同密码的 ...
- 跨站请求伪造(CSRF)
1. 什么是跨站请求伪造(CSRF) CSRF(Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者session Riding,通常缩 ...
- maven(九),install安装到本地仓库
下载oracle驱动jar包 在maven中央仓库中,是没有oracle驱动jar包的.因为oracle是商业软件,其jar包不允许用作开源用途.从http://www.mvnrepository.c ...
- persist与checkpoint
1.当反复使用某些RDD时建议使用persist(缓存级别)(采用默认缓存级别时为cache())来对数据进行缓存. 2.如果某个步骤的RDD计算特别耗时或经历很多步骤的计算,当重新计算时代价特别大, ...
- 【第三篇】SAP ABAP7.5x新语法之程序结构&SubScreen
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文地址:SAP ABAP7.5x系列之程序结构& ...
- scp 实现远程异地备份
1.先做好脚本 2.再使用crontab 定时执行计划任务 0 1 * * * /usr/bin/expect /root/script/scpautodown.sh #执行,也可先定义环境变量 0 ...
- 第七章 鼠标(CHECKER2)
CHECKER2程序包含一个键盘接口,内容与CHECKER1完全相同.利用←.→.↑.↓四个方向键可以在25个矩形之间移动鼠标指针.Home键把鼠标指针移动到左上角的矩形:End键使鼠标指针落到右下角 ...
- Linux运维之如何查看目录被哪些进程所占用,lsof命令、fuser命令
之前将一块硬盘挂载到某个目录下,但是现在我想卸载掉这块硬盘,无论如何都umount不了,有些同学可能说需要加上 -f 参数强制卸载,理论上是可以的,但是在我这里依然不起作用,比如: [root@:vg ...
- windows 10 安装TortoiseSVN.msi时报2503的错误
解释: 出现这个错误的原因是权限不足,右击安装程序也没有“以管理员身份运行”按钮. 解决: 输入 msiexec /package F:\TortoiseSVN-1.9.7.27907-x64.ms ...
- Alpha冲刺! Day11 - 砍柴
Alpha冲刺! Day11 - 砍柴 今日已完成 晨瑶: gitkraken团队协作流程教程基本完工. 昭锡:将主页包含UI界面.逻辑处理等与底部栏整合,学习Retrofit网络库. 永盛:更多 c ...