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,aud Iopath). 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 (); }
JavaScript deferred and recursive number limits