2017-04-05

我毕设合成效果不好。

老师让我再找找tts的

我原先使用的是微软的

我的电脑只有女生版本的。

目前要用百度语音的--设想阶段。

不知道会不会成功。

百度那边是安卓和ios还有在线rest spi

前两者我没有接触过。目前瞄准rest  spi

根据html的请求。matab 中有urlread()函数

我没有使用过,所以对于我来说是试验阶段。

其实一开始我是想通过网络编程socket获取的。

但是关于html的协议等内容我目前没有写过。

而且我看那边也没有写明端口等格式信息。

--试验阶段。若成功或许提供部分参考代码

2017-=04-06

目前百度的文档页面http://yuyin.baidu.com/docs/tts/136

--当前阶段成功获得tok值

--传英文获得数据串,但是存在被urlread 转换为UTF-8造成数据丢失的问题

--传汉字还没有成功,urlencode('清')),当前使用的代理服务器,请求失败。需要没有使用代理服务器再进行设置。

--由于数据是二进制,想采用latin1  http://www.cp1252.com/  代替UTF-8,试验中--简单加到Value里面失败,有志者可以尝试修改

合成成功

主要代码用于我的毕设中,部分代码注释整理以后在整合出来贴于次博客。最晚周末整一下。

xjy='你好'

URL='http://tsn.baidu.com/text2audio';
Name='get';
Value={
      'tex',urlencode(xjy),...
      'lan','zh',...
       'cuid','AC-16-2D-52-BA-27',...
       'ctp','1',...
       'tok',tok,...
       'per',num2str(girl)};

[fullfilepath,status] = urlwrite(URL,'aa.mp3',Name,Value);

20200429 跟新一下最终版本 ,保持和毕设的那篇博文一致


function [y,fs2] = lrcttsV3(words,choice)
%lrxtts
%文语转换,需要联网使用,毕设中采用16000Hz,choice可使用0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫
%输入
%   words 字符串'待转换字'
%   support by 百度REST API
%注释:代码中用于获取tok利用我在百度语音申请的api key和secret key。时间就了百度改版或我取消应用将不能使用过
%designed by Xu__Jiayu
%%
%0为女声,1为男声,3为情感合成-度逍遥,4为情感合成-度丫丫
%默认参数
y=[];
words2=[];
%fs2=16000;%百度目前提供的只有16000Hz和8000Hz --20170406
girl=0;%根据百度rest设置
%khz='k44';
%%
%输入参数重置
if nargin>0words2=words;
end
%{
if nargin>1&&~isempty(fs)&&ismember(fs,[8000 16000]);fs2=fs;%khz=sprintf('k%i',fix(fs/1000));  ismember(fs,[11025 12000 16000 22050 24000 32000 44100 48000]);
end
%}
if nargin>1&&~isempty(choice)&&ismember(choice,[1,3,4]);girl=choice;
end
%%[tokt,stat]=gettok;if 1==stattok=tokt;elsetok='24.a702efee9c534e4cad0723332a6d76ed.2592000.1493996778.282335-9481503';end
%http://tsn.baidu.com/text2audio?tok=24.a702efee9c534e4cad0723332a6d76ed.2592000.1493996778.282335-9481503&tex=清&lan=zh&cuid=AC-16-2D-52-3A-27&ctp=1&[filepath,status]=getfile(words2,girl,tok);if status[y,fs2]=lrcreadwav(filepath);end
%{
[vadgate,~]=vadsohn(y3,fs2);
index=find(vadgate);%有生部分
x= y3(index(1):index(end),1); %   Make sure it is a comum vector.取单声道
%}
%sound(x,fs2); % Playback sound播放
%%
%outend
function [filepath,status]=getfile(words2,girl,tok)
URL='http://tsn.baidu.com/text2audio';
Name='get';
Value={'tex',char(java.net.URLEncoder.encode(words2,'UTF-8')),...'lan','zh',...'cuid','AC-16-2D-52-3A-27',...'ctp','1',...'tok',tok,...'spd','5',...%语速0-9'pit','7',...%音调0-9'vol','9',...%音量0-9'per',num2str(girl)};%角色0,1,3,4[filepath,status] = urlwrite(URL,'UI.mp3',Name,Value);if(isempty(filepath)||0==status)disp('请求音频失败');err= MException('MATLAB:rmpath:DirNotFound','%s没联网','lrcttsV3.m');throw(err);elsestatus=1;disp('请求成功');end
end
function  [tok,stat]=gettok
%get tok
%联系百度帐号 xujiayuxjy
%App ID: 9481503
%API Key: OWhu33XDY3iBKhPrwBiq8sro
%Secret Key: fe8c59147f5a1fde9a8067b6fde07db7
%利用post请求方式,获取百度自己内置的access_token。
%这个一段时间access_token百度内部数据库就会更新。因此采用随用随获取。如果要更细致减少使用许另外设置参数判断是否更新
%via by Xu__Jiayu
tok=[];
stat=0;
URL='https://openapi.baidu.com/oauth/2.0/token';
Name='post';%请求数据不在url出的post请求方法
requestHead={'grant_type','client_credentials',...'client_id','OWhu33XDY3iBKhPrwBiq8sro',...'client_secret','fe8c59147f5a1fde9a8067b6fde07db7'};[tok,status]= urlread(URL,Name,requestHead);if(1==status)if isempty(strfind(tok,'access_token'))disp('请求成功,但是没有获取到tok');else stat=1;index=strfind(tok,'"');if length(index)>3tok=tok(index(3)+1:index(4)-1);%根据当前百度设置的json格式,简单获取需要的tokendendelse disp('请求失败');end
end
%%
%编写试验代码中使用过的函数
%[status,cmdout] = dos('getmac');
%currentCharacterEncoding = slCharacterEncoding()
%[str,status]= urlread(URL,Name,Value);%[f,status] = urlwrite(url,filename,varargin)
%bytes=unicode2native(words2, 'UTF-8');%由获得utf-8的字节编码
%words=dec2hex(bytes);
%words=native2unicode(bytes, 'UTF-8');
%urlencode(urlIn)
%d = hex2dec()
%fid=fopen('p.mp3','wb');
%fprintf(fid,'%c',str-0);
%fclose(fid);
%bytes=unicode2native(str,'UTF-8');%由获得utf-8的字节编码
%{
Value={'tex',urlencode(words2),...'lan','zh',...'cuid','AC-16-2D-52-3A-27',...'ctp','1',...'tok',tok,...'spd','4',...%语速0-9'pit','5',...%音调0-9'vol','9',...%音量0-9'per',num2str(girl)};%角色0,1,3,4edit urlencode
java.net.URLEncoder.encode('好','UTF-8')ans =%E5%A5%BDget(ans)Bytes: [9x1 int8]Class: [1x1 java.lang.Class]Empty: 0get(ans,'Bytes')%}

