调用百度云API机器翻译

新建Python文件,叫

复制代码
text_translator.py

输入

复制代码
import requests
import json

API_KEY = "glYiYVF2dSc7EQ8n78VDRCpa"  # 替换为自己的API Key
SECRET_KEY = "kUlhze8OQZ7xbVRp"  # 替换为自己的Secret Key


def main():
    # 选择翻译方向
    while True:
        direction = input("请选择翻译方向(输入1: 中译英,输入2: 英译中):").strip()
        if direction == '1':
            from_lang, to_lang = 'zh', 'en'
            break
        elif direction == '2':
            from_lang, to_lang = 'en', 'zh'
            break
        else:
            print("输入错误,请重新输入!")

    # 输入待翻译文本(支持多行输入)
    print("\n请输入需要翻译的文本(输入完成后请输入'END'并回车):")
    text_lines = []
    while True:
        line = input()
        if line.strip().upper() == 'END':
            break
        text_lines.append(line)
    original_text = '\n'.join(text_lines)

    if not original_text.strip():
        print("错误:输入的文本不能为空!")
        return

    # 调用翻译API
    try:
        url = f"https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token={get_access_token()}"

        payload = json.dumps({
            "from": from_lang,
            "to": to_lang,
            "q": original_text
        }, ensure_ascii=False)

        headers = {
            'Content-Type': 'application/json',
            'Accept': 'application/json'
        }

        response = requests.post(url, headers=headers, data=payload.encode('utf-8'))
        response.raise_for_status()  # 检查HTTP状态码是否正常

        result = response.json()
        if 'error_code' in result:
            print(f"\n翻译失败!错误码:{result['error_code']},错误信息:{result['error_msg']}")
        else:
            translated_text = result['result']['trans_result'][0]['dst']
            print("\n翻译结果:")
            print(translated_text)

    except requests.exceptions.RequestException as e:
        print(f"\n网络请求异常:{str(e)}")
    except KeyError as e:
        print(f"\n解析结果失败,可能API返回格式变化:{str(e)}")
    except Exception as e:
        print(f"\n发生未知错误:{str(e)}")


def get_access_token():
    """获取API访问凭证"""
    url = "https://aip.baidubce.com/oauth/2.0/token"
    params = {
        "grant_type": "client_credentials",
        "client_id": API_KEY,
        "client_secret": SECRET_KEY
    }
    try:
        response = requests.post(url, params=params)
        response.raise_for_status()
        return response.json().get("access_token")
    except Exception as e:
        print(f"获取access_token失败:{str(e)}")
        return None


if __name__ == '__main__':
    main()

运行结果如图

相关推荐
Joecien11 天前
qwen-mt-uni 多模态翻译实战:从接入到四类输入的完整步骤
人工智能·自然语言处理·机器翻译
AI_Cloud_推荐14 天前
DeepSeek-V4-Pro 的 4.5 和 12:不是加价,是同名不同版本
阿里云·语言模型·代理模式·ai编程·百度云
打工仔折腾 AI17 天前
260+异构同步链路实战:如何用语义化自动翻译破解CDC DDL同步痛点
人工智能·后端·python·自然语言处理·性能优化·langchain·机器翻译
哈__18 天前
260+异构同步链路:DDL语法自动翻译在大规模数据同步中的实现原理
人工智能·自然语言处理·机器翻译
Evanfu021622 天前
整部短剧文件怎么管理:目录、命名与版本规则
aigc·音视频·视频·机器翻译·自动翻译
Evanfu021622 天前
短剧硬字幕如何批量 OCR:从字幕区到整剧校对
aigc·音视频·视频·机器翻译·自动翻译
Evanfu021622 天前
AI 短剧出海前要检查哪些版权、肖像和声音权利?
自然语言处理·aigc·音视频·视频·机器翻译·自动翻译
jeffsonfu1 个月前
序列到序列(Seq2Seq)模型:机器翻译背后的核心技术
人工智能·自然语言处理·机器翻译
Evanfu02162 个月前
商业短剧上传 AI 工具前,要检查哪些安全与删除规则?
自然语言处理·aigc·音视频·视频·机器翻译·自动翻译
SamChan902 个月前
Python 处理小语种 PDF 的编码坑:重音字符、连字与 (cid:xx) 乱码的解决方案
python·ai·pdf·机器翻译