সুচিপত্র:

এস্পেলহো ম্যাজিকো: 6 টি ধাপ
এস্পেলহো ম্যাজিকো: 6 টি ধাপ

ভিডিও: এস্পেলহো ম্যাজিকো: 6 টি ধাপ

ভিডিও: এস্পেলহো ম্যাজিকো: 6 টি ধাপ
ভিডিও: সবার জন্মদিন না দেখেই বলে দেব || Amazing Math Magic Trick || অঙ্কের ম্যাজিক 2024, নভেম্বর
Anonim
Image
Image

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।

ধাপ 1: হার্ডওয়্যার

হার্ডওয়্যার
হার্ডওয়্যার

ড্রাগনবোর্ড 410c

অডিও মেজানাইন বোর্ড

ধাপ ২:

ছবি
ছবি

ভিজ্যুয়াল স্টুডিও কমিউনিটি 2017, এবং একটি ভাষাগত সি#এর জন্য একটি প্রোগ্রাম। একটি ইন্টারফেস গ্রাফিক্স ফাই ফিটা ইউটিজেন্ডো ও এডিটর এক্সএএমএল ডু ভিসুয়াল স্টুডিও।

ধাপ 3: কর্মসূচী - Detecção De Voz

O Primeiro passo, foi trabalhar com a detecção de voz। A placa Audio Mezzanine Board já possui dois microfones integrados, que foram utilizados para a detecção। কোন ভিজ্যুয়াল স্টুডিও নেই, উইন্ডোজের একটি বিবলিওটেকা ইউটিজামোস। মিডিয়া।

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

ব্যক্তিগত async void InicializaVoz () {var idioma = new Windows. Globalization. Language ("en-US"); SpeechRecognizer সনাক্তকারী = নতুন SpeechRecognizer (idioma); স্বীকৃতিদাতা। স্বীকৃতিদাতা। string fileName = String. Format (SRGS_FILE); StorageFile grammarContentFile = অপেক্ষায় Package. Current. InstalledLocation. GetFileAsync (fileName); SpeechRecognitionGrammarFileConstraint grammarConstraint = নতুন SpeechRecognitionGrammarFileConstraint (grammarContentFile); স্বীকৃতিদাতা। SpeechRecognitionCompilationResult compilationResult = অপেক্ষার স্বীকৃতিদাতা। CompileConstraintsAsync (); যদি (compilationResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("Result:" + compilationResult. ToString ()); স্বীকৃতির অপেক্ষায়। } অন্যথায় {Debug. WriteLine ("Status:" + compilationResult. Status); }}

Após iniciar o reconhecimento, o método RecognizerResultGenerated recebe os comandos que foram interpretedados e compara com os comandos com os que estão configurados em um arquivo xml que foi criado e inserido na solução।

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 পূর্বাভাস (previsão) e news (notícias)।

