小牛翻译API详解:功能、优势介绍及案例实战(附完整代码)

news2024/11/25 10:27:54

    • 写在前面
    • 小牛翻译是做什么的
    • 案例-调用图片翻译API进行英文翻译
      • ✔准备工作
      • ✔获取密钥
      • ✔调用API
      • ✔完整代码
      • ✔运行项目
    • 使用建议


写在前面

随着全球化的快速发展和跨国交流的增多,翻译软件的市场需求持续增长。根据市场数据,全球语言翻译软件市场规模在过去几年中呈现稳步增长的趋势。拿有道翻译来说,有道翻译近一年的“翻译请求次数”已远超“查词请求次数”,达到 1600 亿次/年,由此可见用户对于翻译功能的使用频率之高。此外许多知名的翻译软件如 Google Translate、Microsoft Translator、百度翻译等,通过提供实时、准确的翻译服务均有着有庞大的用户基础。

除了这几个老牌翻译软件,最近我也新“探索”到了一款好用的翻译软件——小牛翻译,除了文本和文档翻译之外,图片翻译和语音翻译是它较为出众的地方。特别是近期新更新上线了 API 服务,新增扫描件 PDF 文件的翻译、新增图片、短语音多模态文件的翻译,更是翻译界的重大突破。

在这里插入图片描述

小牛翻译是做什么的

小牛翻译是一家专注于人工智能翻译技术研发与应用的公司,凭借强大的研发团队和先进的技术实力,小牛翻译在翻译领域取得了显著的成果,提供了全方位的翻译服务,包括文本翻译、语音翻译、图片翻译等。经过试用,我发现小牛翻译有着以下优势:

  • 准确:采用先进的机器学习和人工智能技术,具备强大的语义理解和翻译能力,能够准确理解原文含义,并生成高质量的翻译结果。
  • 实时:支持实时翻译,用户可以在输入文本或语音的同时立即获取翻译结果,大大提高了翻译效率。

在这里插入图片描述

  • 易用:拥有简洁明了的界面设计,用户无需复杂的操作即可轻松使用。同时,它还支持多种输入方式,如键盘输入、语音输入、图片输入等,满足不同用户的需求。

在这里插入图片描述

案例-调用图片翻译API进行英文翻译

本案例为:调用小牛翻译的图片翻译 API,翻译一张带有英文文章的图片。这个图片需要自己准备,如下;

在这里插入图片描述

✔准备工作

想要使用翻译 API 需要先注册账号并登录小牛翻译云平台;

随后页面右上角点击“控制台”进入控制台页面;

在这里插入图片描述
点击“API应用”,可以看到有文本 API、文档 API、语音 API、图片 API 四种供我们选择;

在这里插入图片描述
选择自己的业务需要进行开通即可。

✔获取密钥

密钥指的是 APIKEY 和 APPID,二者是调用 API 的前提,缺一不可;

点击“开通服务”,开通服务后即可查看密钥;

在这里插入图片描述
密钥信息如下;

在这里插入图片描述

✔调用API

获取到 APIKEY 和 APPID 之后,就可以进行开发了,在这里以使用 Python 语言为例;

设置小牛翻译 API 的基础 URL 以及密钥信息;

# 小牛翻译API的基础URL
BASE_URL = "https://api.niutrans.com/v2/image/translate"

# 你的API应用信息
app_id = "Ud317175911xxxxx"
api_key = "8f1147129b741d7bce9b1f4254bxxxxx"

设置所需要翻译的图片文件路径,我这里将图片放到了项目文件夹中;

# 图片文件路径
image_path = "微信图片_20240605224414.png"

源语言-英文(en),目标语言-中文(zh);

# 目标语言和源语言
from_lang = "en"  # 源语言
to_lang = "zh"  # 目标语言

设置时间戳;

# 当前时间戳
timestamp = str(int(time.time() * 1000))

在前置工作准备好之后,开始 API 的调用;

调用接口-上传并翻译文件;

在这里插入图片描述
代码如下;

