一、 让文本变成声音

.Net里面自带了一个语音类库:System.Speech,调用系统的语音功能,就能实现string到语音的转换,很简单(记得先把电脑音量调大一下):

//Add System.Speech reference first using System.Speech.Synthesis;

var reader = new SpeechSynthesizer();

reader.SpeakAsync("I'm a programer. Hello, world!");

Hello, world!

你听到了……这里我用了SpeakAsync方法,也就是异步执行,不会阻塞主线程。你也可以直接调用Speak()方法,也就是在一个线程里面——突然

想到可以利用Speak()方法来调试程序,把断点或者Log换成Speak():

当别人辛苦的翻阅数百行的日志--而你的电脑用悠扬的语音告诉你:“This user's entity is null, here is a

bug!”,高端大气上档次呀!

二、 获取本地实时天气

园子里面有很多获取天气的API文章,这里就不介绍了,给一个CSDN链接,还算比较全:天气预报API接口大全

我这里用的都是新浪的API,最简单快捷。获取本地的实时天气,分为两步:一、根据电脑公网IP 获取当前城市;二、根据城市获取天气信息。

var webClient = new WebClient() { Encoding = Encoding.UTF8 };

//Get location cityvar location = webClient.DownloadString("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json");

var json = new JavaScriptSerializer().Deserialize(location);

//Read city from utf-8 formatvar city = HttpUtility.UrlDecode(json["city"]);

获取到的地理信息是json格式,反序列成dynamic动态类型,不需要再去创建个类去和json数据对应,C#获取json数据就和

javascript中的操作差不多了,用了当然这样也就肯定没有VS的智能感知。取到的省市信息都是UTF-8编码的,所以要取出来的话,进行

Decode。

//Get weather data(xml format) string weather = webClient.DownloadString(string.Format(

"http://php.weather.sina.com.cn/xml.php?city={0}&password=DJOYnieT8234jlsK&day=0",

HttpUtility.UrlEncode(json["city"], Encoding.GetEncoding("GB2312"))));

//Console.WriteLine(weather); var xml = new XmlDocument();

xml.LoadXml(weather);

这次取到的天气信息就是XML格式的了,也很方便。但需要注意的是此,构建URL的时候要把城市采用GB2312格式编码,WebClient需要指定UTF-8格式。天气信息取到了,下面就是编字符串,让它说话了,这里附上全部的代码,总共23行:

//Initialize Speaker

var reader = new SpeechSynthesizer();

reader.Speak("I'm a programer,Hello, World! ");

var webClient = new WebClient() { Encoding = Encoding.UTF8 };

//Get location city

var location = webClient.DownloadString("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json");

var json = new JavaScriptSerializer().Deserialize(location);

//Read city from utf-8 format

var city = HttpUtility.UrlDecode(json["city"]);

//Get weather data(xml format)

string weather = webClient.DownloadString(string.Format(

"http://php.weather.sina.com.cn/xml.php?city={0}&password=DJOYnieT8234jlsK&day=0",

HttpUtility.UrlEncode(json["city"], Encoding.GetEncoding("GB2312"))));

//Console.WriteLine(weather);

var xml = new XmlDocument();

xml.LoadXml(weather);

//Get weather detail

var root = xml.SelectSingleNode("/Profiles/Weather");

var detail = root["status1"].InnerText + "," + root["direction1"].InnerText

+ root["power1"].InnerText.Replace("-", "到") + "级,"

+ root["gm_s"].InnerText + root["yd_s"].InnerText;

reader.SpeakAsync("今天是" + DateTime.Now.ToShortDateString() + "," + city + " " + detail);Location Weather Detail Speaker

