广告
返回顶部
首页 > 资讯 > 精选 >C#基于百度AI如何实现机器翻译功能
  • 354
分享到

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

2023-06-26 04:06:21 354人浏览 八月长安
摘要

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

C#基于百度ai如何实现机器翻译功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

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

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

    我们现在就基于百度Ai开放平台进行机器翻译,demo使用的是C#控制台应用程序,后续有需要的可以嫁接到指定项目中使用。

    1、注册百度账号api,创建自己的Api应用

    注册地址: https://login.bce.baidu.com/

    注册登录之后,在“产品服务” 菜单下找到机器翻译 ,点击进入,如下图:

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

    注意,这里我们需要先进行 领取免费资源 ,开发完成后根据后期需求决定是否进行付费操作,如下图所示:

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

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

    领取后,创建我们的Api应用,如下图(主要是Api Key和Secret Key):

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

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

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

    2、创建vs控制台应用程序

    创建VS控制台应用程序,命名为TranslateProject。

    .net Framework/.net core的都可以,甚至于WEB应用也行,因为这是Api操作。

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

    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; }        }    }}

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

    关于C#基于百度AI如何实现机器翻译功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

    --结束END--

    本文标题: C#基于百度AI如何实现机器翻译功能

    本文链接: https://www.lsjlt.com/news/306808.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

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

    下载Word文档
    猜你喜欢
    • C#基于百度AI实现机器翻译功能
      目录1、注册百度账号api,创建自己的Api应用2、创建vs控制台应用程序3、编写程序并调试post请求工具类文本翻译-通用版文本翻译-词典版文本翻译-图片翻译总结随着“...
      99+
      2022-11-12
    • C#基于百度AI如何实现机器翻译功能
      C#基于百度AI如何实现机器翻译功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。随着“一带一路”政策的开展,各种项目迎接而来,语言不通就成为了痛点。作为开发人员,相信大家...
      99+
      2023-06-26
    • C#调用百度翻译API实现一个翻译功能
      前言 虽然百度翻译相对于谷歌翻译在准确性方面还有很大的提升空间,但网络的现实情况及百度翻译接口的免费易用性方面让我们选择百度翻译接口。下面来一起看看详细的步骤吧 方法如下 appId...
      99+
      2022-11-12
    • 基于C#如何实现鼠标设置功能
      这篇文章主要介绍了基于C#如何实现鼠标设置功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于C#如何实现鼠标设置功能文章都会有所收获,下面我们一起来看看吧。效果代码public partial&n...
      99+
      2023-07-04
    • C++基于reactor的服务器百万并发如何实现
      这篇文章主要介绍“C++基于reactor的服务器百万并发如何实现”,在日常操作中,相信很多人在C++基于reactor的服务器百万并发如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++基于reac...
      99+
      2023-07-02
    • C#如何基于Socket实现多人聊天功能
      这篇文章主要介绍C#如何基于Socket实现多人聊天功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下服务器服务器负责接受所有客户端发来的消息,和将接受到的问题群发到其他用户。代码:using ...
      99+
      2023-06-29
    • 如何使用C#基于WebSocket实现聊天室功能
      这篇文章将为大家详细讲解有关如何使用C#基于WebSocket实现聊天室功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ServerHelper:using System;using ...
      99+
      2023-06-29
    • C++基于socket UDP网络编程如何实现聊天室功能
      这篇文章主要介绍C++基于socket UDP网络编程如何实现聊天室功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下0.通信步骤流程图(左:服务器;右:客户端;)1.服务器代码1.1服务器类头文件(CS...
      99+
      2023-06-20
    • SpringBoot基于过滤器和内存如何实现重复请求拦截功能
      这篇文章主要介绍了SpringBoot基于过滤器和内存如何实现重复请求拦截功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot基于过滤器和内存如何实现重复请求拦截功能文章都会有所收获,下面我们...
      99+
      2023-07-05
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作