版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于樹莓派的“魔鏡”錯誤!未找到引用源。。if(this.displaySeconds){ html=_now.format(this._timeFormat+':mm').replace(/./g,'<spanclass="digit">$&</span>')+ '<spanclass="sec">'+_now.format('ss').replace(/./g,'<spanclass="digit">$&</span>')+'</span>'; if(typeofervalId=='undefined'){ ervalId=setInterval(function(){ this.updateTime(); }.bind(this),this.updateInterval); }如果不顯示秒數(shù)且定義了intervalId,則使用clearInterval()方法取消由setInterval()設(shè)置的timeout。將intervalId設(shè)置為undefined。else{ html=_now.format(this._timeFormat+':mm').replace(/./g,'<spanclass="digit">$&</span>'); if(ervalId){ clearInterval(ervalId); ervalId=undefined; } seconds=60-(newDate()).getSeconds(); setTimeout(function(){ this.updateTime(); }.bind(this),seconds*1000); }判斷數(shù)字是否是淺入淺出的模式,搜索每個數(shù)字類。fadeTo()方法將被選元素的不透明度逐漸地改變?yōu)橹付ǖ闹?。{ $('.fade').fadeTo(400,0.25,function(){ if(typeofdiff!='undefined'){ $(this.timeLocation).html(diff.html()); diff=undefined; } $('.fade').fadeTo(400,1).removeClass('fade'); }.bind(this)); }5.2溫度天氣風(fēng)力模塊本模塊顯示了風(fēng)力大小,當(dāng)天日落時間,即時天氣和溫度。使用CSS進(jìn)行布局,將模塊放在界面的右上角,動態(tài)顯示。圖5-2溫度天氣風(fēng)力流程圖Fig.5-2Thediagramistheprocessoftemperature,weatherandwind具體實現(xiàn):定義weather對象,對象屬性是name:value對。varweather={ lang:config.lang||'nl', params:config.weather.params||null, iconTable:{ '01d':'wi-day-sunny', '02d':'wi-day-cloudy', '03d':'wi-cloudy', '04d':'wi-cloudy-windy', '09d':'wi-showers', '10d':'wi-rain', '11d':'wi-thunderstorm', '13d':'wi-snow', '50d':'wi-fog', '01n':'wi-night-clear', '02n':'wi-night-cloudy', '03n':'wi-night-cloudy', '04n':'wi-night-cloudy', '09n':'wi-night-showers', '10n':'wi-night-rain', '11n':'wi-night-thunderstorm', '13n':'wi-night-snow', '50n':'wi-night-alt-cloudy-windy' }, temperatureLocation:'.temp', windSunLocation:'.windsun', forecastLocation:'.forecast', apiVersion:'2.5', apiBase:'/data/', weatherEndpoint:'weather', forecastEndpoint:'forecast/daily', updateInterval:erval||6000, fadeInterval:config.weather.fadeInterval||1000, intervalId:null, orientation:config.weather.orientation||'vertical',}設(shè)置浮點數(shù)舍入小數(shù)點最后一位weather.roundValue=function(temperature){ returnparseFloat(temperature).toFixed(1);}以每小時公里數(shù)為單位的風(fēng)速,風(fēng)速轉(zhuǎn)換為相應(yīng)的Beaufort數(shù)weather.ms2Beaufort=function(ms){ varkmh=ms*60*60/1000; varspeeds=[1,5,11,19,28,38,49,61,74,88,102,117,1000]; for(varbeaufortinspeeds){ varspeed=speeds[beaufort]; if(speed>kmh){ returnbeaufort; } } return12;}OpenweathermapAPI接口{ type:'GET', url:weather.apiBase+'/'+weather.apiVersion+'/'+weather.weatherEndpoint, dataType:'json', data:weather.params, success:function(data){}}5.3問候語模塊本模塊按3個時間段顯示9條問候語,每個時間段隨機3條,30秒更換一次,問候語可以在config.js中進(jìn)行設(shè)置。使用CSS進(jìn)行布局,將模塊放在界面的中下方,動態(tài)顯示。具體實現(xiàn):圖5-3問候語流程圖Fig.5-3Thediagramistheprocessofcompliments 創(chuàng)建一個comliments的對象,對象屬性是name:value對。varcompliments={ complimentLocation:'.compliment', currentCompliment:'', complimentList:{ 'morning':pliments.morning, 'afternoon':pliments.afternoon, 'evening':pliments.evening }, updateInterval:erval||30000, fadeInterval:pliments.fadeInterval||4000, intervalId:null};主體函數(shù)中創(chuàng)建一個_list數(shù)組,才if語句中使用slice()方法,compliments數(shù)組按值復(fù)制,這樣保持原來的數(shù)組不會改變。3到12點為早上,12到17點為下午,17點到3點為晚上。利用Object.keys().forEach遍歷對象數(shù)組。再使用concat進(jìn)行連接。var_list=[]; varhour=moment().hour(); if(hour>=3&&hour<12){ _list=plimentList['morning'].slice(); }elseif(hour>=12&&hour<17){ _list=plimentList['afternoon'].slice(); }elseif(hour>=17||hour<3){ _list=plimentList['evening'].slice(); }else{ Object.keys(plimentList).forEach(function(_curr){ _list=_list.concat(plimentList[_curr]).slice(); }); } var_spliceIndex=_list.indexOf(compliments.currentCompliment); if(_spliceIndex!==-1){ _list.splice(_spliceIndex,1); } var_randomIndex=Math.floor(Math.random()*_list.length); compliments.currentCompliment=_list[_randomIndex]; $('.compliment').updateWithText(compliments.currentCompliment,compliments.fadeInterval);5.4語音交互模塊圖5-4語音交互流程圖Fig.5-4Thediagramistheprocessofvoiceinteraction系統(tǒng)運行原理及核心代碼: 首先運行demo.py文件,使用snowboydecoder離線的語音喚醒平臺,將自己訓(xùn)練好的識別模型作為運行參數(shù)給demo.py文件。導(dǎo)入所需的模塊。importsnowboydecoderimportsysimportsignalimportosfromroobt_talkimportroobt_talk主要喚醒函數(shù)wake_up(),函數(shù)調(diào)用own_talk()函數(shù),其中own_talk()又調(diào)用wake_up()函數(shù),這樣實現(xiàn)了循環(huán)監(jiān)聽喚醒詞,一旦喚醒詞匹配,就可以進(jìn)行語音交互。defown_talk():snowboydecoder.play_audio_file()snowboydecoder.play_audio_file()detector.terminate()roobt_talk()wake_up()defwake_up():globaldetectormodel='/home/pi/rpi/mojing.pmdl'signal.signal(signal.SIGINT,signal_handler)detector=snowboydecoder.HotwordDetector(model,sensitivity=0.5)print('Listening...PressCtrl+Ctoexit')detector.start(detected_callback=own_talk,#snowboydecoder.play_audio_file,interrupt_check=interrupt_callback,sleep_time=0.03)detector.terminate()交互過程中,首先語音文件傳輸?shù)桨俣日Z音識別平臺,識別成字符轉(zhuǎn)保存為txt格式文本,再傳遞給圖靈機器人平臺進(jìn)行文字識別,圖靈機器人予以回復(fù)文字,百度語音合成平臺對字符串進(jìn)行編碼解碼,合成wav音頻文件進(jìn)行輸出。主要函數(shù):fetch_token()用來身份驗證yuyingshibie()語音識別signal_handler()信號傳遞interrupt_callback()中斷回調(diào)own_talk()語音交互wake_up()語音喚醒save_wave_file()數(shù)據(jù)保存為文件roobt_talk()圖靈機器人交互tuling_reply()圖靈機器人的回復(fù)5.5本章小結(jié) HTML,CSS,JavaScript等技術(shù)的使用為魔鏡系統(tǒng)前端界面的簡易性,可用性,交互性,友好性奠定了基礎(chǔ)。單代碼種類繁多往往會導(dǎo)致代碼的冗余,降低了系統(tǒng)的擴展性和適應(yīng)性。本節(jié)魔鏡系統(tǒng)的軟件設(shè)計采用了Web前端分層的開發(fā)模式,將網(wǎng)頁分為三層,結(jié)構(gòu)層、表示層以及行為層。結(jié)構(gòu)層由HTML創(chuàng)建,主要功能是負(fù)責(zé)頁面內(nèi)容的劃分;表示層由CSS來實現(xiàn),主要負(fù)責(zé)結(jié)構(gòu)層內(nèi)容的顯示樣式;行為層由JS創(chuàng)建,主要負(fù)責(zé)網(wǎng)頁的內(nèi)容交互以及動態(tài)效果顯示。Web前端分層開發(fā)模式不僅給系統(tǒng)提供了一個清晰嚴(yán)謹(jǐn)?shù)慕Y(jié)構(gòu),而且增加了代碼的復(fù)用性,為后期系統(tǒng)的維護與擴展提供了便利的條件。6系統(tǒng)實現(xiàn)6.1樹莓派系統(tǒng)的安裝及配置(1)/downloads/下載Raspbian版本的操作系統(tǒng),將MicroSD卡插入讀卡器中,此處推薦使用USB3.0的讀卡器以及USB口,MicroSD卡推薦使用SanDiskC10的高速卡,16G內(nèi)存以上,保證系統(tǒng)運行的速度。打開SDCardFormatterv5_WinEN工具將MicroSD卡格式化。打開win32diskimager-v0.9-binary,選擇MicroSD卡和下載的img鏡像進(jìn)行燒錄。(2)將MicroSD卡插入樹莓派中,接好鼠標(biāo),鍵盤顯示器,進(jìn)行開機,選擇中文系統(tǒng),連接WIFI并升級系統(tǒng)。sudoapt-getupdatesudoapt-getupgrade(3)設(shè)置root和pi賬戶的密碼sudopasswdrootsudopasswdpi(4)執(zhí)行ifconfig命令,記下ip地址(5)開啟ssh服務(wù),方便在筆記本上進(jìn)行連接(linux下使用sshpi@ip地址,win下使 用putty進(jìn)行連接)sudoservicesshstart(6)設(shè)置ssh開機自啟動編輯/etc/rc.local文件,即執(zhí)行sudonano/etc/rc.local,將servicesshdstart放在exit0之前,crtl+o進(jìn)行保存,ctrl+x離開編輯器(7)安裝中文輸入法sudoapt-getinstallscim-pinyin(8)在樹梅派boot分區(qū)中編輯config配置文件,加入兩行代碼。sudonano/boot/config將屏幕旋轉(zhuǎn)90度(display_rotate=1)支持HDMI熱拔插(hdmi_force_hotpug=1)(9)安裝ftp工具,方便筆記本和樹梅派之間的文件傳送。sudoapt-getinstallvsftpd并啟動ftp服務(wù)sudoservicevsftpdstart6.2智能魔鏡的顯示界面環(huán)境配置(1)修改vsftpd配置文件pam_service_name=vsftpdrsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pemrsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.keyssl_enable=NOlisten=NOlisten_ipv6=YESanonymous_enable=NOlocal_enable=YES write_enable=YESlocal_umask=000dirmessage_enable=YESuse_localtime=YESconnect_from_port_20=YESsecure_chroot_dir=/var/run/vsftpd/emptylocal_root=/var/www/html(2)設(shè)置文件夾權(quán)限sudochmod-R777/var/www/html(3)配置服務(wù)器安裝Apachce:sudoapt-getinstallapache2sudoapt-getinstallapache2-docsudoapt-getinstallapache2-utils安裝php:sudoapt-getinstallphp7.0sudoapt-getinstalllibapache2-mod-php7.0php-pearphp-cache-lite建立一個PHP網(wǎng)頁sudovim/var/www/html/index.php輸入以下內(nèi)容<html><?phpPhpinfo();?></html>保存后在瀏覽器中輸入并回車,出現(xiàn)以下界面即為成功(4)設(shè)置Chromiume的開機自啟,全屏運行并指向特定頁面在/home/pi/.config目錄里創(chuàng)建一個auto_start文件夾mkdir/home/pi/.config/auto_start/在/home/pi/.config/autostart目錄里創(chuàng)建并編輯myexec.desktop文件vim/home/pi/.config/auto_start/myexec.desktop輸入以下內(nèi)容[DesktopEntry]Type=ApplicationExec=chromium-browser--disable-popup-blocking--no-first-run --disable-desktop-notifications--kioskvim編輯器:wq鍵是寫入文件(保存文件)并退出。在Chromium瀏覽器中設(shè)置開啟瀏覽器是打開指定頁為:http://localhost將鼠標(biāo)不移動時自動隱藏光標(biāo)sudoapt-getinstallx11-xserver-utilsunclutter(5)禁用屏保sudovim/etc/lightdm/lightdm.conf找到#xserver-command=X 取消#注釋改成xserver-command=X-s0dpms(6)使用filezilla工具將代碼傳送到到樹梅派的/var/www/html目錄下filezilla工具的使用方法:地址就是你的樹莓派ip地址,用戶名是你樹莓派登 陸用戶名,密碼是你樹莓派登陸密碼,端口是默認(rèn)端口:216.3智能魔鏡的語音交互環(huán)境配置樹莓派語音環(huán)境配置安裝pipwgethttps://bootstrap.pypa.io/get-pip.pysudopython3get-pip.py安裝pydubsudopip3pydub安裝python3-pyaudiosudoapt-getinstallpython3-pyaudiosudoapt-getinstallpython-pyaudiosudoapt-getinstalllibatlas-base-dev運行語音系統(tǒng)(在rpi目錄下)sudopythondemo.pymojing.pmdl設(shè)置語音系統(tǒng)開機自啟動cd/etc/init.d/sudonanoautorun.sh在文件中輸入一下內(nèi)容#!/bin/bashcd/home/pi/rpisudopythondemo.pymojing.pmdl保存退出。執(zhí)行sudochmoda+x/etc/init.d/autorun.shsudoapt-getinstallchkconfigsudochkconfig--addautorun.shsudochkconfigautorun.shon下載編譯swigsudowget/swig/swig-3.0.10.tar.gzsudotar-xvzfswig-3.0.10.tar.gzcdswig-3.0.10/./configure--prefix=/usrsudomakesudomakeinstallsudoinstall-v-m755-d/usr/share/doc/swig-3.0.10sudocp-v-RDoc/*/usr/share/doc/swig-3.0.10cd..編譯安裝snowboysudogitclone/Kitt-AI/snowboycdsnowboy/swig/Python3sudomake打開/snowboy/snowboy/examples/Python3/snowboydecoder.py,修改from.importsnowboydetec改為importsnowboydetec,復(fù)制所需文件到自己的工程目錄。6.4智能魔鏡的展示 智能魔鏡實物內(nèi)部硬件連接圖,如圖6-1圖6-1魔鏡實物內(nèi)部連線圖Fig.6-1ThediagramistheMirrorinternalconnection 智能魔鏡語音系統(tǒng)手動運行識別如圖6-2:圖6-2魔鏡語音系統(tǒng)截圖Fig.6-2Th
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年設(shè)備供應(yīng)協(xié)議法律文本范例版
- 2024年網(wǎng)絡(luò)安全設(shè)備及服務(wù)租賃合同
- 2024年鋼材交易合同范本3篇
- 2024年零售行業(yè)數(shù)據(jù)挖掘與分析服務(wù)契約3篇
- 2024年項目復(fù)工補充協(xié)議3篇
- 2025年度特殊造型門窗定制與安裝合同范本3篇
- 通信工程割接監(jiān)理細(xì)則
- 五金供應(yīng)商評價語
- 2024液化天然氣國內(nèi)公路物流服務(wù)協(xié)議版B版
- 2025年度財務(wù)總監(jiān)崗位聘用合同樣本3篇
- 中南大學(xué)年《高等數(shù)學(xué)上》期末考試試題及答案
- 付款通知確認(rèn)單
- 汽機油管道安裝方案指導(dǎo)
- 2022年中國城市英文名稱
- 小龍蝦高密度養(yǎng)殖試驗基地建設(shè)項目可行性研究報告
- 《橋梁工程計算書》word版
- 中考《紅星照耀中國》各篇章練習(xí)題及答案(1-12)
- 下肢皮牽引護理PPT課件(19頁PPT)
- 舒爾特方格55格200張?zhí)岣邔W⒘4紙直接打印版
- 施工單位現(xiàn)場收方記錄表
- 參會嘉賓簽到表
評論
0/150
提交評論