Obsah:
- Krok 1: Hardware
- Krok 2:
- Krok 3: Programação - Detecção De Voz
- Krok 4: Programação - Exibir Previsão Do Tempo
- Krok 5: Programação - Exibir Notícias
- Krok 6: Conclusão
Video: Espelho Mágico: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:23
Neste Instructables mostramos como criar um protótipo de um espelho inteligente que projeta informações de clima e notícias, utilizando comandos de voz.
Embora se může podílet na dalším vývoji, jako je například využití devido a contratempos.
Krok 1: Hardware
Dragonboard 410c
Zvuková mezipatro
Krok 2:
Je to program a použití aplikace Visual Studio Community 2017, a linguagem c#. Hlavní rozhraní pro použití editoru XAML do Visual Studio.
Krok 3: Programação - Detecção De Voz
O hlavní passo, foi trabalhar com a detecção de voz. Zvukové mezaninové desky, které mám, jsou vybaveny integrovanými mikrofony, které mohou používat a detekovat. Žádné Visual Studio, použití a biblioteca Windows. Media. SpeechRecognition para decodificar a voz.
Využití a další zpracování vodních par a inicializace a detekce vozů, que é mostrado também abaixo.
private async void InicializaVoz () {var idioma = new Windows. Globalization. Language ("en-US"); SpeechRecognizer rozpoznávač = nový SpeechRecognizer (idioma); rozpoznávač. StateChanged += RecognizerStateChanged; recognitionnizer. ContinuousRecognitionSession. ResultGenerated += RecognizerResultGenerated; řetězec název_souboru = String. Format (SRGS_FILE); StorageFile grammarContentFile = čekejte Package. Current. InstalledLocation. GetFileAsync (název_souboru); SpeechRecognitionGrammarFileConstraint grammarConstraint = nový SpeechRecognitionGrammarFileConstraint (grammarContentFile); rozpoznávač. Constraints. Add (grammarConstraint); SpeechRecognitionCompilationResult compilationResult = čekejte na rozpoznávač. CompileConstraintsAsync (); if (compilationResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("Výsledek:" + compilationResult. ToString ()); čekejte na rozpoznávač. ContinuousRecognitionSession. StartAsync (); } else {Debug. WriteLine ("Status:" + compilationResult. Status); }}
Počáteční inicializace nebo opětovné rozpoznání Výsledek generovaného generování přijímaných záznamů umožňuje provádět různé interpretace a porovnávání různých formátů, které mohou být konfigurovány v různých velikostech xml, což znamená, že je možné vkládat na solução.
Nejčastěji se vyskytují různé idiomy, které mohou obsahovat různé formáty show (většina) a skrytí (esconder) e o que deve ser mostrado předpovědi (předchozí) novinky a poznámky (noticas).
soukromá asynchronní neplatná RecognizerResultGenerated (relace SpeechContinuousRecognitionSession, SpeechContinuousRecognitionResultGeneratedEventArgs args) {
int count = args. Result. SemanticInterpretation. Properties. Count;
// Vyhledejte různé značky a inicializujte proměnné
String target = args. Result. SemanticInterpretation. Properties. ContainsKey ("target")? args. Result. SemanticInterpretation. Properties ["target"] [0]. ToString (): "";
Řetězec cmd = args. Result. SemanticInterpretation. Properties. ContainsKey ("cmd")?
args. Result. SemanticInterpretation. Properties ["cmd"] [0]. ToString (): "";
Řetězcové zařízení = args. Result. SemanticInterpretation. Properties. ContainsKey („zařízení“)?
args. Result. SemanticInterpretation. Properties ["zařízení"] [0]. ToString (): "";
// Nejprve zkontrolujte, na které zařízení se uživatel odkazuje
if (cmd. Equals ("show"))
{
if (device. Equals ("předpověď")) {Consulta_previsao (); } else if (device. Equals ("novinky")) {Consulta_noticias (); } else {//Debug. WriteLine("Neznámé zařízení "); }
} else if (cmd. Equals ("skrýt"))
{
if (device. Equals ("prognóza")) {//Tempo. Text = ""; čekejte toto. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// To nyní funguje, protože běží na vlákně uživatelského rozhraní: 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")) {await this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Nyní to funguje, protože běží na vlákně uživatelského rozhraní: toto. News1. Text = ""; this. News2. Text = ""; this. News3. Text = ""; this. News4. Text = ""; this. News5. Text = "";}); } else {// Debug. WriteLine ("Neznámé zařízení"); }} else {//Debug. WriteLine("Neznámý příkaz "); }
}
Krok 4: Programação - Exibir Previsão Do Tempo
Detekovat můžete například předpověď počasí, například Consulta_previsao envia uma requisição HTTP ao site CPTEC do INPE, que retorna a previsão do tempo em um arquivo xml. A leitura do xml, uma imagem é mostrada na tela de acordo com a previsão e também são mostradas as temperaturas máxima e mínima.
soukromá asynchronní neplatná Consulta_previsao () {
HttpClient httpcliente = nový 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"). Výsledek; resp. EnsureSuccessStatusCode (); var respbody = resp. Content. ReadAsStringAsync (); XmlDocument previsao = nový XmlDocument ();
previsao. LoadXml (respbody. Result);
XmlElement root = previsao. DocumentElement;
Uzly XmlNodeList = root. GetElementsByTagName ("tempo");
řetězec prevtempo = (uzly. Item (0). InnerText);
řetězec prevtempo1 = (uzly. Item (1). InnerText); řetězec prevtempo2 = (uzly. Item (2). InnerText); řetězec prevtempo3 = (uzly. Item (3). InnerText); uzly = root. GetElementsByTagName ("minima"); řetězec tempmin = (uzly. Item (0). InnerText); uzly = root. GetElementsByTagName ("maxima"); řetězec tempmax = (uzly. Item (0). InnerText);
řetězec rsultado_previsao = "";
přepínač (předchozí teplota)
{case "ec": rsultado_previsao = "Chuvas_Isoladas.png"; přestávka; případ "ci": rsultado_previsao = "Chuvas_Isoladas.png"; přestávka; případ "c": rsultado_previsao = "Chuva.png"; přestávka; case "in": rsultado_previsao = "Instavel.png"; přestávka; případ "pp": rsultado_previsao = "Chuva.png"; přestávka; případ "cm": rsultado_previsao = "Chuva.png"; přestávka; případ "cn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; přestávka; případ "pt": rsultado_previsao = "Chuva.png"; přestávka; případ "pm": rsultado_previsao = "Chuvas_Isoladas.png"; přestávka; případ "np": rsultado_previsao = "Chuva.png"; přestávka; případ "pc": rsultado_previsao = "Chuva.png"; přestávka; případ "pn": rsultado_previsao = "Nublado.png"; přestávka; případ "cv": rsultado_previsao = "Chuva.png"; přestávka; případ "ch": rsultado_previsao = "Chuva.png"; přestávka; případ "t": rsultado_previsao = "Tempestade.png"; přestávka; případ "ps": rsultado_previsao = "Sol.png"; přestávka; případ "e": rsultado_previsao = "Sol_Encoberto.png"; přestávka; případ "n": rsultado_previsao = "Nublado.png"; přestávka; případ "cl": rsultado_previsao = "Sol.png"; přestávka; případ "nv": rsultado_previsao = "Nevoeiro.png"; přestávka; případ "g": rsultado_previsao = "Neve.png"; přestávka; případ "ne": rsultado_previsao = "Neve.png"; přestávka; případ "nd": rsultado_previsao = "na.png"; přestávka; případ "pnt": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; přestávka; případ "psc": rsultado_previsao = "Chuva.png"; přestávka; případ "pcm": rsultado_previsao = "Chuva.png"; přestávka; případ "pct": rsultado_previsao = "Chuva.png"; přestávka; případ "pcn": rsultado_previsao = "Chuva.png"; přestávka; případ "npt": rsultado_previsao = "Chuva.png"; přestávka; případ "npn": rsultado_previsao = "Chuva.png"; přestávka; případ "ncn": rsultado_previsao = "Chuva.png"; přestávka; případ "nct": rsultado_previsao = "Chuva.png"; přestávka; případ "ncm": rsultado_previsao = "Chuva.png"; přestávka; případ "npm": rsultado_previsao = "Chuva.png"; přestávka; případ "npp": rsultado_previsao = "Chuva.png"; přestávka; případ "vn": rsultado_previsao = "Instavel.png"; přestávka; případ "ct": rsultado_previsao = "Chuva.png"; přestávka; případ "ppn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; přestávka; případ "ppt": rsultado_previsao = "Chuva.png"; přestávka; případ "ppm": rsultado_previsao = "Chuva.png"; přestávka;
}
čekejte toto. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// To nyní funguje, protože běží na vlákně uživatelského rozhraní: 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: /// Obrázky/" + rsultado_previsao));});
}
Krok 5: Programação - Exibir Notícias
Detekovat můžete například zpravodajské zprávy, nebo více informací o službě HTTP a dalších zdrojích pro BBC, kde můžete stahovat XML. Vzhledem k tomu, že hlavní poznámky mohou mít textové bloky.
soukromá asynchronní neplatná Consulta_noticias () {
HttpClient httpcliente2 = nový HttpClient ();
var resp2 = httpcliente2. GetAsync ("https://feeds.bbci.co.uk/portuguese/rss.xml"). Výsledek;
resp2. EnsureSuccessStatusCode (); var respbody2 = resp2. Content. ReadAsStringAsync (); XmlDocument noticia = nový XmlDocument ();
noticia. LoadXml (respbody2. Výsledek);
XmlElement root2 = noticia. DocumentElement;
XmlNodeList nodes2 = root2. GetElementsByTagName (@"title");
čekejte toto. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () =>
{this. News1. Text = (uzly2. Item (2). InnerText); this. News2. Text = (uzly2. Item (3). InnerText); this. News3. Text = (uzly2. Item (4). InnerText); this. News4. Text = (uzly2. Item (5). InnerText); this. News5. Text = (uzly2. Item (6). InnerText);
});
}
Krok 6: Conclusão
Ao reproduzir ese instructables, será possível realizar detecção de comandos de voz use use alguma placa com o Windos IoT Core instalado. Basta criar o arquivo de gramática com os comandos desejados.
Autor: Egon Patrick Marques Silva
Frederico Clark
Doporučuje:
Počitadlo kroků - mikro: bit: 12 kroků (s obrázky)
Počitadlo kroků - Micro: Bit: Tento projekt bude počítadlem kroků. K měření našich kroků použijeme snímač akcelerometru, který je zabudovaný v Micro: Bit. Pokaždé, když se Micro: Bit zatřese, přidáme 2 k počtu a zobrazíme ho na obrazovce
Akustická levitace s Arduino Uno krok za krokem (8 kroků): 8 kroků
Akustická levitace s Arduino Uno krok za krokem (8 kroků): Ultrazvukové měniče zvuku L298N Dc samice napájecí zdroj s mužským DC pinem Arduino UNOBreadboard Jak to funguje: Nejprve nahrajete kód do Arduino Uno (je to mikrokontrolér vybavený digitálním a analogové porty pro převod kódu (C ++)
Bolt - Noční hodiny bezdrátového nabíjení DIY (6 kroků): 6 kroků (s obrázky)
Bolt - Noční hodiny bezdrátového nabíjení DIY (6 kroků): Indukční nabíjení (známé také jako bezdrátové nabíjení nebo bezdrátové nabíjení) je druh bezdrátového přenosu energie. Využívá elektromagnetickou indukci k poskytování elektřiny přenosným zařízením. Nejběžnější aplikací je bezdrátové nabíjení Qi
Jak rozebrat počítač pomocí jednoduchých kroků a obrázků: 13 kroků (s obrázky)
Jak rozebrat počítač pomocí jednoduchých kroků a obrázků: Toto je návod, jak rozebrat počítač. Většina základních komponent je modulární a lze je snadno odstranit. Je však důležité, abyste o tom byli organizovaní. To vám pomůže zabránit ztrátě součástí a také při opětovné montáži
Banka přepínaného zatěžovacího odporu s menší velikostí kroku: 5 kroků
Banka přepínaného zatěžovacího odporu s menší velikostí kroku: Banky zatěžovacích odporů jsou vyžadovány pro testování energetických produktů, pro charakterizaci solárních panelů, v testovacích laboratořích a v průmyslových odvětvích. Reostaty zajišťují nepřetržité kolísání odporu zátěže. Jak se však hodnota odporu snižuje, výkon