Indholdsfortegnelse:

Espelho Mágico: 6 trin
Espelho Mágico: 6 trin

Video: Espelho Mágico: 6 trin

Video: Espelho Mágico: 6 trin
Video: The Gift Among the Green | Exandria Unlimited | Episode 6 2024, November
Anonim
Image
Image

Neste instrukser kan bruges til at protokollere de oplysninger, der skal bruges til at informere om klima og notifikationer, og som kan bruges af voz.

Embora seja o projeto de um espelho, não houve como utilizar um devido a contratempos.

Trin 1: Hardware

Hardware
Hardware

Dragonboard 410c

Audio Mezzanine Board

Trin 2:

Billede
Billede

Til et program, der kan bruges i Visual Studio Community 2017, og et sprog#. En grænseflade, der kan bruges af editoren XAML til Visual Studio.

Trin 3: Programação - Detecção De Voz

O primeiro passo, foi trabalhar com a detecção de voz. Et sted med Mezzanine Board kan integreres med mikrofoner, der kan bruges til at detektere. Ingen Visual Studio, bruger en biblioteca Windows. Media. SpeechRecognition para decodificar a voz.

Foi utilizado o método encontrado aqui para a inicialização da detecção de voz, que é mostrado também abaixo.

private async void InicializaVoz () {var idioma = new Windows. Globalization. Language ("en-US"); SpeechRecognizer -genkender = ny SpeechRecognizer (idioma); anerkender. StateChanged += RecognizerStateChanged; anerkender. ContinuousRecognitionSession. ResultGenerated += RecognizerResultGenerated; string fileName = String. Format (SRGS_FILE); StorageFile grammarContentFile = afventer Package. Current. InstalledLocation. GetFileAsync (filnavn); SpeechRecognitionGrammarFileConstraint grammarConstraint = new SpeechRecognitionGrammarFileConstraint (grammarContentFile); anerkender. Constraints. Add (grammarConstraint); SpeechRecognitionCompilationResult compilationResult = venter på igenkender. CompileConstraintsAsync (); if (compilationResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("Resultat:" + compilationResult. ToString ()); venter på genkender. ContinuousRecognitionSession. StartAsync (); } ellers {Debug. WriteLine ("Status:" + compilationResult. Status); }}

Ændrer os gerne om rekonstruktion eller genkendelse af resultaterGenereret recebe kan bruges for at fortolke og sammenligne det med vores kommandoer, og vi kan konfigurere dem om arquivo xml, der kan bruges til at indsætte en løsning.

Como não foi possível inserir o idioma português, os comandos utilizados foram show (mostrar) e hide (esconder) e o que deve ser mostrado forecast (previsão) e news (notícias).

private async void RecognizerResultGenerated (SpeechContinuousRecognitionSession session, SpeechContinuousRecognitionResultGeneratedEventArgs args) {

int count = args. Result. SemanticInterpretation. Properties. Count;

// Kontroller, om der er forskellige tags, og initialiser variablerne

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

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

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

String device = args. Result. SemanticInterpretation. Properties. ContainsKey ("device")?

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

// Kontroller først, hvilken enhed brugeren henviser til

if (cmd. Equals ("vis"))

{

if (device. Equals ("prognose")) {Consulta_previsao (); } ellers hvis (device. Equals ("nyheder")) {Consulta_noticias (); } andet {//Debug. WriteLine("Ukendt enhed "); }

} ellers if (cmd. Equals ("skjul"))

{

if (device. Equals ("forecast")) {//Tempo. Text = ""; afvente this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Dette fungerer nu, fordi det kører på UI -tråden: this. Max_tit. Text = ""; this. Min_tit. Text = ""; this. Min. Text = ""; this. Max. Text = ""; this. Img_Tempo. Source = ny BitmapImage (ny Uri ("ms-appx: ///Images/blank.png"));

});

}

ellers hvis (device. Equals ("nyheder")) {afventer this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Dette fungerer nu, fordi det kører på UI -tråden: dette. News1. Text = ""; this. News2. Text = ""; this. News3. Text = ""; this. News4. Text = ""; this. News5. Text = "";}); } andet {// Debug. WriteLine ("Ukendt enhed"); }} andet {//Debug. WriteLine("Ukendt kommando "); }

}

Trin 4: Programação - Exibir Previsão Do Tempo

Se o comando de voz detectado for show forecast, o método Consulta_previsao envia uma requisição HTTP ao site CPTEC do INPE, que retorna a previsão do tempo em um arquivo xml. Hvis du vil se xml, kan du forestille dig, at temperaturen kan bruges som en temperatur og en temperatur, der maksimalt kan ændres.

privat asynk void Consulta_previsao () {

HttpClient httpcliente = ny HttpClient ();

// HttpResponseMessage resp = 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 = nyt XmlDocument ();

previsao. LoadXml (respbody. Result);

XmlElement root = previsao. DocumentElement;

XmlNodeList -noder = 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); noder = root. GetElementsByTagName ("minima"); streng tempmin = (nodes. Item (0). InnerText); noder = root. GetElementsByTagName ("maxima"); streng tempmax = (nodes. Item (0). InnerText);

string rsultado_previsao = "";

switch (forrige tempo)

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

}

afvente this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Dette fungerer nu, fordi det kører på UI -tråden: 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: /// Billeder/" + rsultado_previsao));});

}

Trin 5: Programação - Exibir Notícias

Se en række opdagelser til shownyheder, eller se konsultation og registrering af HTTP og feed -notifikationer fra BBC, som også kan bruges til XML. Som cinco primeiras notícias são exibidas na tela em textblocks.

private async void Consulta_noticias () {

HttpClient httpcliente2 = ny HttpClient ();

var resp2 = httpcliente2. GetAsync ("https://feeds.bbci.co.uk/portuguese/rss.xml"). Resultat;

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

noticia. LoadXml (respbody2. Result);

XmlElement root2 = noticia. DocumentElement;

XmlNodeList nodes2 = root2. GetElementsByTagName (@"titel");

afvente 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);

});

}

Trin 6: Konklusion

Ao reproduzir esse instructables, será possível realizar detecção de comandos de voz utilizando alguma placa com with Windos IoT Core installation. Basta criar o arquivo de gramática com os comandos desejados.

Forfattere: Egon Patrick Marques Silva

Frederico Clark

Anbefalede: