C# 10分钟完成百度翻译(机器翻译)——入门篇
C# 10分钟完成百度翻译(机器翻译)——入门篇
- 1、注册百度账号api,创建自己的Api应用
- 2、创建vs控制台应用程序
- 3、编写程序并调试
- post请求工具类
- 文本翻译-通用版
- 文本翻译-词典版
- 总结
- 参考文献
我们之前基于百度ai开发平台实现了人脸识别 [1]、文字识别 [2]、语音识别 [3] 与合成的入门和进阶,今天我们来实现百度翻译的实现。
随着“一带一路”政策的开展,各种项目迎接而来,语言不通就成为了痛点。
作为开发人员,相信大家对于翻译不陌生吧,百度翻译,有道词典、谷歌翻译等等或多或少都用过(汉-英,汉-日,汉-俄等等)。
我们现在就基于百度Ai开放平台进行机器翻译,demo使用的是C#控制台应用程序,后续有需要的可以嫁接到指定项目中使用。
1、注册百度账号api,创建自己的Api应用
注册地址: https://login.bce.baidu.com/
注册登录之后,在“产品服务” 菜单下找到机器翻译 ,点击进入,如下图:
注意,这里我们需要先进行 领取免费资源 ,开发完成后根据后期需求决定是否进行付费操作,如下图所示:
领取后,创建我们的Api应用,如下图(主要是Api Key和Secret Key):
2、创建vs控制台应用程序
创建VS控制台应用程序,命名为TranslateProject。
.NET Framework/.NET Core的都可以,甚至于Web应用也行,因为这是Api操作。
3、编写程序并调试
post请求工具类
创建一个http请求接口帮助类(WebRequest方式API请求方式(Post/Get)),命名为 HttpTool(自定义命名),大家可以在网上找一个,或者用下面的:
/// <summary>/// post请求方式/// </summary>/// <param name="url">请求路径</param>/// <param name="parms">传入的值,格式为:{city:"上海",city2:"重庆"}</param>/// <param name="token"></param>/// <param name="ContentType"></param>/// <returns></returns>public string HttpPost(string url, string parms, string token,string ContentType= "application/json"){string result = string.Empty;try{if (url.StartsWith("https:")){//要调用https的API接口,一定要加这句ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;}Encoding encoding = Encoding.UTF8; //转译编码HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);//创建request.Method = "POST"; //post请求的一些标准参数配置request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";request.ContentType = ContentType;//自定义头部内容if (!string.IsNullOrEmpty(token)){request.Headers.Add(HttpRequestHeader.Authorization, token); //添加token}byte[] buffer = encoding.GetBytes(parms); //译编传入的值格式化为可识别request.ContentLength = buffer.Length; //post传值参数标配request.GetRequestStream().Write(buffer, 0, buffer.Length);HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //尝试获得要请求的URL的返回消息using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)){result = reader.ReadToEnd();}}catch (Exception ex){result = "";}return result;}
文本翻译-通用版
通用版API文档:https://cloud.baidu.com/doc/MT/s/4kqryjku9 [4]
直接看文档就可以了,我这里把代码展示一下,大家拷贝一下就可以执行。
如下代码和展示:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;namespace TranslateProject
{class Program{// 百度云中开通对应服务应用的 API Key 建议开通应用的时候多选服务(百度云应用的AK)private static String clientId = "qNldYXXtIr2pKBQsv242369Y";// 百度云中开通对应服务应用的 Secret Key(百度云应用的SK)private static String clientSecret = "L6gemOD3pM2PmafyQUBnXpCGEemk18mR";static void Main(string[] args){try{#region 文本翻译-通用版//获取Token:详细见 https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjhhustring TokenJson = getAccessToken();if (!string.IsNullOrEmpty(TokenJson)){AccessToken TokenEntity = JsonConvert.DeserializeObject<AccessToken>(TokenJson);if (!string.IsNullOrEmpty(TokenEntity.error)){if (TokenEntity.error == "invalid_client" && TokenEntity.error_description == "unknown client id")Console.WriteLine("API Key不正确");else if (TokenEntity.error == "invalid_client" && TokenEntity.error_description == "Client authentication failed")Console.WriteLine("Secret Key不正确");elseConsole.WriteLine("未知错误:获取Token失败");Console.ReadKey();return;}string URL = "https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token="+ TokenEntity.access_token;string q = "文本翻译是百度翻译依托领先的自然语言处理技术推出的在线文本翻译服务,可支持中、英、日、韩等200+语言互译,100+语种自动检测。";string parms = "{ \"q\":\"" + q + "\",\"from\":\"zh\",\"to\":\"en\"}"; //from:翻译源语言 to:翻译目标语言 q:请求翻译内容HttpTool httppost = new HttpTool();var strJson = httppost.HttpPost(URL, parms, "", "application/json;charset=utf-8");Console.WriteLine(strJson);Console.ReadKey();}#endregion}catch (Exception ex){Console.WriteLine("翻译失败:" + ex.Message);}}//调用getAccessToken()获取的 access_token建议根据expires_in 时间 设置缓存public static String getAccessToken(){try{String authHost = "https://aip.baidubce.com/oauth/2.0/token";HttpClient client = new HttpClient();List<KeyValuePair<String, String>> paraList = new List<KeyValuePair<string, string>>();paraList.Add(new KeyValuePair<string, string>("grant_type", "client_credentials"));paraList.Add(new KeyValuePair<string, string>("client_id", clientId));paraList.Add(new KeyValuePair<string, string>("client_secret", clientSecret));HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result;String result = response.Content.ReadAsStringAsync().Result;return result;}catch (Exception ex){return "";}}public class AccessToken{public string refresh_token { get; set; }public int expires_in { get; set; }public string scope { get; set; }public string session_key { get; set; }public string access_token { get; set; }public string session_secret { get; set; }public string error { get; set; }public string error_description { get; set; }}}
}
文本翻译-词典版
词典版API文档:https://cloud.baidu.com/doc/MT/s/nkqrzmbpc [5]
词典版和通用版大体相同,大家拷贝上面的更换一下请求的URL即可。
文本翻译-图片翻译
图片翻译API文档:https://cloud.baidu.com/doc/MT/s/mki483xpu [6]
这里就不贴代码了,大家点击api文档参照试试,自己做出来乐趣更高哦。
总结
看到这里就介绍了,是不是感觉很简单,就注册一个百度云平台的账号,创建相关的api key应用,
然后对照开发文档进行编写测试,放在项目中很容易移植,快去试试吧。
参考文献
[1].C# 10分钟完成百度人脸识别——入门篇
[2].C# 10分钟完成百度图片提取文字(文字识别)——入门篇
[3].C# 10分钟完成百度语音技术(语音识别与合成)——入门篇
[4].通用版Api文档
[5].词典版Api文档
[6].图片翻译
欢迎关注订阅微信公众号【熊泽有话说】,更多好玩易学知识等你来取
作者:熊泽-学习中的苦与乐
公众号:熊泽有话说
QQ群:711838388
出处1: https://www.cnblogs.com/xiongze520/p/15783801.html
出处2:https://blog.csdn.net/qq_35267585/article/details/122412656
您可以随意转载、摘录,但请在文章内注明作者和原文链接。
C# 10分钟完成百度翻译(机器翻译)——入门篇相关推荐
- C# 10分钟完成百度人脸识别——入门篇
今天我们来盘一盘人脸注册.人脸识别等相关操作,这是一个简单入门教程. 话不多说,我们进入主题: 完成人脸识别所需的步骤: 注册百度账号api,创建自己的应用: 创建vs控制台应用程序,引入动态链接库: ...
- c# imager让图片有圆角unity_C# 10分钟完成百度图片提取文字(文字识别)——入门篇...
现在图片文字识别已经很成熟了,比如qq长按图片,点击图片识别就可以识别图片的文字,将不认识的.文字数量大的.或者不能赋值的值进行二次可复制功能. 我们现在就基于百度Ai开放平台进行个人文字识别,dem ...
- C# 30分钟完成百度人脸识别——进阶篇(文末附源码)
距离上次入门篇时隔两个月才出这进阶篇,小编惭愧,对不住关注我的卡哇伊的小伙伴们,为此小编用这篇博来谢罪. 前面的准备工作我就不说了,注册百度账号api,创建web网站项目,引入动态链接库引入. 不了解 ...
- C# 百度人脸识别——入门篇
C# 百度人脸识别--入门篇 今天我们来盘一盘人脸注册.人脸识别等相关操作,这是一个简单入门教程. 话不多说,我们进入主题: 完成人脸识别所需的步骤: 注册百度账号api,创建自己的应用: 创建vs控 ...
- 10分钟python爬虫_python scrapy 入门,10分钟完成一个爬虫
在TensorFlow热起来之前,很多人学习python的原因是因为想写爬虫.的确,有着丰富第三方库的python很适合干这种工作. Scrapy是一个易学易用的爬虫框架,尽管因为互联网多变的复杂性仍 ...
- 10 分钟,带你快速入门前端三大技术(HTML、CSS、JavaScript)
听到前端技术,不少朋友一定会感到有些陌生.但其实,前端,你每天都在接触. 你正在使用的APP,你正在浏览的网页,这些你能看到的界面,都属于前端. 而前端最重要的三大技术,HTML,CSS,JavaSc ...
- 10分钟掌握百度竞价数据分析思路
导读:说到竞价必定要联系到数据分析,只有学会分析数据了,才能把百度竞价推广方向,现阶段许多的中小型企业有做百度推广,但却不懂得数据的分析,只知道简单的搭建账户.添加关键词.出价.写文案等等,这些都是竞 ...
- 10分钟零基础带你入门Ribbon小项目-啥?小白都能看懂?
文章目录 一.前置说明及其框架搭建 1.思路详解 2.框架搭建 二.代码编写 1.编写五个pom文件 1.1.父pom文件 1.2.子模块pom 2.编写启动类 3.application.yml文件 ...
- 10分钟go crawler colly从入门到精通
Introduction 本文对colly如何使用,整个代码架构设计,以及一些使用实例的收集. Colly是Go语言开发的Crawler Framework,并不是一个完整的产品,Colly提供了类似 ...
最新文章
- 学 AI 和机器学习的人必须关注的 6 个领域
- SharePoint 2007 SDK v1.5
- 【QGIS入门实战精品教程】2.1:初识QGIS软件
- windows下eclipse调试hadoop详解
- LeetCode——1721.交换链表中的节点
- 公司顾问岗位职责_【热门推荐】泉州奥育特教育科技有限公司
- 微软披露首个由中国发现的蠕虫级漏洞 奇安信代码安全实验室获致谢
- matconvnet 在 win7 64 位下的安装
- Maven_1 安装配置
- skimage rescale_intensity函数
- 小程序云开发点赞案例实现及环境vant插件配置等问题
- 【LeetCode】重复元素相关题目
- css 设置body的最小高度是100%,满屏显示
- usart串口发送与接收问题
- 1048 数字加密 (20分)
- 利用P2P软件(Murder)大规模分发大文件
- Poi 导出excel多个sheet的内容
- js排序(快排与sort)
- 简话消融研究是什么意思
- CSP 2020 S 蒟蒻的游记 (洛谷同步)