关于baidu语音的调用

翻阅大量网页时学到的知识,现在再找原有借鉴出处,一时没能找到,如原作者看到,可提醒我增加转载出处。

百度语音

具体内容可以参考[http://ai.baidu.com/tech/speech/tts]
其中提到了php的API
大致如下:
语音合成 PHP SDK目录结构

├── AipSpeech.php             //语音合成
└── lib
    ├── AipHttpClient.php        //内部http请求类
    ├── AipBCEUtil.php           //内部工具类
    └── AipBase                  //Aip基类

参考如下代码新建一个AipSpeech:

require_once 'AipSpeech.php';

// 你的 APPID AK SK
const APP_ID = '你的 App ID';
const API_KEY = '你的 Api Key';
const SECRET_KEY = '你的 Secret Key';

$client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY);

在上面代码中,常量APP_ID在百度云控制台中创建,常量API_KEY与SECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。
合成文本长度必须小于1024字节,如果本文长度较长,可以采用多次请求的方式。文本长度不可超过限制

举例:

要把一段文字合成为语音文件:

$result = $client->synthesis('你好百度', 'zh', 1, array(
    'vol' => 5,
));

// 识别正确返回语音二进制 错误则返回json 参照下面错误码
if(!is_array($result)){
    file_put_contents('audio.mp3', $result);
}
// 成功返回二进制文件
// 失败返回
{
    "err_no":500,
    "err_msg":"notsupport.",
    "sn":"abcdefgh",
    "idx":1
}

例如[http://ai.baidu.com/tech/speech/tts]

下面是自制作的百度语音

运用了https://tts.baidu.com/text2audio?cuid=baiduid&lan=zh&ctp=1&pdt=311&spd=6&tex=???这个长地址
具体如下:

<div>
baidu 朗读
<p id="dd">使用技巧会让人变的越来越懒,希望你懒出境界</p>
    <button class="test">朗读</button>

    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
    <script type="text/javascript">
        (function($){  //程序封装
            $.fn.text2audio = function(options){
                var defaults = {
                    text: '测试',
                    id: Math.random()*1000
                };

                var option = $.extend(defaults, options);
                var api = 'https://tts.baidu.com/text2audio?cuid=baiduid&lan=zh&ctp=1&pdt=311&spd=6&tex=' + option.text;
                var audio = null;

                init();

                //初始化
                function init(){
                    audio = $('<audio></audio>');
                    $(audio).attr('id',option.id);
                    $(audio).attr('src',api+option.text);
                    $('body').append(audio);
                }

                //点击事件
                $(this).click(function(e){
                    var a = document.getElementById(option.id);
                    a.paused ? a.play() : a.pause();
                });
            };

        })(jQuery);

        //点击后发声
        $('.test').text2audio({
            text: $('#dd').text()
        });
    </script>

</div>

可以试下

已有 3 条评论
  1. 森纯博客

    涨姿势了

    森纯博客 November 29th, 2018 at 08:46 pm回复
    1. logofun

      谢谢啊,有很多文章内容来源于网络高手的原文,一直在学习中

      logofun December 3rd, 2018 at 09:52 am回复
  2. 108号

    这个东西对网页应该没有很大的用处吧

    108号 November 29th, 2018 at 01:09 pm回复
发表新评论
Gravatar图片显示区