# 上传并翻译文件
def upload_and_translate(image_path, from_lang, to_lang):
    # 准备上传的图片文件
    files = {'file': open(image_path, 'rb')}
    params = {
        'from': from_lang,
        'to': to_lang,
        'timestamp': timestamp,
        'appId': app_id,
    }

    # 生成权限字符串
    params['authStr'] = generate_auth_str(params)

    # 构造请求URL
    url = f"{BASE_URL}/upload"

    # 发送POST请求
    response = requests.post(url, files=files, data=params)

    # 关闭文件对象
    files['file'].close()

    # 返回响应内容
    return response.json()

其余接口如查询翻译状态、下载翻译结果等参见小牛翻译开发文档。文档详细的介绍了各接口 API 调用方式以及 Java、Python 等语言的调用示例,对于新开发的用户非常友好;

在这里插入图片描述

✔完整代码

import urllib

import requests
import json
import time
import hashlib
from urllib.parse import urlencode

# 小牛翻译API的基础URL
BASE_URL = "https://api.niutrans.com/v2/image/translate"

# 你的API应用信息
app_id = "Ud317175911xxxxx"
api_key = "8f1147129b741d7bce9b1f4254bxxxxx"

# 图片文件路径
image_path = "微信图片_20240605224414.png"

# 目标语言和源语言
from_lang = "en"  # 源语言
to_lang = "zh"  # 目标语言

# 当前时间戳
timestamp = str(int(time.time() * 1000))


# 权限字符串生成规则
def generate_auth_str(params):
    sorted_params = sorted(list(params.items()) + [('apikey', api_key)], key=lambda x: x[0])
    param_str = '&'.join([f'{key}={value}' for key, value in sorted_params])
    md5 = hashlib.md5()
    md5.update(param_str.encode('utf-8'))
    auth_str = md5.hexdigest()
    return auth_str


# 上传并翻译文件
def upload_and_translate(image_path, from_lang, to_lang):
    # 准备上传的图片文件
    files = {'file': open(image_path, 'rb')}
    params = {
        'from': from_lang,
        'to': to_lang,
        'timestamp': timestamp,
        'appId': app_id,
    }

    # 生成权限字符串
    params['authStr'] = generate_auth_str(params)

    # 构造请求URL
    url = f"{BASE_URL}/upload"

    # 发送POST请求
    response = requests.post(url, files=files, data=params)

    # 关闭文件对象
    files['file'].close()

    # 返回响应内容
    return response.json()


# 查询翻译状态
def check_translation_status(file_no):
    params = {
        'timestamp': timestamp,
        'appId': app_id,
    }

    # 生成权限字符串
    params['authStr'] = generate_auth_str(params)

    # 构造请求URL
    url = f"{BASE_URL}/status/{file_no}"

    # 发送GET请求
    response = requests.get(url, params=params)

    # 返回响应内容
    return response.json()


# 下载翻译结果
def download_translation(file_no, download_type=1):
    params = {
        'type': 1,
        'timestamp': timestamp,
        'appId': app_id,
    }

    # 生成权限字符串
    params['authStr'] = generate_auth_str(params)

    # 构造请求URL
    url = f"{BASE_URL}/download/{file_no}"

    # 发送GET请求
    response = requests.get(url, params=params)

    # 返回二进制数据
    return response.headers.get("Content-Disposition").split("=")[1] ,response.content


# 使用示例
if __name__ == "__main__":
    # 上传并翻译图片
    response = upload_and_translate(image_path, from_lang, to_lang)
    time.sleep(5)
    file_no = response['data']['fileNo']
    print("图片上传成功,文件编号为:", file_no)
    # 轮询查询翻译状态
    while True:
        status_response = check_translation_status(file_no)
        print("正在查询结果...")
        if status_response['data']['transStatus'] == 105:
            print("翻译成功")
            break
        time.sleep(5)  # 等待5秒再次查询

    # 下载翻译结果
    filename, translation_content = download_translation(file_no)
    print("正在下载翻译结果...")
    # 对filename进行url_decode解码
    filename = urllib.parse.unquote(filename)
    time.sleep(5)
    with open(filename, "wb") as f:
        f.write(translation_content)

    print("翻译结果已下载")

✔运行项目

开发完成后运行项目;

在这里插入图片描述
运行成功之后会下载翻译结果,是 Word 文档的形式下载至项目文件夹,结果如下:

在这里插入图片描述
至此整个案例就完成了。

使用建议

小牛翻译的出现提高了翻译的准确性和效率,降低了翻译成本,使得更多的个人和企业能够享受到高质量的翻译服务。对于个人而言,小牛翻译能够帮助我们更好进行翻译,满足我们的各项业务;对于企业而言,支持超 30 款定制专属机器翻译服务部署于企业内部服务器中,数据安全性极高,拓展性更优。

更多信息可关注小牛翻译的官方动态和更新信息(http://niutrans.com),及时获取最新的功能和优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1797419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

红海边的这座城,如何点亮人类可持续发展之梦

导读:造一座100%清洁能源供电的城市? 城市是人类最伟大的成就之一,数千年来城市承载了人类文明的跃迁。21世纪,在人类追求可持续发展的蓝图中,城市有了新的使命。 容纳全球50%以上人口,但碳排放量超过70%的…

无线:wireless

第一节:无线链路和网络特征 无线链路特征 与有线链路的重要差别表现在: 衰减的信号强度:decreased signal strength来自其他信号源的干扰:interference from other sources多路径传输:multipath propagation&#xf…

Linux-vi编辑器命令使用

一、初始-vi 1、 vi-打开文件并且定位行 有可能会遇到打开一个文件,并定位到指定行的情况 例如,知道某一行代码有错误,可以快速定位到出错代码的位置 可以使用以下命令打开文件$ vi 文件名 行数 提示:如果只带上 而不指定行号&…

Python离线查询IP地址对应的国家和城市

使用场景: 在没网的情况下使用python代码实现对ip地址进行查询国家和地市 代码实现: 需要安装 pip install geoip2 库 import geoip2.databasedef get_location_by_ip(ip_address, db_path):reader geoip2.database.Reader(db_path)try:response r…

[网络基础]——计算机网络(OSI)参考模型 详解

🏡作者主页:点击! 🌐网络通信基础TCP/IP专栏:点击! ⏰️创作时间:2024年6月2日21点59分 🀄️文章质量:93分 目录 🎟️OSI基本概念 🎄分层架构…

基于jeecgboot-vue3的Flowable流程-已办任务(一)

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。 1、api接口部分 import { defHttp } from //utils/http/axios;enum Api {flowRecord /flowable/task/flowRecord,finishedListNew /flowable/task/finishedListNew,revokeProcess /flo…

LeetCode---二叉树

144/94/145. 二叉树的前、中、后序的递归遍历 以中序遍历为例,其余类似: 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 代码示例: /*** Definition for a binary tree node.* struct TreeNode {* int val;* Tr…

Hive的常规操作

Hive常规操作 hive常用交互命令 -e执行sql语句 [rootmaster ~]# hive -e "show databases";-f执行sql脚本 [rootmaster ~]# hive -f /usr/local/demo.sql查看hive中输入的所有命令 [rootmaster ~]# cat ~/.hivehistory操作库 创建库 语法: create…

kafka-集群-主题创建

文章目录 1、集群主题创建1.1、查看 efak1.2、创建 主题 my_topic1 并建立6个分区并给每个分区建立3个副本1.2.1、查看 my_topic1 的详细信息 1.3、停止 kafka-01实例,端口号为 9095 1、集群主题创建 1.1、查看 efak 已经有三个kafka实例 1.2、创建 主题 my_topic1…

数据分析中的统计学基础及Python具体实现【数据分析】

各位大佬好 ,这里是阿川的博客,祝您变得更强 个人主页:在线OJ的阿川 大佬的支持和鼓励,将是我成长路上最大的动力 阿川水平有限,如有错误,欢迎大佬指正 Python 初阶 Python–语言基础与由来介绍 Python–…

Java项目如何外发告警日志到企业微信

前言 最近领导交代了一个需求,就是有些许客户不单单满足平台告警日志外发到邮箱、短信的形式,还要以消息聊天的形式外发给企业微信。 具体操作 1、注册企业微信。 2、登录企业微信,找到应用管理,创建应用。 3、创建完之后需要记录以下图片中两个值的信息。 4、然后记录下…

什么是MES系统?有什么作用?

MES系统解决方案是专门针对制造企业设计,在MES系统的应用下,实现专业的工厂、车间生产信息化管理方案,帮助制造企业提高生产效率。针对目前制造行业的生产管理状况,以及提升企业生产效率和企业竞争力的需求,实施MES系统…

SpringCloud Hystrix服务熔断实例总结

SpringCloud Hystrix断路器-服务熔断与降级和HystrixDashboard SpringCloud Hystrix服务降级实例总结 本文采用版本为Hoxton.SR1系列&#xff0c;SpringBoot为2.2.2.RELEASE <dependency><groupId>org.springframework.cloud</groupId><artifactId>s…

Java Web学习笔记14——BOM对象

BOM&#xff1a; 概念&#xff1a;浏览器对象模型&#xff08;Browser Object Model&#xff09;&#xff0c;允许JavaScript与浏览器对话&#xff0c;JavaScript将浏览器的各个组成部分封装为对象。 组成&#xff1a; Window&#xff1a;浏览器窗口对象 介绍&#xff1a;浏览…

Android Graphics 显示系统 - Android Jank detection with FrameTimeline

“ 最近有公司同事在处理UI卡顿及FPS自动化监测的问题&#xff0c;我也顺便看了一点相关的内容&#xff0c;其中在Perfetto的官方说明文档中有一篇关于利用FrameTimeLine进行Jank监测的解读&#xff0c;个人觉得蛮有意思的&#xff0c;借助工具翻译该篇文章并加上本人拙劣的解读…

Java 数据库连接(JDBC)的使用,包括连接数据库、执行SQL语句等

一、简介 Java Database Connectivity&#xff08;JDBC&#xff09;是Java应用程序与关系数据库进行交互的一种API。它提供了一组用于访问和操作数据库的标准接口&#xff0c;使开发人员能够使用Java代码执行数据库操作&#xff0c;如查询、插入、更新和删除等。 二、JDBC架构…

红酒保存中的软木塞与瓶身保护

云仓酒庄雷盛红酒&#xff0c;以其卓着的品质和精美的包装赢得了众多消费者的喜爱。在红酒的保存过程中&#xff0c;软木塞与瓶身保护是至关重要的环节。本文将深入探讨这两方面的问题&#xff0c;以帮助消费者更好地理解和欣赏云仓酒庄雷盛红酒。 首先&#xff0c;我们来谈谈软…

关于调用百度AI开放平台短文本在线合成API接口 Open api characters limit reached 问题

官方示例代码中心&#xff1a; https://console.bce.baidu.com/support/?_1668482508529#/api?productAI&project语音技术&parent语音合成&apitext2audio&methodpost 一、调试时&#xff0c;若提示 16: Open api characters limit reached&#xff08;{"…

《维汉翻译通》App全新升级:维吾尔语短文本翻译、汉语拼音标注、维语词典、谚语格言名句等功能统统免费!还支持维吾尔文OCR识别提取文字!

2024年《维汉翻译通》App迎来重大更新&#xff01;这次升级不仅带来了全新的功能&#xff0c;还为所有用户提供了更加便捷的服务体验。以下是我们新版本的主要亮点&#xff1a; 维语短文本翻译免费啦&#xff01; 我们深知语言是沟通的桥梁&#xff0c;为了让更多人能够跨越语…

Python 短文本匹配,短文本语义相似度,基于大模型的短文本匹配,基于LLMs的短文本语义相似度识别,短文本语义扩充和匹配

1.任务描述 之前在做疾病相似度匹配的时候&#xff0c;堪称史诗级难题&#xff0c;虽然最后加上规则以及一些nlp模型&#xff0c;取得了差强人意的效果&#xff0c;但是短文本的语义相似度匹配一直属于比较难以攻克的难题 2.思路 随着近年大模型的飞速发展&#xff0c;就之前…