İçindekiler:

Espelho Magico: 6 Adım
Espelho Magico: 6 Adım

Video: Espelho Magico: 6 Adım

Video: Espelho Magico: 6 Adım
Video: Командные Блоки - Анимация против Майнкрафта Короткие Эпизоды 6 2024, Kasım
Anonim
Image
Image

Neste Instructables, en çok kullanılan bilgileri içerir.

Embora seja o projeto de um özelho, não houve como utilizarum devido a contratempos.

Adım 1: Donanım

Donanım
Donanım

ejderha tahtası 410c

Ses Ara Kartı

Adım 2:

resim
resim

Visual Studio Community 2017, e bir linguagem c# için bir programa dayalı kullanım için para. XAML için Visual Studio'dan yararlanan bir arayüz.

Adım 3: Programação - Detecção De Voz

O primeiro passo, foi trabalhar com a detecção de voz. Sesli Ara Kat Kartı, mikrofonlar bütünleşik olarak kullanılabilir, ayrıca bir tespit için kullanılabilir. Visual Studio yok, Windows. Media. SpeechRecognition bir kod çözücü olarak bir bibliyoteka kullanır.

En uygun yöntemlerden faydalanmak için en uygun yöntemlere başvurun.

private async void InicializaVoz() { var idioma = new Windows. Globalization. Language("en-US"); SpeechRecognizer tanıyıcı = yeni SpeechRecognizer(deyim); tanıyıcı. StateChanged += RecognizerStateChanged; tanıyıcı. ContinulousRecognitionSession. ResultGenerated += RecognizerResultGenerated; string dosyaAdı = String. Format(SRGS_FILE); StorageFile grammarContentFile = Package. Current. InstalledLocation. GetFileAsync(fileName); SpeechRecognitionGrammarFileConstraint grammarConstraint = new SpeechRecognitionGrammarFileConstraint(grammarContentFile); tanıyıcı. Constraints. Add(grammarConstraint); SpeechRecognitionCompilationResult derlemeSonuç = tanıyıcı bekliyor. CompileConstraintsAsync(); if (compilationResult. Status == SpeechRecognitionResultStatus. Success) { Debug. WriteLine("Sonuç: " + derlemeResult. ToString()); bekle tanıyıcı. ContinulousRecognitionSession. StartAsync(); } else { Debug. WriteLine("Durum: " + derlemeResult. Status); } }

Başlangıç veya keşif, yöntem TanımaSonucuOluşturulan yorum ve karşılaştırmalar için aramalar ve karşılaştırmalar için yapılandırmalar, yeniden yapılandırmalar ve çözümler.

Olasılıkların en fazla olduğu yer, o idioma português, os comandos utilizados foram show (mostrar) ve gizlemek (esconder) ve o que deve ser Mostrado tahmini (önceden) ve haberler (bildirimler).

