我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#基于百度AI实现机器翻译功能

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C#基于百度AI实现机器翻译功能

随着“一带一路”政策的开展,各种项目迎接而来,语言不通就成为了痛点。

作为开发人员,相信大家对于翻译不陌生吧,百度翻译,有道词典、谷歌翻译等等或多或少都用过(汉-英,汉-日,汉-俄等等)。

我们现在就基于百度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 

直接看文档就可以了,我这里把代码展示一下,大家拷贝一下就可以执行。

如下代码和展示:

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/Ck3dwjhhu
                string 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不正确");
                        else
                            Console.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

词典版和通用版大体相同,大家拷贝上面的更换一下请求的URL即可。

文本翻译-图片翻译

图片翻译API文档:https://cloud.baidu.com/doc/MT/s/mki483xpu

这里就不贴代码了,大家点击api文档参照试试,自己做出来乐趣更高哦。

总结

看到这里就介绍了,是不是感觉很简单,就注册一个百度云平台的账号,创建相关的api key应用,

然后对照开发文档进行编写测试,放在项目中很容易移植,快去试试吧。

以上就是C#基于百度AI实现机器翻译功能的详细内容,更多关于C#机器翻译的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#基于百度AI实现机器翻译功能

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C#基于百度AI如何实现机器翻译功能

C#基于百度AI如何实现机器翻译功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。随着“一带一路”政策的开展,各种项目迎接而来,语言不通就成为了痛点。作为开发人员,相信大家
2023-06-26

通过go语言编写百度翻译API实现中尼泊尔文翻译功能

要通过Go语言编写百度翻译API实现中尼泊尔文翻译功能,你需要进行以下步骤:1. 在百度开发者平台上创建一个应用并获取API密钥。 如果你还没有百度开发者账号,你需要先注册一个。2. 在Go语言中,你需要使用一个HTTP客户端库来发送HTT
2023-10-12

基于ChatGPT+SpringBoot实现智能聊天AI机器人接口并上线至服务器的方法

ChatGPT是一款基于自然语言处理技术的聊天机器人,ChatGPT可以模拟真实的人类对话,并能够更贴近用户的需求,提供更有价值的服务,这篇文章主要介绍了基于ChatGPT+SpringBoot实现智能聊天AI机器人接口并上线至服务器,需要的朋友可以参考下
2023-02-16

基于python脚本实现软件的注册功能(机器码+注册码机制)

一、前言: 目的:完成已有python图像处理工具的注册功能 功能:用户运行程序后,通过文件自动检测认证状态,如果未经认证,就需要注册。注册过程是用户将程序运行后显示的机器码(C盘的卷序号)发回给管理员,管理员对机器码加密后生成加密文件或字
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录