aardio中使用百度文字转语音的api

功能: 调用百度云语音接口api,实现文字转语音

 

import win.ui;
/*DSG{{*/
mainForm = win.form(text="aardio form";right=253;bottom=381)
mainForm.add(
button={cls="button";text="合  成";left=27;top=290;right=158;bottom=329;z=3};
button2={cls="button";text="播放";left=183;top=295;right=242;bottom=324;z=8};
edit={cls="edit";text="1";left=142;top=346;right=188;bottom=371;edge=1;multiline=1;z=11};
edtTxt={cls="edit";left=9;top=8;right=244;bottom=181;autohscroll=false;edge=1;multiline=1;vscroll=1;z=2};
radiobutton={cls="radiobutton";text="标准男声";left=24;top=225;right=98;bottom=248;z=4};
radiobutton2={cls="radiobutton";text="标准女声";left=25;top=254;right=99;bottom=277;checked=1;z=5};
radiobutton3={cls="radiobutton";text="度逍遥";left=131;top=226;right=205;bottom=249;z=6};
radiobutton4={cls="radiobutton";text="度丫丫";left=132;top=256;right=206;bottom=279;z=7};
static={cls="static";text="语速";left=29;top=200;right=64;bottom=217;transparent=1;z=9};
static2={cls="static";text="输出文件名(*.mp3):";left=19;top=350;right=136;bottom=367;transparent=1;z=10};
trackbar={cls="trackbar";left=55;top=189;right=180;bottom=219;max=9;min=1;z=1}
)
/*}}*/
 
import inet.whttp
import web.json
import crypt.bin
var whttp = inet.whttp()
mainForm.button.oncommand = function(id,event){
    if(!#mainForm.edtTxt.text) return ;
    var text = mainForm.edtTxt.text
    var per = 3
    if(mainForm.radiobutton.checked) per = 2
    if(mainForm.radiobutton2.checked) per = 0
    if(mainForm.radiobutton4.checked) per = 4
     
    var rtn = whttp.post("https://cloud.baidu.com/aidemo","type=tns&spd="+mainForm.trackbar.pos+"&vol=9&per="+per+"&tex="+inet.url.encode(text))
    if(rtn){
        if(string.indexOf(rtn,'{"errno":0')){
            var tab = web.json.parse(rtn)
            if(tab && tab.data){
                tab = string.split(tab.data,",")
                if(#tab == 2){
                    string.save(#mainForm.edit.text?mainForm.edit.text+".mp3":"\temp.mp3",crypt.bin.decodeBase64(tab[2]) )
                    mainForm.msgbox("转换成功")
                    return ; 
                }
            }
        }
    }
    mainForm.msgbox("转换失败")
}
mainForm.edit.threadCallable()
mainForm.button2.oncommand = function(id,event){
    if(!io.exist(#mainForm.edit.text?mainForm.edit.text+".mp3":"\temp.mp3")) return ; 
    thread.invoke( 
        function(mainForm){
            import fsys.media
            var md = fsys.media(#mainForm.edit.text?mainForm.edit.text+".mp3":"\temp.mp3")
            md.play("wait")
            md.close()
        },
        mainForm
    )
}
mainForm.trackbar.setFrequency(2)
mainForm.trackbar.pos = 4
mainForm.enableDpiScaling();
mainForm.show();
return win.loopMessage();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值