百度翻译API接口调用

http://fanyi-api.baidu.com/api/trans/product/index

 

<?php
/**
 * @Author: 飛天
 * @Date:   2017-07-01 11:19:07
 * @Last Modified by:   飛天
 * @Last Modified time: 2017-07-01 15:26:11
 */
define("CURL_TIMEOUT",   10); 
define("URL",            "http://api.fanyi.baidu.com/api/trans/vip/translate"); 
define("APP_ID",         "201707010****061077"); //替换为您的APPID
define("SEC_KEY",        "3i2IMfybG7****uFKNGcErUD");//替换为您的密钥


/**
 * @param $query
 * @param $from
 * @param $to
 * @return array|bool|mix|mixed|stdClass|string
 */


//待翻译文本

$text = "尊敬的各位领导、各位来宾、各位合作伙伴,我非常高兴能够参加今天的世界智能大会。特别是刚才的天津宣言,3条共15项建议,我觉得都说到我们心坎里面去了。下面我就想跟大家分享一下科大讯飞对于人工智能技术进展现状的理解,以及我们认为在哪些领域人工智能正在深刻地改变我们当前的世界。今年是人工智能概念提出的第61年,前面张院士也都提到了,人工智能正在进入第三次浪潮。很多人说在前两次浪潮都有浪潮之巅,最后经历大潮破灭,那么第三次浪潮是真的大潮到来,还是有可能仍然是一个泡沫?确实,我们认为判断这件事情不能用一个预言家的角度去判断,也不是用科普作家的思维,而是真正的要看基数、看产品、看应用环境。人工智能时代确实已经到来了,现在要讨论的只是人工智能将在多大范围、多深的深度、多快的时间来改变这个世界。当今世界已从“互联网+”到达一个新的“人工智能+”的时代。人工智能其实有两个主要的实现路径,一个是通过生命科学、通过人类大脑的神经元的传导机制来判断,使得我们机器未来具备推理和学习的能力。我们不是让机器变的像人一样,而是要让机器具备像人一样的推理和学习的能力。
第二个路径就是基于数学建模的方法。这是1956年达特茅斯会议上一些数学家、计算机专家和通讯专家们提出的全新的方向。我们非常认可麻省理工将“强化学习”排在2017年十大突破技术榜单的第一位。强化学习,以深度学习为代表,包括卷积神经网络、递归神经网络等等,这些当前不需要再有更大的突破,就已经可以在一个又一个的领域改变世界的相关技术成果了。随着万物互联时代的到来,越来越多的设备没有屏幕了,越来越多的设备需要我们几米之外来操控它。比如说机器人,它必须在几米之外能够交互,能够随时打断。这种大趋势下,语音合成和识别已成为万物互联时代人机交互的最主要的方式。那么假如要机器说话,语音合成要达到何种水平?前天,2017年国际语音合成大赛竞赛结果公布,科大讯飞再获全球第一,而且比的还是英语。比赛分两个维度,一是自然度,5分是播音员的水平,4分是普通美国大学生的水平。科大讯飞的语音合成技术是唯一达到4分的,机器读英语跟人读一样自然,全世界第二名只有3.6分。二是系统全自动学习,即整个参数模型在没有任何的先验知识的前提下,通过深度学习自己去计算,科大讯飞依然是全球第一,这代表我们用在全世界几乎所有的语种都可以得到这个结果。";





$fy =translate($text,"auto","en");

echo "<pre>";
print_r($fy);
echo "</pre>";





//翻译入口
function translate($query, $from, $to)
{
    $args = array(
        'q' => $query,
        'appid' => APP_ID,
        'salt' => rand(10000,99999),
        'from' => $from,
        'to' => $to,

    );
    $args['sign'] = buildSign($query, APP_ID, $args['salt'], SEC_KEY);
    $ret = call(URL, $args);
    $ret = json_decode($ret, true);
    return $ret; 
}

//加密
function buildSign($query, $appID, $salt, $secKey)
{/*{{{*/
    $str = $appID . $query . $salt . $secKey;
    $ret = md5($str);
    return $ret;
}/*}}}*/

//发起网络请求
function call($url, $args=null, $method="post", $testflag = 0, $timeout = CURL_TIMEOUT, $headers=array())
{/*{{{*/
    $ret = false;
    $i = 0; 
    while($ret === false) 
    {
        if($i > 1)
            break;
        if($i > 0) 
        {
            sleep(1);
        }
        $ret = callOnce($url, $args, $method, false, $timeout, $headers);
        $i++;
    }
    return $ret;
}/*}}}*/

function callOnce($url, $args=null, $method="post", $withCookie = false, $timeout = CURL_TIMEOUT, $headers=array())
{/*{{{*/
    $ch = curl_init();
    if($method == "post") 
    {
        $data = convert($args);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_POST, 1);
    }
    else 
    {
        $data = convert($args);
        if($data) 
        {
            if(stripos($url, "?") > 0) 
            {
                $url .= "&$data";
            }
            else 
            {
                $url .= "?$data";
            }
        }
    }
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if(!empty($headers)) 
    {
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    }
    if($withCookie)
    {
        curl_setopt($ch, CURLOPT_COOKIEJAR, $_COOKIE);
    }
    $r = curl_exec($ch);
    curl_close($ch);
    return $r;
}/*}}}*/

function convert(&$args)
{/*{{{*/
    $data = '';
    if (is_array($args))
    {
        foreach ($args as $key=>$val)
        {
            if (is_array($val))
            {
                foreach ($val as $k=>$v)
                {
                    $data .= $key.'['.$k.']='.rawurlencode($v).'&';
                }
            }
            else
            {
                $data .="$key=".rawurlencode($val)."&";
            }
        }
        return trim($data, "&");
    }
    return $args;
}/*}}}*/

?>

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/yjft/blog/1097723

要使用百度翻译API,您需要先在百度翻译开放平台注册并创建一个应用程序,然后获取应用程序的APP ID和密钥。 接着,在Python中调用百度翻译API接口需要使用requests库,以下是一个示例代码: ```python import requests import json url = 'https://fanyi.baidu.com/v2transapi' app_id = 'your app id' secret_key = 'your secret key' def translate(text, from_lang, to_lang): data = { 'from': from_lang, 'to': to_lang, 'query': text, 'transtype': 'translang', 'simple_means_flag': '3', 'sign': '', 'token': '', } sign = app_id + text + str(1435660288) + secret_key sign = hashlib.md5(sign.encode()).hexdigest() data['sign'] = sign data['token'] = 'e8c37d1a59fdefa0e7e9e012c2261f48' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', 'Referer': 'https://fanyi.baidu.com/', 'Origin': 'https://fanyi.baidu.com', 'Host': 'fanyi.baidu.com', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'zh-CN,zh;q=0.8,en;q=0.6', 'Cookie': 'BAIDUID=your Baidu ID', } response = requests.post(url, headers=headers, data=data) content = json.loads(response.text) return content['trans_result']['data'][0]['dst'] ``` 在上面的代码中,您需要将“your app id”和“your secret key”替换为您自己的百度翻译应用程序的APP ID和密钥。还需要将“your Baidu ID”替换为您自己的百度ID。 然后,您可以调用“translate”函数并传递要翻译的文本,源语言和目标语言作为参数。例如: ```python text = 'Hello, World!' from_lang = 'en' to_lang = 'zh' translation = translate(text, from_lang, to_lang) print(translation) ``` 这将输出“你好,世界!”(Hello, World!的中文翻译)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值