matlab_tts更改为在线获取百度语音合成相关推荐

  1. 在线获取百度BDUSS源码 支持5种登录方式

    简介: 这个是模拟百度登录获取BDUSS的源码,更新总共5种获取方式,分别是普通登录.扫码登录.短信验证码登录和第三方登录(包括QQ登录和微信登录),可无视异地和登录保护. 网盘下载地址: http: ...

  2. 微信小程序之获取百度语音合成

    后台Java 代码 public void request_baidu_tts_token(HttpServletRequest request, HttpServletResponse respon ...

  3. Android 百度语音合成 (含离线、在线、API合成方式,详细步骤+源码)

    百度语音合成 声明 前言 正文 一.创建项目 二.离线语音合成 1. 配置AndroidManifest.xml 2. 配置SDK 3. 离线SDK初始化 4. 导包 5. 运行 三.在线语音合成 - ...

  4. PHP在线文字转语音合成源码 基于百度API开发

    介绍: PHP在线文字转语音合成源码 基于百度API开发 网盘下载地址: https://zijiewangpan.com/zCErg2PByjO 图片:

  5. 微信小程序集成 “百度语音合成” 功能

    文章目录 1.成为百度AI开放平台的开发者 2.领取免费额度 3.在微信小程序中使用 4.java中使用 百度AI开发平台文档:https://ai.baidu.com/ai-doc/SPEECH/j ...

  6. 百度语音合成(Android简单实现)

    1 简介 百度开发文档 https://ai.baidu.com/docs#/TTS-Android-SDK/top 本文实现了1种离线语言合成和多种在线语音合成. 百度语音合成需要经过以下几个步骤, ...

  7. 百度语音合成(TTS) 在Android的使用方法

    百度语音合成(TTS) 在Android的使用方法 标签: android语音合成 2016-07-29 16:41 640人阅读 评论(2) 收藏 举报  分类: 语音识别 Android(3)  ...

  8. Python 技术篇-百度语音合成API接口调用演示

    百度语音合成api文档 现在演示的是调用百度语音合成,然后再转化为本地 mp3 的内容. 重要:tok 参数的获取请看上一篇文章: Python 技术篇-百度语音API鉴权认证获取Access Tok ...

  9. Python制作专属有声小说(调用百度语音合成接口)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:merlin& 这一次的目标是使用百度云的人工智能接口,实现 ...

最新文章

  1. 5.1 指针与地址 (C)
  2. 关于Unity的协程
  3. 限制网速 制造测试条件
  4. php 判断是否文件,利用PHP判断文件是否为图片的方法总结
  5. #if, #ifdef, #ifndef, #else, #elif, #endif的用法
  6. java并发编程——线程池的工作原理与源码解读
  7. Apple Notification Center Service--ANCS【转】
  8. Shell——流程控制
  9. 机器学习爬大树之决策树(ID3,C4.5)
  10. Java拦截器验证失败时返回Json格式数据
  11. html中如何写平方根等,平方根一定是整数吗
  12. PAT乙级1055 集体照
  13. 图解CSS3 读书笔记——边框
  14. 电路中电容和电感的作用
  15. spring和jump区别_JUMP与 SKIP 的区别
  16. idea 的Igonre 设置
  17. 瑞星客户端卸载操作手册
  18. DoubanFm之设计模式(一)
  19. springboot+服装销售管理系统的设计与实现 毕业设计-附源码221801
  20. LR----乱码转换格式---乱码转换成UTF-8

热门文章

  1. http://p.codekk.com/
  2. 由蜜罐引发的物联网安全小谈
  3. 知乎上关于倒金字塔体的一片文章
  4. 安卓Service组件使用系列2:使用Service下载网络图片并存储于sdCard卡上
  5. 芯片精灵 测优盘主控 量产
  6. pyqt5+opencv-python打开摄像头(已实现)
  7. 亚洲诚信助力看雪安全开发者峰会
  8. kubernetes之CronJob介绍
  9. PHP规范之PSR规范
  10. Solr 7 - 多字段查询及 PHP 调用篇