FLUTTER接入百度TTSAPI

在百度智能云创建APP

创建后,进入应用,记录API Key和Secret Key

 

换取token

将,appSecret填入下连接后访问

https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=[apiKey]&client_secret=[appSecret]

从浏览器中获得

{
    "access_token":"2***************************0dea8d.2592000.1572349931.282335-17372344",
    "session_key":"9mzdDADp2k+oYi8R3oh+x56kzd1thqPSG81fNDMB4c6o5henMGXU6TAs4EQ0bMmLswUyx3N1seVQs8cOwz2nmKzy1GuOPw==",
    "scope":"audio_voice_assistant_get brain_enhanced_asr audio_tts_post public brain_all_scope picchain_test_picchain_api_scope wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test\u6743\u9650 vis-classify_flower lpq_\u5f00\u653e cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_\u5f00\u653eScope",
    "refresh_token":"25.3910b0cde4eedee7dd8a300fb2a2b7d4.315360000.1885117931.282335-17372344",
    "session_secret":"0db2e793a017afca407336b05d1fc66e",
    "expires_in":2592000
}

 

scope中含有audio_tts_post 表示有语音合成能力,没有该audio_tts_post 的token调用接口会返回502错误。

在结果中可以看见

"access_token":"2***************************0dea8d.2592000.1572349931.282335-173723448",

在2592000秒(30天)后过期。

 

访问合成接口

可用浏览器测试, 将要转换的文本和access_token填入下链接,转换文本要转utf-8,这里可以先用数字测试,具体转换见下一部分

http://tsn.baidu.com/text2audio?lan=zh&ctp=1&cuid=abcdxxx&tok=[access_token]&tex=[转语音文本]&vol=9&per=0&spd=5&pit=5&aue=3

其他参数如下表

上传参数:

参数可需描述
tex必填合成的文本,使用UTF-8编码。小于2048个中文字或者英文数字。(文本在百度服务器内转换为GBK后,长度必须小于4096字节)
tok必填开放平台获取到的开发者access_token(见上面的“鉴权认证机制”段落)
cuid必填用户唯一标识,用来计算UV值。建议填写能区分用户的机器 MAC 地址或 IMEI 码,长度为60字符以内
ctp必填客户端类型选择,web端填写固定值1
lan必填固定值zh。语言选择,目前只有中英文混合模式,填写固定值zh
spd选填语速,取值0-15,默认为5中语速
pit选填音调,取值0-15,默认为5中语调
vol选填音量,取值0-15,默认为5中音量
per(基础音库)选填度小宇=1,度小美=0,度逍遥=3,度丫丫=4
per(精品音库)选填度博文=106,度小童=110,度小萌=111,度米朵=103,度小娇=5
aue选填3为mp3格式(默认); 4为pcm-16k;5为pcm-8k;6为wav(内容同pcm-16k); 注意aue=4或者6是语音识别要求的格式,但是音频内容不是语音识别要求的自然人发音,所以识别效果会受影响。

Flutter urlencode转换

Uri.encodeComponent(url); // To encode url 

Uri.decodeComponent(encodedUrl); // To decode url

Flutter播放

添加audioplayer包

  AudioPlayer audioPlayer = new AudioPlayer();


  Future<void> play() async {
    await audioPlayer.play(kUrl_head+
        Uri.encodeComponent(_controller.text.toString() )
        + kUrl_tail);
    setState(() {
    });

调用Play即可播放

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值