function runAsyncTTS(text,speecher,audiopath) {
var def = jQuery.Deferred();
var args = {"SynthText": text, "VoiceSpeecher": speecher, "WordSpeed": "3", "UseCSSML": "0", "AudioPath": audiopath}; tts.asyncTTS(JSON.stringify(args),function(err,result) {
def.resolve(result);
}); return def.promise();
}
function textToSpeechBat(metaJson, speecher, audioPath) {
var def = $.Deferred();
var result = {originalWords:"", resultJsonArr:[]};
var jsons="";
for(var index=0;index < metaJson.words.length;index++) {
var audioName = metaJson.words[index]['audio'];
audioName = audioName.replace('.mp3','');
var audioFile = audioPath +"/" + audioName + '.wav';
var args = '{"SynthText": "'+metaJson.words[index]['word']+'", "VoiceSpeecher": "'+speecher+'", "WordSpeed": "3", "UseCSSML": "0", "AudioPath": "'+audioFile+'"}';
jsons += args + "|";
}
jsons = jsons.substr(0,jsons.length-1);
tts.asyncTTSBat(jsons,function(err,ret) {
result['resultJsonArr'] = ret.split('|');
def.resolve(result);
});
return def.promise();
}
function textToSpeechWithTryTimes(metaJson, speecher, audioPath,times) {
var def = $.Deferred();
var ttsRet = null;
var ttsCallBack = function(index) {
if(index < times) {
textToSpeechBat(metaJson,speecher,audioPath).done(function (ret) {
console.log("textToSpeechWithTryTimes:"+JSON.stringify(ret));
ttsRet = ret;
var resultJsonArr = ret.resultJsonArr;
var audioFlag = true;
for(var i=0;i<resultJsonArr.length;i++) {
if(resultJsonArr[i] == "") {
audioFlag = false;
break;
}
var retObj = JSON.parse(resultJsonArr[i]);
console.log(retObj['audioFlag']);
if(retObj['audioFlag'] == 'false' || retObj['result']=="") {
audioFlag = false;
break;
}
}
console.log(audioFlag);
if(audioFlag == false) {
console.log("textToSpeechWithTryTimes Fail, try again!");
ttsCallBack(++index);
}else {
console.log("textToSpeechWithTryTimes succeed,return");
def.resolve(ret);
}
});
} if(index == times) {
console.log("textToSpeechWithTryTimes timesover,return");
def.resolve(ttsRet);
}
}; ttsCallBack(0);
return def.promise();
}

最新文章

  1. go 常用包
  2. JVM 1.6 GC
  3. zw版【转发&#183;台湾nvp系列Delphi例程】HALCON BinThreshold
  4. makefile实例(3)-多个文件实例优化
  5. PhotoShop—剪贴蒙版
  6. Java反射和动态代理
  7. Java程序的成长之路
  8. 内存快照排查OOM,加密时错误方法指定provider方式错误引起的OOM
  9. Uva 12171 Sculpture - 离散化 + floodfill
  10. R语言︱画图
  11. Jetty入门(1-3)Eclipse集成gradle-Gretty插件或maven-jetty插件运行应用
  12. 痞子衡嵌入式:PCM编码与Waveform音频文件(.wav)格式详解
  13. iOS CALayer 绘图模糊有锯齿的解决方案
  14. 第17月第28天 python yield
  15. Asp.NET调用有道翻译API
  16. GDI+编程(画笔/画刷/路径/区域)
  17. asp.net性能优化之使用Redis缓存(入门)
  18. Mybatis generator 自动生成代码
  19. 九、创建Slave节点
  20. SceneBuilder 打不开 .fxml文件,只在任务栏显示

热门文章

  1. php获取请求的方式(get/post)
  2. 【NOIP 2014 DAY1 T3】飞扬的小鸟(DP)
  3. 基于ASP.NET的comet简单实现 http长连接,IAsyncResult
  4. ThinkPHP3.2.3验证码显示、刷新、校验
  5. JDK版本更换后编译android系统出错
  6. Visual Studio中一个解决方案设置多个启动项目
  7. LFS 中文版手册发布:如何打造自己的 Linux 发行版
  8. EasyUI中datagrid的行编辑模式中,找到特定的Editor,并为其添加事件
  9. memcached实例(enyim.com Memcached Client)
  10. [Buffalo]ASP.NET MVC路由映射