ব্যক্তিগত async অকার্যকর RecognizerResultGenerated (SpeechContinuousRecognitionSession সেশন, SpeechContinuousRecognitionResultGeneratedEventArgs args) {

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

// বিভিন্ন ট্যাগ চেক করুন এবং ভেরিয়েবল শুরু করুন

স্ট্রিং টার্গেট = args. Result. SematicInterpretation. Properties. ContainsKey ("target")? args. Result. SematicInterpretation. Properties ["target"] [0]. ToString (): "";

স্ট্রিং cmd = args. Result. SematicInterpretation. Properties. ContainsKey ("cmd")?

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

স্ট্রিং ডিভাইস = args. Result. SemantInterpretation. Properties. ContainsKey ("device")?

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

// প্রথমে ব্যবহারকারী কোন ডিভাইসটিকে নির্দেশ করে তা পরীক্ষা করুন

যদি (cmd। সমতুল্য ("শো"))

{

যদি (device. Equals ("পূর্বাভাস")) {Consulta_previsao (); } অন্যথায় যদি (device. Equals ("news")) {Consulta_noticias (); } অন্যথায় {//Debug. WriteLine("Unknown Device "); }

} অন্যথায় যদি (cmd। সমান ("লুকান"))

{

যদি (device. Equals ("পূর্বাভাস")) {//Tempo. Text = ""; এই জন্য অপেক্ষা করুন। = ""; this. Min. Text = ""; this. Max. Text = ""; this. Img_Tempo. Source = new BitmapImage (নতুন Uri ("ms-appx: ///Images/blank.png"));

});

}

অন্যথায় যদি (device. Equals ("news")) {এই অপেক্ষা করুন।. News1. Text = ""; this. News2. Text = ""; this. News3. Text = ""; this. News4. Text = ""; this. News5. Text = ";}); } else {// Debug. WriteLine ("Unknown Device"); }} অন্য {//Debug. WriteLine(" অজানা কমান্ড "); }

}

ধাপ 4: কর্মসূচী - 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। Após 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।

ব্যক্তিগত async void Consulta_previsao () {

HttpClient httpcliente = নতুন HttpClient ();

// HttpResponseMessage resp = httpcliente. GetAsync ("https://servicos.cptec.inpe.br/XML/cidade/222/previsao.xml")। ফলাফল; var resp = httpcliente. GetAsync ("https://servicos.cptec.inpe.br/XML/cidade/222/previsao.xml")। ফলাফল; resp. EnsureSuccessStatusCode (); var respbody = resp. Content. ReadAsStringAsync (); XmlDocument previsao = নতুন XmlDocument ();

previsao. LoadXml (respbody. Result);

XmlElement root = previsao. DocumentElement;

XmlNodeList নোড = root. GetElementsByTagName ("টেম্পো");

স্ট্রিং prevtempo = (nodes. Item (0). InnerText);

স্ট্রিং prevtempo1 = (nodes. Item (1). InnerText); স্ট্রিং prevtempo2 = (nodes. Item (2). InnerText); স্ট্রিং prevtempo3 = (nodes. Item (3). InnerText); nodes = root. GetElementsByTagName ("minima"); স্ট্রিং tempmin = (নোডস। আইটেম (0)। ইনার টেক্সট); nodes = root. GetElementsByTagName ("maxima"); স্ট্রিং tempmax = (nodes. Item (0). InnerText);

স্ট্রিং rsultado_previsao = "";

সুইচ (prevtempo)

{case "ec": rsultado_previsao = "Chuvas_Isoladas.png"; বিরতি; কেস "সিআই": rsultado_previsao = "Chuvas_Isoladas.png"; বিরতি; কেস "সি": rsultado_previsao = "Chuva.png"; বিরতি; কেস "ইন": rsultado_previsao = "Instavel.png"; বিরতি; কেস "পিপি": rsultado_previsao = "Chuva.png"; বিরতি; কেস "সেমি": rsultado_previsao = "Chuva.png"; বিরতি; কেস "cn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; বিরতি; কেস "pt": rsultado_previsao = "Chuva.png"; বিরতি; কেস "pm": rsultado_previsao = "Chuvas_Isoladas.png"; বিরতি; কেস "np": rsultado_previsao = "Chuva.png"; বিরতি; কেস "পিসি": rsultado_previsao = "Chuva.png"; বিরতি; কেস "pn": rsultado_previsao = "Nublado.png"; বিরতি; কেস "সিভি": rsultado_previsao = "Chuva.png"; বিরতি; কেস "চ": rsultado_previsao = "Chuva.png"; বিরতি; কেস "টি": rsultado_previsao = "Tempestade.png"; বিরতি; কেস "ps": rsultado_previsao = "Sol.png"; বিরতি; কেস "ই": rsultado_previsao = "Sol_Encoberto.png"; বিরতি; কেস "n": rsultado_previsao = "Nublado.png"; বিরতি; কেস "cl": rsultado_previsao = "Sol.png"; বিরতি; কেস "এনভি": rsultado_previsao = "Nevoeiro.png"; বিরতি; কেস "g": rsultado_previsao = "Neve.png"; বিরতি; কেস "নে": rsultado_previsao = "Neve.png"; বিরতি; কেস "nd": rsultado_previsao = "na.png"; বিরতি; কেস "pnt": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; বিরতি; কেস "psc": rsultado_previsao = "Chuva.png"; বিরতি; কেস "পিসিএম": rsultado_previsao = "Chuva.png"; বিরতি; কেস "pct": rsultado_previsao = "Chuva.png"; বিরতি; কেস "পিসিএন": rsultado_previsao = "Chuva.png"; বিরতি; কেস "npt": rsultado_previsao = "Chuva.png"; বিরতি; কেস "npn": rsultado_previsao = "Chuva.png"; বিরতি; কেস "ncn": rsultado_previsao = "Chuva.png"; বিরতি; কেস "nct": rsultado_previsao = "Chuva.png"; বিরতি; কেস "এনসিএম": rsultado_previsao = "Chuva.png"; বিরতি; কেস "npm": rsultado_previsao = "Chuva.png"; বিরতি; কেস "npp": rsultado_previsao = "Chuva.png"; বিরতি; কেস "vn": rsultado_previsao = "Instavel.png"; বিরতি; কেস "সিটি": rsultado_previsao = "Chuva.png"; বিরতি; কেস "পিপিএন": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; বিরতি; কেস "পিপিটি": rsultado_previsao = "Chuva.png"; বিরতি; কেস "পিপিএম": rsultado_previsao = "Chuva.png"; বিরতি;

}

এই জন্য অপেক্ষা করুন। টেক্সট = "মনিমা"; এই। মিনি। ছবি/" + rsultado_previsao))}});

}

ধাপ 5: কর্মসূচি - এক্সিবিয়ার বিজ্ঞপ্তি

Se o comando detectado for show news, o método Consulta_noticias envia uma requisição HTTP ao feed de notícias da BBC, que também retorna um XML। Cinco Primeiras notícias são exibidas na tela em textblocks হিসাবে।

ব্যক্তিগত async void Consulta_noticias () {

HttpClient httpcliente2 = নতুন HttpClient ();

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

resp2. EnsureSuccessStatusCode (); var respbody2 = resp2. Content. ReadAsStringAsync (); XmlDocument noticia = নতুন XmlDocument ();

noticia. LoadXml (respbody2. Result);

XmlElement root2 = noticia. DocumentElement;

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

এই জন্য অপেক্ষা করুন।

{this. News1. Text = (nodes2. Item (2). InnerText); এই নিউজ ২. টেক্সট = (নোডস ২. আইটেম ()) এই নিউজ 3. টেক্সট = (নোডস 2. আইটেম (4) এই। News4. Text = (nodes2. Item (5)। InnerText) এই। নিউজ 5. টেক্সট = (নোডস 2

});

}

ধাপ 6: উপসংহার

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।

অটোরস: ইগন প্যাট্রিক মার্কেস সিলভা

ফ্রেডেরিকো ক্লার্ক

প্রস্তাবিত: