TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Marcus Nickel
NA
3
3k
Speech recognition Weather Class C#
Sep 17 2012 4:09 AM
Hi.
I need your help. I programming a private Speech Recognition in C#.
So far so good. Yesterday I took the weather function and put it into an own class. Before I've done this, it works fine. But now, I've the following Problem:
If I check the weather or temperature at the first time, after I start the program, the weather forecast works fine. But if I ask a second time, the function repeats and if I ask more than 2 times, it loops.
Here my code, I hope someone of you can help me!
[code]
//Questionhandle
else if (e.Result.Grammar.Name == "Weather")
{
switch (e.Result.Text)
{
case "Computer, wie ist das Wetter in Erpel?":
sage("Ich suche die aktuellen Wetterdaten!"); // say string
Wetter_heute.Get_Weather_today();
get_weather_now_pic_information();
sageAsync(Wetter_heute.weather_today_str.ToString());
show_weather_Tick();
break;
[...]
}
}
private void get_weather_now_pic_information()
{
if (Wetter_heute.weathercodenow == 113)
{
if (DateTime.Now.Hour < 7 && DateTime.Now.Hour > 18)
pictureBox1.ImageLocation = "Ico/_weather/sunny_night.png";
else
pictureBox1.ImageLocation = "Ico/_weather/sunny.png";
label7.Text = Wetter_heute.weathercode_lbl.ToString();
}
[...]
}
//Weather Class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace WindowsFormsApplication10
{
class Weather
{
public string weathererpelchecktime_str;
public string weathererpelnowtemp_str;
public string weathererpelnowclouds_str;
public string weathererpelnowlufthum_str;
public string weathererpelnowluftspeed_str;
public string weathererpelnowluftdir_str;
public string weathererpelnowluftdeg_str;
public string weathererpelnowsight_str;
public string weathererpelcodenow_str;
[...]
public void Get_Weather()
{
//Hole Wetterdaten
XmlDocument WeatherErpelNowdoc = new XmlDocument();
WeatherErpelNowdoc.Load("http://free.worldweatheronline.com/feed/weather.ashx?
q=Erpel&format=xml&num_of_days=3&key=[xxx]");
XmlNode WeatherErpelPressure =
WeatherErpelNowdoc.SelectSingleNode("/data/current_condition/pressure");
XmlNode WeatherErpelNow =
WeatherErpelNowdoc.SelectSingleNode("/data/current_condition[1]");
XmlNode WeatherErpelTod =
WeatherErpelNowdoc.SelectSingleNode("/data/weather[1]");
XmlNode WeatherErpelTom =
WeatherErpelNowdoc.SelectSingleNode("/data/weather[2]");
XmlNode WeatherErpelTDAT =
WeatherErpelNowdoc.SelectSingleNode("/data/weather[3]");
weathererpelchecktime_str =
WeatherErpelNow["observation_time"].InnerText.ToString();
weathererpelnowtemp_str = WeatherErpelNow["temp_C"].InnerText.ToString();
weathererpelnowclouds_str = WeatherErpelNow["cloudcover"].InnerText.ToString();
weathererpelnowlufthum_str = WeatherErpelNow["humidity"].InnerText.ToString();
weathererpelnowluftspeed_str =
WeatherErpelNow["windspeedKmph"].InnerText.ToString();
weathererpelnowluftdir_str =
WeatherErpelNow["winddir16Point"].InnerText.ToString();
weathererpelnowluftdeg_str =
WeatherErpelNow["winddirDegree"].InnerText.ToString();
weathererpelcodenow_str = WeatherErpelNow["weatherCode"].InnerText.ToString();
weathererpelnowsight_str = WeatherErpelNow["visibility"].InnerText.ToString();
[...]
}
}
// Weather Class
class Weather_today
{
Weather weather_cs = new Weather();
Form1 Main = new Form1();
public string weathercode_lbl = "",
weathererpelnowtemp = "",
weathererpelnowclouds = "",
weathererpelchecktime = "";
public string weathererpelnowluftdir = "",
weathercodestr = "",
weathercodetodstr = "",
weather_today_str = "",
schwuelestr = "",
windstr = "";
public string weathererpelnowlufthum = "",
weathererpelcodetod = "",
weathererpelcodenow = "",
weathererpelnowsight = "";
public string weathererpelnowluftdeg = "", weathererpelnowluftspeed = "";
public double weathertempnow = 0,
weatherwolkendichtenow = 0,
weatherhumi = 0,
weatherwindspeednow = 0,
weatherluftdeg = 0,
weathercodenow = 0,
weathercodetod = 0,
weathersightnow = 0;
int tempnowint = 0, wolkendichte = 0, humidity = 0, windspeed = 0, luftdeg = 0, sight = 0, weathercodenowint = 0, weathercodetodint = 0;
bool schwuelecheckbool = false;
private string weather_result_str1 = "";
private string weather_result_str2 = "";
private string weather_result_str3 = "";
// Get_Weather_today Function
public void Get_Weather_today()
{
weather_cs.Get_Weather();
//Auslesen
weathererpelnowtemp = weather_cs.weathererpelnowtemp_str;
weathererpelnowclouds = weather_cs.weathererpelnowclouds_str;
weathererpelnowlufthum = weather_cs.weathererpelnowlufthum_str;
weathererpelnowluftspeed = weather_cs.weathererpelnowluftspeed_str;
weathererpelnowluftdir = weather_cs.weathererpelnowluftdir_str;
weathererpelnowluftdeg = weather_cs.weathererpelnowluftdeg_str;
weathererpelcodenow = weather_cs.weathererpelcodenow_str;
weathererpelcodetod = weather_cs.weathererpelcodetod_str;
weathererpelchecktime = weather_cs.weathererpelchecktime_str;
weathererpelnowsight = weather_cs.weathererpelnowsight_str;
set_Vars_Weather_today();
check_Weathercode_today();
check_Weathercode_today_forecast();
checkschwuele_today();
check_Wind_Situation();
set_today_str();
weather_today_str = weather_result_str3;
}
public void set_today_str()
{
if (weathererpelnowluftdir.Equals("E"))
{
weather_result_str1 =
(String.Format("{0} {1} Grad Celsius. Die Windgeschwindigkeit beträgt {2} Kilometer pro Stunde und weht aus {3} Grad, östlicher
Richtung. {4}.", weather_today_str, weathererpelnowtemp, weathererpelnowluftspeed, weathererpelnowluftdeg,
weather_result_str2));
}
else if (weathererpelnowluftdir.Equals("SE"))
{
weather_result_str1 = (String.Format("{0} {1} Grad Celsius. Die Windgeschwindigkeit beträgt {2} Kilometer pro Stunde und weht aus
{3} Grad, süd-östlicher Richtung. {4}.",weather_today_str, weathererpelnowtemp, weathererpelnowluftspeed,
weathererpelnowluftdeg, weather_result_str2));
}
[...]
if (weathererpelcodenow == weathererpelcodetod)
{ weather_result_str2 = "Im weiteren Verlauf des Tages bleibt es " + weathercodetodstr; }
else
{ weather_result_str2 = "Im weiteren Verlauf des Tages wird es" + weathercodetodstr; }
weather_result_str3 = "Zur Zeit " + weathercodestr + "." + schwuelestr + windstr + ", bei einer Temperatur von " + weather_result_str1 +
weather_result_str2;
}
private void check_Weathercode_today()
{
switch (weathercodenowint)
{
case 395:
weathercodestr = "ist mit mittleren bis starken Gewitterschauern zu rechnen ";
weathercode_lbl = "Mittlere-starke Gewitterschauer";
break;
[...]
}
}
private void check_Weathercode_today_forecast()
{
switch (weathercodetodint)
{
case 395:
weathercodetodstr = "mittlere bis starke, gewittrige Schneeschauer";
break;
[...]
}
}
private void checkschwuele_today()
{
//Werte für Schwüle gemäß Wikipedia
if (humidity >= 99 && tempnowint == 16) schwuelecheckbool = true;
if (humidity >= 93 && tempnowint == 17) schwuelecheckbool = true;
if (humidity >= 88 && tempnowint == 18) schwuelecheckbool = true;
if (humidity >= 83 && tempnowint == 19) schwuelecheckbool = true;
if (humidity >= 78 && tempnowint == 20) schwuelecheckbool = true;
if (humidity >= 74 && tempnowint == 21) schwuelecheckbool = true;
if (humidity >= 70 && tempnowint == 22) schwuelecheckbool = true;
if (humidity >= 66 && tempnowint == 23) schwuelecheckbool = true;
if (humidity >= 62 && tempnowint == 24) schwuelecheckbool = true;
if (humidity >= 60 && tempnowint == 25) schwuelecheckbool = true;
if (humidity >= 56 && tempnowint == 26) schwuelecheckbool = true;
if (humidity >= 53 && tempnowint == 27) schwuelecheckbool = true;
if (humidity >= 50 && tempnowint == 28) schwuelecheckbool = true;
if (humidity >= 47 && tempnowint == 29) schwuelecheckbool = true;
if (humidity >= 45 && tempnowint == 30) schwuelecheckbool = true;
if (humidity >= 43 && tempnowint == 31) schwuelecheckbool = true;
if (humidity >= 40 && tempnowint == 32) schwuelecheckbool = true;
if (humidity >= 38 && tempnowint == 33) schwuelecheckbool = true;
if (humidity >= 36 && tempnowint == 34) schwuelecheckbool = true;
if (humidity >= 34 && tempnowint == 35) schwuelecheckbool = true;
if (humidity >= 32 && tempnowint == 36) schwuelecheckbool = true;
if (humidity >= 30 && tempnowint == 37) schwuelecheckbool = true;
if (schwuelecheckbool == true) schwuelestr = "schwül";
else schwuelestr = "";
}
private void set_Vars_Weather_today()
{
weathertempnow = Convert.ToDouble(weathererpelnowtemp);
tempnowint = Convert.ToInt32(weathertempnow);
weatherwolkendichtenow = Convert.ToDouble(weathererpelnowclouds);
wolkendichte = Convert.ToInt32(weatherwolkendichtenow);
weatherhumi = Convert.ToDouble(weathererpelnowlufthum);
humidity = Convert.ToInt32(weatherhumi);
weatherwindspeednow = Convert.ToDouble(weathererpelnowluftspeed);
windspeed = Convert.ToInt32(weatherwindspeednow);
weatherluftdeg = Convert.ToDouble(weathererpelnowluftdeg);
luftdeg = Convert.ToInt32(weatherluftdeg);
weathersightnow = Convert.ToDouble(weathererpelnowsight);
sight = Convert.ToInt32(weathersightnow);
weathercodenow = Convert.ToDouble(weathererpelcodenow);
weathercodenowint = Convert.ToInt32(weathercodenow);
weathercodetod = Convert.ToDouble(weathererpelcodetod);
weathercodetodint = Convert.ToInt32(weathercodetod);
}
private void check_Wind_Situation()
{
if (schwuelecheckbool == true)
{
if (windspeed <= 1) windstr = "Es ist"+ schwuelestr + " und windstill";
else if (windspeed >= 2 && windspeed <= 19) windstr = "Es ist" + schwuelestr + " und leicht windig";
else if (windspeed >= 20 && windspeed <= 28) windstr = "Es ist" + schwuelestr + " und schwach windig";
else if (windspeed >= 29 && windspeed <= 46) windstr = "Es ist" + schwuelestr + " und mäßig bis frisch windig";
else if (windspeed >= 47 && windspeed <= 56) windstr = "Es ist" + schwuelestr + " und stark windig";
else if (windspeed >= 57 && windspeed <= 74) windstr = "Es ist" + schwuelestr + " und stürmisch";
else if (windspeed >= 75 && windspeed <= 83) windstr = "Es ist"+ schwuelestr + " und stürmt";
else if (windspeed >= 84 && windspeed <= 102) windstr = "Es ist" + schwuelestr + " und stark stürmisch";
else if (windspeed >= 103 && windspeed <= 120) windstr = "Es ist" + schwuelestr + " und stürmt orkanartik";
else if (windspeed >= 130 && windspeed <= 194) windstr = "Es ist" + schwuelestr + " und es tobt ein Orkan";
}
else
{
if (windspeed <= 1) windstr = "und es ist windstill";
else if (windspeed >= 2 && windspeed <= 19) windstr = "und es ist leicht windig";
else if (windspeed >= 20 && windspeed <= 28) windstr = "und es ist schwach windig";
else if (windspeed >= 29 && windspeed <= 46) windstr = "und es ist mäßig bis frisch windig";
else if (windspeed >= 47 && windspeed <= 56) windstr = "und es ist stark windig";
else if (windspeed >= 57 && windspeed <= 74) windstr = "und es ist stürmisch";
else if (windspeed >= 75 && windspeed <= 83) windstr = "und es stürmt";
else if (windspeed >= 84 && windspeed <= 102) windstr = "und es ist stark stürmisch";
else if (windspeed >= 103 && windspeed <= 120) windstr = "und es stürmt orkanartik";
else if (windspeed >= 130 && windspeed <= 194) windstr = "und es tobt ein Orkan";
}
}
}
[/code]
Reply
Answers (
1
)
Speech Recognition
I have developed a voice enabled application in windows 8. How to convert it into a plugin??