فهرست مطالب:
- مرحله 1: سخت افزار
- گام 2:
- مرحله 3: Programação - Detecção De Voz
- مرحله 4: Programação - Exibir Previsão Do Tempo
- مرحله 5: Programação - Exibir Notícias
- مرحله 6: نتیجه گیری
تصویری: Espelho Mágico: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
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 ، nouo humve como useisar um devido a contratempos.
مرحله 1: سخت افزار
Dragonboard 410c
تخته میزانسن صوتی
گام 2:
برای استفاده از برنامه Visual Studio Community 2017 ، و یک زبان c#. رابط کاربری برای استفاده از ویرایشگر XAML در Visual Studio.
مرحله 3: Programação - Detecção De Voz
O Primeiro passo، foi trabalhar com a detecção de voz. A placa Audio Mezzanine board می توانید از میکروفون های یکپارچه استفاده کنید ، به این منظور می توانید از آنها برای تشخیص استفاده کنید. بدون ویژوال استودیو ، از biblioteca Windows. Media. SpeechRecognition برای رمزگشایی یک 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 = SpeechRecognizer جدید (اصطلاح) ؛ nasizer. StateChanged += RecognizerStateChanged؛ nasizer. ContinuousRecognitionSession. ResultGenerated += RecognizerResultGenerated؛ string fileName = String. Format (SRGS_FILE) ؛ StorageFile grammarContentFile = منتظر Package. Current. InstalledLocation. GetFileAsync (نام فایل)؛ SpeechRecognitionGrammarFileConstraint grammarConstraint = new SpeechRecognitionGrammarFileConstraint (grammarContentFile)؛ تشخیص دهنده. محدودیت ها. افزودن (grammarConstraint) ؛ SpeechRecognitionCompilationResult compilationResult = منتظر شناسه كنيد. CompileConstraintsAsync ()؛ if (compilationResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("Result:" + compilationResult. ToString ()) ؛ در انتظار شناسایی } else {Debug. WriteLine ("وضعیت:" + compilationResult. Status) ؛ }}
Após iniciar o reconhecimento، o método RecognizerResultGenerated recebe os comandos que foram interpretados 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 insidir o idioma português، os comandos utilisados foram show (mostrar) e hide (esconder) و o que deve ser mostrado forecast (previsão) e news (notícias).
خصوصی async void RecognizerResultGenerated (SpeechContinuousRecognitionSession session، SpeechContinuousRecognitionResultGeneratedEventArgs args) {
int count = args. Result. SemanticInterpretation. Properties. Count؛
// تگ های مختلف را بررسی کرده و متغیرها را مقداردهی کنید
String target = args. Result. SemanticInterpretation. Properties. ContainsKey ("هدف")؟ args. Result. SemanticInterpretation. Properties ["target"] [0]. ToString (): ""؛
رشته cmd = args. Result. SemanticInterpretation. Properties. ContainsKey ("cmd")؟
args. Result. SemanticInterpretation. Properties ["cmd"] [0]. ToString (): ""؛
String device = args. Result. SemanticInterpretation. Properties. ContainsKey ("دستگاه")؟
args. Result. SemanticInterpretation. Properties ["device"] [0]. ToString (): ""؛
// ابتدا بررسی کنید که کاربر به کدام دستگاه مراجعه می کند
if (cmd. Equals ("show"))
{
if (device. Equals ("پیش بینی")) {Consulta_previsao ()؛ } else if (device. Equals ("اخبار")) {Consulta_noticias ()؛ } else {//Debug. WriteLine(" دستگاه ناشناس ")؛ }
} else if (cmd. Equals ("پنهان کردن"))
{
if (device. Equals ("پیش بینی")) {//Tempo. Text = ""؛ منتظر this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High ، () => {// این اکنون کار می کند ، زیرا روی نخ UI اجرا می شود: this. Max_tit. Text = ""؛ this. Min_tit. Text = ""؛ this. Min. Text = ""؛ this. Max. Text = ""؛ this. Img_Tempo. Source = BitmapImage جدید (Uri جدید ("ms-appx: ///Images/blank.png")) ؛
});
}
else if (device. Equals ("اخبار")) {منتظر این باشید. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High، () => {// این اکنون کار می کند ، زیرا روی نخ UI اجرا می شود: این. News1. Text = ""؛ this. News2. Text = ""؛ this. News3. Text = ""؛ this. News4. Text = ""؛ this. News5. Text = ""}})؛ } else {// Debug. WriteLine ("دستگاه ناشناس") ؛ }} else {//Debug. WriteLine(" فرمان ناشناس ")؛ }
}
مرحله 4: Programação - Exibir Previsão Do Tempo
به منظور پیش بینی نمایش ، از طریق دستورالعمل های پیش بینی شده ، باید از HTTP یا CPTEC do INPE استفاده کنید ، بنابراین می توانید سرعت و سرعت 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 = new 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) ؛
root XmlElement = previsao. DocumentElement؛
گره های XmlNodeList = root. GetElementsByTagName ("سرعت") ؛
string prevtempo = (nodes. Item (0). InnerText) ؛
string prevtempo1 = (گره ها. مورد (1). InnerText) ؛ string prevtempo2 = (گره ها. مورد (2). InnerText) ؛ string prevtempo3 = (گره ها. مورد (3). InnerText) ؛ nodes = root. GetElementsByTagName ("حداقل") ؛ string tempmin = (nodes. Item (0). InnerText) ؛ nodes = root. GetElementsByTagName ("حداکثر") ؛ string tempmax = (nodes. Item (0). InnerText) ؛
string rsultado_previsao = ""؛
سوئیچ (prevtempo)
{case "ec": rsultado_previsao = "Chuvas_Isoladas.png"؛ زنگ تفريح؛ مورد "ci": rsultado_previsao = "Chuvas_Isoladas.png"؛ زنگ تفريح؛ مورد "c": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "in": rsultado_previsao = "Instavel.png"؛ زنگ تفريح؛ مورد "pp": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "cm": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "cn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"؛ زنگ تفريح؛ مورد "pt": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ case "pm": rsultado_previsao = "Chuvas_Isoladas.png"؛ زنگ تفريح؛ مورد "np": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "pc": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "pn": rsultado_previsao = "Nublado.png"؛ زنگ تفريح؛ مورد "cv": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "ch": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "t": rsultado_previsao = "Tempestade.png"؛ زنگ تفريح؛ مورد "ps": rsultado_previsao = "Sol.png"؛ زنگ تفريح؛ مورد "e": rsultado_previsao = "Sol_Encoberto.png"؛ زنگ تفريح؛ مورد "n": rsultado_previsao = "Nublado.png"؛ زنگ تفريح؛ مورد "cl": rsultado_previsao = "Sol.png"؛ زنگ تفريح؛ مورد "nv": rsultado_previsao = "Nevoeiro.png"؛ زنگ تفريح؛ مورد "g": rsultado_previsao = "Neve.png"؛ زنگ تفريح؛ مورد "ne": rsultado_previsao = "Neve.png"؛ زنگ تفريح؛ مورد "nd": rsultado_previsao = "na.png"؛ زنگ تفريح؛ مورد "pnt": rsultado_previsao = "Chuvas_Isoladas_Noite.png"؛ زنگ تفريح؛ مورد "psc": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "pcm": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ case "pct": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "pcn": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "npt": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "npn": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "ncn": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ case "nct": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "ncm": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "npm": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "npp": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "vn": rsultado_previsao = "Instavel.png"؛ زنگ تفريح؛ مورد "ct": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "ppn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"؛ زنگ تفريح؛ مورد "ppt": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "ppm": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛
}
منتظر this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High ، () => {// این اکنون کار می کند ، زیرا روی نخ UI اجرا می شود: 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 (Uri جدید ("ms-appx: /// تصاویر/" + rsultado_previsao))؛}})؛
}
مرحله 5: Programação - Exibir Notícias
برای اطلاع از اخبار نمایش ، از طریق مشاوره_نظرهای مربوط به درخواست HTTP یا اخبار مربوط به بی بی سی ، و همچنین ذخیره مجدد XML درخواست کنید. As 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. 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: نتیجه گیری
می توانید دستورالعمل های خود را بازنویسی کنید ، و می توانید از طریق برنامه های کاربردی ویندوز IoT Core instalado از طریق استفاده از آنها استفاده کنید. Basta criar o arquivo de gramática com os comandos desejados.
نویسندگان: اگون پاتریک مارکز سیلوا
فردریکو کلارک
توصیه شده:
مرحله به مرحله ساخت کامپیوتر: 9 مرحله
گام به گام ساخت کامپیوتر: لوازم: سخت افزار: مادربرد CPU & amp؛ CPU coolerPSU (منبع تغذیه) ذخیره سازی (HDD/SSD) RAMGPU (لازم نیست) مورد ابزار: پیچ گوشتی دستبند ESD/خمیر ماتریسمی با اپلیکاتور
سه مدار بلندگو -- آموزش مرحله به مرحله: 3 مرحله
سه مدار بلندگو || آموزش گام به گام: مدار بلندگو سیگنال های صوتی دریافت شده از محیط را بر روی MIC تقویت می کند و از محل تولید صدای تقویت شده به بلندگو ارسال می کند. در اینجا ، من سه روش مختلف برای ساخت این مدار بلندگو با استفاده از موارد زیر را به شما نشان خواهم داد
مرحله به مرحله اتوماسیون خانگی با استفاده از Wemos D1 Mini با طراحی PCB: 4 مرحله
گام به گام اتوماسیون خانگی با استفاده از Wemos D1 Mini با طراحی PCB: اتوماسیون خانگی گام به گام با استفاده از Wemos D1 Mini با طراحی PCB چند هفته قبل ما آموزش "اتوماسیون خانگی با استفاده از تمشک پای" را در rootaid.com منتشر کردیم که مورد استقبال علاقه مندان و علاقه مندان قرار گرفت. دانشجو. سپس یکی از اعضای ما آمد
نصب Smapler V0002 مرحله به مرحله: 5 مرحله
نصب Smapler V0002 گام به گام: Smapler یک مدار است که به تولید صدای مولد توسط David Cuartielles و Ino Schlaucher از BlushingBoy.org اختصاص داده شده است. Smapler v0002 - نسخه آاکا سنگاپور - چیزی نیست جز سپر آردوینو که برای بازی استری بد بو استفاده می شود
نصب Smapler V0001r2 مرحله به مرحله: 3 مرحله
نصب Smapler V0001r2 مرحله به مرحله: این یک راهنمای عکاسی برای نصب Smapler v0001r2 است. این یک مدار مستقل سازگار با آردوینو با اتصال کارت SD داخلی ، اتصال PS2 برای ماوس/صفحه کلید ، تقویت کننده صدا و تعدادی پین I/O برای سنسورها است. با آن شما