java语音播报天气_语音播报实时天气相关推荐

  1. python自动获取天气_用python获取天气数据,并作定时播报

    原标题:用python获取天气数据,并作定时播报 数据挖掘入门与实战 公众号: datadw 思路 1.调用和风天气的API,获取天气数据 2.用百度语音API,将天气数据合成语音 3.用树莓派每天早 ...

  2. JAVA看云判断天气_看云测天气_气象常识天气知

    看云测天气_气象常识天气知 因为古代没有先进的科技预报天气,所以古人在日常生活中通过对云的观察,总结出了很多的谚语,用以预测天气的变化.从云的形状.颜色.高低.薄厚.动向等很多方面都可以预测出天气的变 ...

  3. ESP8266+oled连接心知天气显示时间和实时天气

    因为时间比较仓促,目前存在许多问题没有解决. 首先进行aduino环境配置,具体方法可参考以下链接,若选错开发板型号编译会报错配置esp8266开发板的Arduino开发环境_交通运输怪味张的博客-C ...

  4. java h5在线音频_[语音技术]java+H5的录音类实例(1)

    看了某位仁兄的分享的关于C#的window平台的录音分装,有兴趣同学请访问楼下地址 https://ai.baidu.com/forum/topic/show/492634 于是,我也整理了自己项目中 ...

  5. 瑞晟蓝牙来电语音软件下载_语音来电秀app下载-语音来电秀 安卓版v12.6-PC6安卓网...

    语音来电秀app是一款超级炫酷的语音来电显示秀的软件.语音来电秀app拥有各种类型的有点显示秀任大家挑选,快来语音来电秀app挑选一款你喜欢的来电秀作为你的来电显示吧! 软件介绍 语音来电秀app是一 ...

  6. 语音对讲软件_语音交友软件开发:一对一语音直播和视频在线观看的区别

    本文中常说的语音交友软件,更类似语音直播软件,它专指用户间不可以互相交流与沟通,只有与网络主播开展闲聊社交媒体的社交软件,那么,开展那样的语音交友软件开发设计,是不是一个好点子呢?小编觉得,那样的语音 ...

  7. JAVA看云判断天气_看云识天气:如何利用云层判断天气?

    一旦身处山区,特别是高海拔山区,就进入了极端环境和天气中.天气的好坏对于山友们的出行安全至关重要.一个老练的攀登者不但要在出行前了解好天气,更要懂的在攀登的过程中随时判断天气. 在登山的时候,利用云层 ...

  8. python发微信提醒天气_通过Python发送天气信息给企业微信机器人

    一.添加机器人 原文链接:https://www.dqzboy.com 二.创文章来源(Source):浅时光博客建py脚本 #!/usr/bin/python3 # -*- coding: utf- ...

  9. Android 获取实时天气数据

    先上效果图: 深圳实时天气数据 关于获取实时天气数据有很多种方法,像聚合数据.和风天气等平台都可以提供数据来源,本文主要使用和风天气SDK获取实时天气数据.以下是使用和风天气SDK来获取地方实时天气数 ...

最新文章

  1. python和c++哪个好学-C++和Python哪一个更好?
  2. Jupyter command 'notebook': [Errno 'jupyter-notebook' not found] 2解决方法
  3. 2.oracle的安装常识,Oralce服务器,oracle集群,oracle服务介绍,用户解锁相关
  4. POJ 1611 The Suspects
  5. DataFrame纵向合并
  6. Session的原理,大型网站中Session方面应注意什么?
  7. java javadoc_使用Java 9向Javadoc搜索添加术语
  8. Java 开发环境部署
  9. git常用命令及冲突解决
  10. 解决sodu echo写入文件是权限不足-bash: test.txt: Permission denied
  11. Codevs 1043 方格取数
  12. java程序中单方法接口通常是,Android面试题1--Java基础之线程(持续更新)
  13. FirewallD常用命令及设置
  14. 12.第二节 SAPI概述
  15. 他刷题5个月,直通Google,薪资Triple,总结出这套刷题笔记,今天首次公开!
  16. python熊猫烧香_'熊猫烧香'病毒专题:多少变种,怎么破坏,如何查杀?
  17. 【Rust 日报】2021-10-14 Rust是一种让你首先得到宿醉的语言
  18. WEB认证苹果手机锁屏后出现断开WI-Fi的现象和解决
  19. 微信小游戏世界排行榜的绘制
  20. html直线箭头,HTML中利用div+CSS实现简单的箭头图标的代码

热门文章

  1. 趣闻——bug的由来
  2. 肇庆学院计算机科学与技术专业多少分能进,2020肇庆学院录取分数线是多少-各专业分数线...
  3. APP——流量测试——adb命令简单测试
  4. 正则表达式生成器,测试器(附C#代码)
  5. JS的正则表达式 (转载) 真好 学习下
  6. android照片视频备份,Android 保存图片或视频到相册并刷新相册
  7. css小技巧(文字两端对齐)
  8. Android底部导航栏切换页面填坑
  9. expected a type specifier
  10. 什么是数据科学?如何把数据变成产品?