özel zaman uyumsuz void RecognizerResultGenerated(SpeechContinulousRecognitionSession oturumu, SpeechContinulousRecognitionResultGeneratedEventArgs argümanları) {

int sayı = args. Result. SemanticInterpretation. Properties. Count;

// Farklı etiketleri kontrol et ve değişkenleri başlat

Dize hedefi = args. Result. SemanticInterpretation. Properties. ContainsKey("target") ? args. Result. SemanticInterpretation. Properties["target"][0]. ToString(): "";

Dize cmd = args. Result. SemanticInterpretation. Properties. ContainsKey("cmd") ?

args. Result. SemanticInterpretation. Properties["cmd"][0]. ToString(): "";

Dize aygıtı = args. Result. SemanticInterpretation. Properties. ContainsKey("cihaz") ?

args. Result. SemanticInterpretation. Properties["cihaz"][0]. ToString(): "";

// Önce kullanıcının hangi cihaza başvurduğunu kontrol edin

if (cmd. Equals("göster"))

{

if (device. Equals("tahmin")) { Consulta_previsao(); } else if (device. Equals("haberler")) { Consulta_noticias(); } else { //Debug. WriteLine("Bilinmeyen Aygıt"); }

} else if (cmd. Equals("gizle"))

{

if (device. Equals("tahmin")) { //Tempo. Text = ""; wait this. Dispatcher. RunAsync(Windows. UI. Core. CoreDispatcherPriority. High, () => { // Bu artık çalışıyor çünkü UI iş parçacığında çalışıyor: this. Max_tit. Text = ""; this. Min_tit. Text = ""; this. Min. Text = ""; this. Max. Text = ""; this. Img_Tempo. Source = new BitmapImage(new Uri("ms-appx:///Images/blank.png"));

});

}

else if (device. Equals("news")) { wait this. Dispatcher. RunAsync(Windows. UI. Core. CoreDispatcherPriority. High, () => { // Bu şimdi çalışıyor, çünkü UI iş parçacığında çalışıyor: bu. News1. Text = ""; this. News2. Text = ""; this. News3. Text = ""; this. News4. Text = ""; this. News5. Text = ""; }); } else { // Debug. WriteLine("Bilinmeyen Aygıt"); } } else { //Debug. WriteLine("Bilinmeyen Komut"); }

}

Adım 4: Programação - Exibir Previsão Do Tempo

Şov tahmini için comando de voz algılama, o método Consulta_previsao envia uma requisição HTTP ao sitesi CPTEC do INPE, que retorna ve previsão tempo em um arquivo xml. xml için boş zaman, en fazla görüntü için en uygun ortam ve en son sıcaklıklar için en son ve en son tahminler.

özel zaman uyumsuz geçersiz Consulta_previsao() {

HttpClient httpcliente = yeni

//HttpResponseMessage cevap = httpcliente. GetAsync("https://servicos.cptec.inpe.br/XML/cidade/222/previsao.xml"). Result; var resp = httpcliente. GetAsync("https://servicos.cptec.inpe.br/XML/cidade/222/previsao.xml"). Result; resp. EnsureSuccessStatusCode(); var respbody = resp. Content. ReadAsStringAsync(); XmlDocument previsao = yeni XmlDocument();

previsao. LoadXml(respbody. Result);

XmlElement kökü = previsao. DocumentElement;

XmlNodeList düğümleri = root. GetElementsByTagName("tempo");

string prevtempo = (nodes. Item(0). InnerText);

string prevtempo1 = (nodes. Item(1). InnerText); string prevtempo2 = (nodes. Item(2). InnerText); string prevtempo3 = (nodes. Item(3). InnerText); düğümler = root. GetElementsByTagName("minima"); string tempmin = (nodes. Item(0). InnerText); düğümler = root. GetElementsByTagName("maxima"); string tempmax = (nodes. Item(0). InnerText);

string rsultado_previsao = "";

geçiş (önceki)

{ case "ec": rsultado_previsao = "Chuvas_Isoladas.png"; kırmak; durum "ci": rsultado_previsao = "Chuvas_Isoladas.png"; kırmak; durum "c": rsultado_previsao = "Chuva.png"; kırmak; case "in": rsultado_previsao = "Instavel.png"; kırmak; durum "pp": rsultado_previsao = "Chuva.png"; kırmak; durum "cm": rsultado_previsao = "Chuva.png"; kırmak; durum "cn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; kırmak; case "pt": rsultado_previsao = "Chuva.png"; kırmak; durum "pm": rsultado_previsao = "Chuvas_Isoladas.png"; kırmak; case "np": rsultado_previsao = "Chuva.png"; kırmak; durum "pc": rsultado_previsao = "Chuva.png"; kırmak; durum "pn": rsultado_previsao = "Nublado.png"; kırmak; case "cv": rsultado_previsao = "Chuva.png"; kırmak; durum "ch": rsultado_previsao = "Chuva.png"; kırmak; durum "t": rsultado_previsao = "Tempestade.png"; kırmak; durum "ps": rsultado_previsao = "Sol.png"; kırmak; durum "e": rsultado_previsao = "Sol_Encoberto.png"; kırmak; durum "n": rsultado_previsao = "Nublado.png"; kırmak; durum "cl": rsultado_previsao = "Sol.png"; kırmak; durum "nv": rsultado_previsao = "Nevoeiro.png"; kırmak; durum "g": rsultado_previsao = "Neve.png"; kırmak; durum "ne": rsultado_previsao = "Neve.png"; kırmak; durum "nd": rsultado_previsao = "na.png"; kırmak; case "pnt": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; kırmak; durum "psc": rsultado_previsao = "Chuva.png"; kırmak; durum "pcm": rsultado_previsao = "Chuva.png"; kırmak; durum "pct": rsultado_previsao = "Chuva.png"; kırmak; durum "pcn": rsultado_previsao = "Chuva.png"; kırmak; durum "npt": rsultado_previsao = "Chuva.png"; kırmak; durum "npn": rsultado_previsao = "Chuva.png"; kırmak; durum "ncn": rsultado_previsao = "Chuva.png"; kırmak; case "nct": rsultado_previsao = "Chuva.png"; kırmak; durum "ncm": rsultado_previsao = "Chuva.png"; kırmak; durum "npm": rsultado_previsao = "Chuva.png"; kırmak; durum "npp": rsultado_previsao = "Chuva.png"; kırmak; durum "vn": rsultado_previsao = "Instavel.png"; kırmak; case "ct": rsultado_previsao = "Chuva.png"; kırmak; durum "ppn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; kırmak; case "ppt": rsultado_previsao = "Chuva.png"; kırmak; case "ppm": rsultado_previsao = "Chuva.png"; kırmak;

}

wait this. Dispatcher. RunAsync(Windows. UI. Core. CoreDispatcherPriority. High, () => { // Bu artık çalışıyor, çünkü UI iş parçacığında çalışıyor: this. Max_tit. Text = "Máxima"; this. Min_tit. Text = "Mínima"; this. Min. Text = tempmin + "°"; this. Max. Text = tempmax + "°"; this. Img_Tempo. Source = new BitmapImage(new Uri("ms-appx:///) Resimler/" + rsultado_previsao)); });

}

Adım 5: Programação - Exibir Notícias

Şov haberleri için komando tespit aracı, o método Consulta_noticias envia uma requisição HTTP bildirimleri için BBC, que também retorna um XML. Metin blokları için ilk uyarılar olarak.

özel zaman uyumsuz geçersiz Consulta_noticias() {

HttpClient httpcliente2 = yeni

var resp2 =

resp2. EnsureSuccessStatusCode(); var respbody2 = resp2. Content. ReadAsStringAsync(); XmlDocument noticia = new XmlDocument();

noticia. LoadXml(respbody2. Result);

XmlElement root2 = noticia. DocumentElement;

XmlNodeList node2 = root2. GetElementsByTagName(@"title");

bekle this. Dispatcher. RunAsync(Windows. UI. Core. CoreDispatcherPriority. High, () =>

{ this. News1. Text = (nodes2. Item(2). InnerText); this. News2. Text = (nodes2. Item(3). InnerText); this. News3. Text = (nodes2. Item(4). InnerText); this. News4. Text = (nodes2. Item(5). InnerText); this. News5. Text = (nodes2. Item(6). InnerText);

});

}

6. Adım: Sonuç

Tüm talimatların yeniden üretilmesi, Windos IoT Core kurulumunun kullanımı için olası gerçekleri belirleme. Basta criar veya arquivo de gramática com os comandos desejados.

Autores: Egon Patrick Marques Silva

Frederico Clark

Önerilen: