标签:
有的时候我们需要软件去翻译某些词条、举个例子我们做语音识别智能交互
用户说一大堆英语 机器识别后认不倒、因为我们只识别中文指令 那怎么办呢?
我们就的想办法让我们程序可以识别 老外用户说了什么 那我们该怎么办?这个
时候我们就需要翻译了、但翻译方面我没有见到过关于C#的离线库 只有在线的
不过也还好、看看微软的小娜机器人 它是识别用户说的内容 在通过必应搜索得
到很多信息、而我们给用户做的程序肯定不会向 微软小娜、苹果Siri 那么牛逼那
么智能、但是我们只需要软件可以识别出用户需要怎样操作软件就可以了 但是我
们现在的重点是如何去实现翻译,我一般常用GoogleTranslate不为别的翻译老外
帖子里面的内容谷歌是最好的、至少翻译过来能读懂五五之数 差不多了、
public static string GoogleTranslate(string message) { string requiredURL = string.Format("http://translate.google.com/translate_a/single?client=t&sl={0}&tl={1}&hl=zh-CN&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&dt=at&ie=UTF-8&oe=UTF-8&srcrom=0&ssel=3&tsel=3&kc=0&tk=523084|487837&q={2}" , "auto" // 自动检查语言 , CultureInfo.CurrentCulture.Name // Chinese (Simplified, China) / LCID 2052 / ACP && OEMCP 936 , UrlEncode(message, Encoding.Default) ); string outerHTML = string.Empty; try { using (WebClient client = new WebClient()) { client.Encoding = Encoding.UTF8; outerHTML = client.DownloadString(requiredURL); } } catch (WebException) { goto endTranslate; } if (outerHTML.Length > 0) outerHTML = Regex.Match(outerHTML,@"\x22([\s\S]+?)\x22").Groups[1].Value; endTranslate: return outerHTML; }
上面的代码只返回一个GoogleTranslate后的首选结果 但
是已经差不多了 我们识别用户说了什么 我很相信有绝对
条件大家都是采用识别音标的方式 虽然模糊性较高 但是
软件兼容用户怪怪的口音倒是一大助力 那些以后在讨论
你们也可以修改代码啦、GoogleTranslate后它返回一个
JSON格式的文本、你可以通过JSON解析的类搞定问题
public static string UrlEncode(string URIstring, Encoding URIEncoding) { StringBuilder str = new StringBuilder(); byte[] buf = URIEncoding.GetBytes(URIstring); for (int i = 0; i < buf.Length; i++) str.Append("%" + Convert.ToString(buf[i], 16)); return Convert.ToString(str); }
上面是一个不标准的URL加密代码 不过GoogleTranslate
可以解析出正确的内容 所以不必采用标准的URL加密代码
而且GoogleTranslate服务器很给力 根本不担心多几个计算
会把GoogleTranslate服务器怎么样、
[STAThread] unsafe static void Main() { Console.WriteLine(GoogleTranslate("hello world")); Console.ReadKey(false); }
上面是在Main方法中调用被编写好的GoogleTranslate的
部分、运行后立刻看到效果 相当给力?
using System; using System.Globalization; using System.Net; using System.Text; using System.Text.RegularExpressions;
上面是依赖的命名空间、不复制也可以 反正你把鼠标放在代码上
面会提示你添加命名空间的、所以也不用担心代码运行不了的问题
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/u012395622/article/details/47275409