Cov txheej txheem:
- Kauj ruam 1: Kho vajtse
- Kauj ruam 2:
- Kauj Ruam 3: Txoj Haujlwm - Detecção De Voz
- Kauj Ruam 4: Txoj Haujlwm - Exibir Previsão Do Tempo
- Kauj Ruam 5: Txoj Haujlwm - Exibir Notícias
- Kauj Ruam 6: Xaus
Video: Cov Lus Qhia: 6 Kauj Ruam
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:29
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 seja o projeto de um espelho, não houve como utilizar um devido a contratempos.
Kauj ruam 1: Kho vajtse
Zaj 410c
Suab Mezzanine Board
Kauj ruam 2:
Para a programação foi utilizado o Visual Studio Community 2017, a linguagem c#. Tus interface gráfica foi feita siv los yog tus kho XAML ua Visual Studio.
Kauj Ruam 3: Txoj Haujlwm - Detecção De Voz
O primeiro passo, foi trabalhar com a detecção de voz. Lub suab kaw suab Mezzanine Board jos possui dois microfones integrados, que foram utilizados para a detecção. Tsis muaj Visual Studio, siv cov ntaub ntawv hauv Windows. Media. SpeechRecognition para decodificar a voz.
Kev siv cov cuab yeej siv hluav taws xob los ntawm cov cuab yeej hluav taws xob rau kev ua haujlwm tsis raug cai los ntawm voz, que é mostrado também abaixo.
private async void InicializaVoz () {var idioma = new Windows. Globalization. Language ("en-US"); SpeechRecognizer lees paub = SpeechRecognizer tshiab (idioma); recognizer. StateChanged += RecognizerStateChanged; recognizer. ContinuousRecognitionSession. ResultGenerated += RecognizerResultGenerated; hlua fileName = String. Format (SRGS_FILE); StorageFile grammarContentFile = tos Package. CurrentInstalledLocation. GetFileAsync (fileName); SpeechRecognitionGrammarFileConstraint grammarConstraint = tshiab SpeechRecognitionGrammarFileConstraint (grammarContentFile); recognizer. Constraints. Add (grammarConstraint); SpeechRecognitionCompilationResult compilationResult = tos tos lees paub. CompileConstraintsAsync (); yog (muab tso ua keResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("Result:" + compilationResult. ToString ()); tos tus lees paub. ContinuousRecognitionSession. StartAsync (); } lwm {Debug. WriteLine ("Status:" + compilationResult. Status); }}
Após iniciar o reconhecimento, o método RecognizerResult
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 xov xwm (notícias).
private async void RecognizerResultGenerated (SpeechContinuousRecognitionSession session, SpeechContinuousRecognitionResultGeneratedEventArgs args) {
int suav = args. Result. SemanticInterpretation. Properties. Count;
// Txheeb rau cov cim sib txawv thiab pib ua qhov hloov pauv
Txoj hlua txoj hlua = args. Result. SemanticInterpretation. Properties. ContainsKey ("phiaj")? args. Result. SemanticInterpretation. Properties ["phiaj"] [0]. ToString (): "";
Txoj hlua cmd = args. Result. SemanticInterpretation. Properties. ContainsKey ("cmd")?
args. Result. SemanticInterpretation. Properties ["cmd"] [0]. ToString (): "";
Txoj hlua ntaus ntawv = args. Result. SemanticInterpretation. Properties. ContainsKey ("ntaus ntawv")?
args. Result. SemanticInterpretation. Properties ["ntaus ntawv"] [0]. ToString (): "";
// Ua ntej txheeb xyuas lub cuab yeej twg tus neeg siv hais txog
yog (cmd. Equals ("qhia"))
{
yog (device. Equals ("forecast")) {Consulta_previsao (); } lwm yog (device. Equals ("news")) {Consulta_noticias (); } lwm tus {//Debug. WriteLine("Unknown Device "); }
} lwm yog (cmd. Equals ("nkaum"))
{
yog (device. Equals ("forecast")) {//Tempo. Text = ""; tos qhov no. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Qhov no tam sim no ua haujlwm, vim nws tau ua haujlwm ntawm UI xov: this. Max_tit. Text = ""; this. Min_tit. Text = ""; this. Min. Text = ""; this. Max. Text = ""; this. Img_Tempo. Source = tshiab BitmapImage (tshiab Uri ("ms-appx: ///Images/blank.png"));
});
}
lwm tus yog (device. Equals ("news")) {tos qhov no. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Qhov no tam sim no ua haujlwm, vim nws tau ua haujlwm ntawm UI xov: qhov no. News1. Text = ""; this. News2. Text = ""; this. News3. Text = ""; this. News4. Text = ""; this. News5. Text = "";}); } lwm tus {// Debug. WriteLine ("Tsis paub ntaus ntawv"); }} lwm {//Debug. WriteLine("Unknown Command "); }
}
Kauj Ruam 4: Txoj Haujlwm - Exibir Previsão Do Tempo
Se o comando de voz detectado rau qhia huab cua, o método Consulta_previsao envia uma requisição HTTP ao site CPTEC ua INPE, que retorna a previsão do tempo em um arquivo xml. Após 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.
ntiag tug async void Consulta_previsao () {
HttpClient httpcliente = tshiab 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 = tshiab XmlDocument ();
previsao. LoadXml (respbody. Result);
XmlElement paus = previsao. DocumentElement;
XmlNodeList nodes = root. GetElementsByTagName ("tempo");
hlua prevtempo = (nodes. Item (0). InnerText);
hlua prevtempo1 = (nodes. Item (1). InnerText); hlua prevtempo2 = (nodes. Item (2). InnerText); hlua prevtempo3 = (nodes. Item (3). InnerText); nodes = root. GetElementsByTagName ("minima"); hlua tempmin = (nodes. Khoom (0). InnerText); nodes = root. GetElementsByTagName ("maxima"); hlua tempmax = (nodesItem (0). InnerText);
hlua rsultado_previsao = "";
hloov (prevtempo)
{case "ec": rsultado_previsao = "Chuvas_Isoladas.png"; tawg; rooj plaub "ci": rsultado_previsao = "Chuvas_Isoladas.png"; tawg; rooj plaub "c": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "hauv": rsultado_previsao = "Instavel.png"; tawg; rooj plaub "pp": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "cm": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "cn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; tawg; rooj plaub "pt": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "pm": rsultado_previsao = "Chuvas_Isoladas.png"; tawg; case "np": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "pc": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "pn": rsultado_previsao = "Nublado.png"; tawg; rooj plaub "cv": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "ch": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "t": rsultado_previsao = "Tempestade.png"; tawg; rooj plaub "ps": rsultado_previsao = "Sol.png"; tawg; rooj plaub "e": rsultado_previsao = "Sol_Encoberto.png"; tawg; rooj plaub "n": rsultado_previsao = "Nublado.png"; tawg; rooj plaub "cl": rsultado_previsao = "Sol.png"; tawg; rooj plaub "nv": rsultado_previsao = "Nevoeiro.png"; tawg; rooj plaub "g": rsultado_previsao = "Neve.png"; tawg; rooj plaub "ne": rsultado_previsao = "Neve.png"; tawg; rooj plaub "nd": rsultado_previsao = "na.png"; tawg; rooj plaub "pnt": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; tawg; rooj plaub "psc": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "pcm": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "pct": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "pcn": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "npt": rsultado_previsao = "Chuva.png"; tawg; case "npn": rsultado_previsao = "Chuva.png"; tawg; case "ncn": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "nct": rsultado_previsao = "Chuva.png"; tawg; case "ncm": rsultado_previsao = "Chuva.png"; tawg; case "npm": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "npp": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "vn": rsultado_previsao = "Instavel.png"; tawg; rooj plaub "ct": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "ppn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; tawg; rooj plaub "ppt": rsultado_previsao = "Chuva.png"; tawg; rooj plaub "ppm": rsultado_previsao = "Chuva.png"; tawg;
}
tos qhov no. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Qhov no tam sim no ua haujlwm, vim nws tau ua haujlwm ntawm UI xov: this. Max_tit. Text = "Máxima"; this. Min_tit. Text = "Mínima"; this. Min. Text = tempmin + "°"; this. Max. Text = tempmax + "°"; this. Img_Tempo. Source = tshiab BitmapImage (tshiab Uri ("ms-appx: /// Cov duab/" + rsultado_previsao));});
}
Kauj Ruam 5: Txoj Haujlwm - Exibir Notícias
Se o comando detectado rau qhia xov xwm, o método Consulta_noticias envia uma requisição HTTP ao pub de notícias da BBC, que também retorna um XML. Raws li cinco primeiras notícias são exibidas na tela em textblocks.
ntiag tug async void Consulta_noticias () {
HttpClient httpcliente2 = tshiab HttpClient ();
var resp2 = httpcliente2. GetAsync ("https://feeds.bbci.co.uk/port Portuguese/rss.xml"). Result;
resp2. EnsureSuccessStatusCode (); var respbody2 = resp2. Content. ReadAsStringAsync (); XmlDocument noticia = tshiab XmlDocument ();
noticia. LoadXml (respbody2. Result);
XmlElement root2 = noticia. DocumentElement;
XmlNodeList nodes2 = root2. GetElementsByTagName (@"npe");
tos qhov no. 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);
});
}
Kauj Ruam 6: Xaus
Ao reproduzir esse instructables, será possível realizar detecção de comandos de voz utilizando alguma placa com o Windos IoT Core instalado. Basta criar o arquivo de gramática com os comandos desejados.
Tus sau: Egon Patrick Marques Silva
Frederico Clark
Pom zoo:
Yuav Ua Li Cas Thiaj Li Siv Soldering (Cov Lus Qhia Cuab Yeej & Cov Lus Qhia): 4 Cov Kauj Ruam
Yuav Ua Li Cas Thiaj Li Siv Soldering (Cov Lus Qhia Cuab Yeej & Cov Cuab Yeej): Hav guys! Kuv vam tias koj twb nyiam kuv cov lus qhia yav dhau los " Arduino MIDI Controller DIY " thiab koj tau npaj rau qhov tshiab, raws li ib txwm kuv tab tom kawm qhia kom qhia koj yuav ua li cas thiaj ua tau qee yam khoom siv hluav taws xob txias, thiab tham txog
Cov Lus Qhia thiab Cov Lus Qhia rau Electronics: 6 Kauj Ruam (nrog Duab)
Cov Lus Qhia thiab Cov Lus Qhia rau Kev Siv Hluav Taws Xob: Hauv Cov Lus Qhia no, Kuv tau sau ua ke cov npe ntawm cov lus qhia thiab cov lus qhia kuv xav kom kuv paub thaum kuv tau pib ua ntej. Txhua " kauj ruam " yog pawg sib txawv, thiab txhua tus lej suav yog cov lus qhia lossis cov lus dag. Cov ncauj lus kom ntxaws nyob rau hauv txhua qhov khoom yog cov condensed ve
Kuv Me Me Whoop: Daim Ntawv Qhia Whoop + Cov Lus Qhia thiab Cov Lus Qhia: 8 Kauj Ruam
Kuv Me Me Whoop: Daim Ntawv Qhia Whoop + Cov Lus Qhia thiab Cov Lus Qhia: Kev Ceeb Toom: Tam sim no koj tab tom nkag mus rau kuv thawj qhov kev qhia, thiab koj yuav ntsib ntau yam kev ruam thiab tsis muaj phiaj xwm thiab/lossis txuj ci. Paub txog qhov no yog kuv tus kheej Tiny Whoop teeb tsa uas kuv siv txhua hnub, yog li kuv xav tias kuv yuav qhia nws. Nws yog phooj ywg mus ncig (tsis muaj
Kev Txhim Kho Game 101: Cov Lus Qhia & Cov Lus Qhia!: 11 Kauj Ruam
Kev Txhim Kho Game 101: Cov Lus Qhia & Cov Lus Qhia!: Yog li, koj puas nyiam ua yeeb yaj kiab game? Tej zaum nws txog lub sijhawm, koj tau tsim koj tus kheej! Tsis zoo nkauj? Lub tswv yim, uas koj tau txais los tsim koj tus kheej lub ntiaj teb, raws li koj cov cai thiab kev xav? Kuv xav tias nws yog, tab sis cia saib qhov tseeb rau tam sim no. Koj pib cr
Kaw Cov Suab rau Yeeb Yaj Kiab thiab Animations: Ob peb Cov Lus Qhia Ceev thiab Cov Lus Qhia: 8 Kauj Ruam
Kaw Cov Suab rau Yeeb Yaj Kiab thiab Animations: Ob peb Cov Lus Qhia Ceev thiab Ua Ntej: Yog tias koj yog tus kws kos duab, lossis tsuas yog menyuam yaus uas nyiam ua qee zaum ua cov yeeb yaj kiab rau youtube, tej zaum koj yuav muaj ob peb qhov teeb meem nrog kaw lub suab. Tsis muaj teeb meem li cas visually zoo cov vis dis aus lossis cov animation yuav yog, yog tias cov neeg saib nws tuaj yeem