freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

論文基于微軟語(yǔ)音引擎的語(yǔ)音識(shí)別(編輯修改稿)

2025-08-23 13:20 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 初始化過(guò)程中需要對(duì)語(yǔ)音識(shí)別進(jìn)行初始化,、語(yǔ)音識(shí)別對(duì)象的創(chuàng)建、上下文語(yǔ)音識(shí)別命令的創(chuàng)建、識(shí)別消息和感興趣事件的設(shè)置、語(yǔ)法和規(guī)則的裝載六個(gè)底層驅(qū)動(dòng)過(guò)程。接著是對(duì)串口進(jìn)行初始化,串口初始化的目的是為了與下位機(jī)進(jìn)行通信,串口初始化過(guò)程中需要進(jìn)行的操作有串口端口號(hào)的設(shè)定、輸入模式設(shè)定為二進(jìn)制模式、收到一個(gè)字節(jié)引發(fā)OnComm事件、串口參數(shù)的設(shè)置其中波特率9600bit/s,無(wú)奇偶校驗(yàn)。在以上語(yǔ)音識(shí)別引擎和串口初始化完畢,系統(tǒng)初始化完成,接下來(lái)是對(duì)程序消息函數(shù)的實(shí)現(xiàn)過(guò)程。在MFC程序運(yùn)行過(guò)程中,程序需要由事件驅(qū)動(dòng)。系統(tǒng)維護(hù)是維護(hù)窗口例行過(guò)程中主要的維護(hù)機(jī)制,對(duì)在傳入系統(tǒng)的消息時(shí)消息處理函數(shù)會(huì)對(duì)其進(jìn)行處理。在建立一個(gè)窗口前,為了讓消息處理函數(shù)與窗口建立聯(lián)系,消息處理函數(shù)必須先寫(xiě),當(dāng)系統(tǒng)檢測(cè)到消息時(shí)就會(huì)調(diào)用消息處理函數(shù)。消息函數(shù)中包含的消息事件是在程序流程中依次被取出,在程序執(zhí)行實(shí)現(xiàn),將實(shí)現(xiàn)結(jié)果依次發(fā)送到特定的窗口中。整個(gè)消息響應(yīng)過(guò)程是一個(gè)程序輪詢(xún)的過(guò)程。在程序輪詢(xún)中按照取出消息,派發(fā)消息的循環(huán)過(guò)程,直到退出循環(huán),程序終止[10]。本程序在對(duì)消息響應(yīng)函數(shù)的設(shè)計(jì)過(guò)程中,在語(yǔ)法規(guī)則被識(shí)別引擎CRInstanceCreat_ISP識(shí)別之后,應(yīng)用程序需要由ISpRecoContext對(duì)象發(fā)出語(yǔ)音識(shí)別消息,并調(diào)用識(shí)別消息的各個(gè)響應(yīng)函數(shù)。為了實(shí)現(xiàn)更多的擴(kuò)展應(yīng)用,使人機(jī)互動(dòng)過(guò)程更加靈活多樣,系統(tǒng)方案中加入了PC與MCU的通信部分。系統(tǒng)下位機(jī)設(shè)計(jì)的硬件部分包括51單片機(jī)最小系統(tǒng),電平轉(zhuǎn)換電路,語(yǔ)音播報(bào)模塊。系統(tǒng)下位機(jī)軟件設(shè)計(jì)采用C語(yǔ)言在Keil下編程。 下位機(jī)硬件設(shè)計(jì)這里使用STC89C51單片機(jī)作為下位機(jī)MCU,系統(tǒng)電源采用電腦USB接口電源供電,語(yǔ)音模塊供電部分采用兩個(gè)二極管達(dá)到降壓的目的,整個(gè)下位機(jī)電路系統(tǒng)包括語(yǔ)音模塊電路,單片機(jī)最小系統(tǒng)電路以及串口電平轉(zhuǎn)換電路,單片機(jī)最小系統(tǒng)電路如圖5所示。其中電路板設(shè)計(jì)使用Altium 軟件繪制原理圖與PCB,電路板工藝設(shè)計(jì)過(guò)程中主要經(jīng)過(guò)了電路板鉆孔、線路曝光、線路顯影以及線路腐蝕四個(gè)流程。圖5 單片機(jī)最小系統(tǒng) 串口電平轉(zhuǎn)換電路設(shè)計(jì)由于電腦電平使用的是CMOS電平,而下位機(jī)最小系統(tǒng)采用的是TTL電平,在上位機(jī)與下位機(jī)進(jìn)行數(shù)據(jù)交換時(shí)過(guò)程中,需要將電腦的COMS電平轉(zhuǎn)換成下位機(jī)的TTL電平,將下位機(jī)的TTL電平轉(zhuǎn)換成電腦的CMOS電平,上位機(jī)與下位機(jī)才能正常通信。本串口電平轉(zhuǎn)換芯片選用MAX232芯片,串口電平轉(zhuǎn)換電路如圖6所示?!D6 串口電平轉(zhuǎn)換電路 語(yǔ)音控制模塊及流水燈電路設(shè)計(jì)語(yǔ)音播報(bào)控制芯片選用廣東唯創(chuàng)的WTV020SD,該模塊控制方式多樣,這里選用該模塊的三線串口控制方式。其硬件鏈接方式簡(jiǎn)單,只需CLK,RST以及DI三條線路與單片機(jī)的IO連接。流水燈電路中使用7個(gè)發(fā)光二極管加一個(gè)1K歐排阻進(jìn)行限流,如圖7所示為語(yǔ)音控制模塊以及流水燈的接口電路。圖7 語(yǔ)音模塊與LED電路圖8下位機(jī)硬件實(shí)物圖 下位機(jī)軟件設(shè)計(jì)該系統(tǒng)下位機(jī)軟件采用C語(yǔ)言在Keil下編程實(shí)現(xiàn)。軟件實(shí)現(xiàn)的功能是當(dāng)上位機(jī)接收到語(yǔ)音命令信息,向下位機(jī)串口發(fā)送相應(yīng)的十六進(jìn)制字符,下位機(jī)接收到串口發(fā)送的數(shù)據(jù),通過(guò)選擇判斷,實(shí)現(xiàn)對(duì)應(yīng)的功能要求,本設(shè)計(jì)案例中加入了語(yǔ)音播報(bào)與流水燈閃爍過(guò)程。下位機(jī)軟件執(zhí)行流程如圖9所示:執(zhí)行相關(guān)功能模塊結(jié)束接收數(shù)據(jù)一致一致 否是等待串口發(fā)送并接收數(shù)劇波特率、IO口初始化開(kāi)始圖9 下位機(jī)執(zhí)行流程圖 下位機(jī)串口通信波特率設(shè)置為了使上位機(jī)與下位機(jī)能進(jìn)行正常通信,,波特率設(shè)定為9600 bit/s。根據(jù)波特率的計(jì)算公式: 其中X為定時(shí)器的初始值,fosc為單片機(jī)使用的晶振頻率大小。此過(guò)程需要對(duì)單片機(jī)的定時(shí)器,串行口控制寄存器以及PCON寄存器進(jìn)行設(shè)置。定時(shí)器工作方式選擇定時(shí)器一的方式二,串行口方式選擇方式一,即串行口使用10位通用異步通信接口,此時(shí)PCON寄存器的SMOD位設(shè)定為0。根據(jù)以上條件和波特率計(jì)算公式得出定時(shí)器一的初始值X。 語(yǔ)音播報(bào)控制芯片時(shí)序控制這里語(yǔ)音播報(bào)芯片WTV020SD使用的是三線串口控制模式,其實(shí)現(xiàn)機(jī)制是是由單片機(jī)的三個(gè)IO口按照一定的時(shí)序分別控制CLK,RST以及DI。其控制時(shí)序如圖10所示。在RST信號(hào)拉低5ms之后,CLK信號(hào)需要立即拉高300ms并等待數(shù)據(jù)線2ms的時(shí)間,數(shù)據(jù)線可隨時(shí)鐘線發(fā)送數(shù)據(jù),每次發(fā)送兩個(gè)字節(jié)數(shù)據(jù)即音頻文件的文件名,這里音頻文件名是以十六進(jìn)制形式命名的兩字節(jié)格式。當(dāng)文件名的十六位數(shù)據(jù)發(fā)送完畢,語(yǔ)音播報(bào)芯片開(kāi)始響應(yīng)輸出對(duì)應(yīng)的語(yǔ)音文件,即時(shí)序圖中的BUSY信號(hào)為高電位,表示有語(yǔ)音輸出這個(gè)狀態(tài)。圖10 三線串口控制時(shí)序系統(tǒng)上位機(jī)設(shè)計(jì)是在Windows7系統(tǒng)下進(jìn)行配置的,上位機(jī)實(shí)現(xiàn)調(diào)試階段主要是針對(duì)上位機(jī)麥克風(fēng)的訓(xùn)練。系統(tǒng)上位機(jī)在對(duì)Windows系統(tǒng)視窗程序、打開(kāi)網(wǎng)站和播放Flash動(dòng)畫(huà)都是在PC上完成的,當(dāng)用戶(hù)在一定的距離之內(nèi)對(duì)著麥克風(fēng)發(fā)出語(yǔ)音請(qǐng)求,Windows彈出相應(yīng)的功能表示上位機(jī)軟件在PC中的設(shè)計(jì)沒(méi)有問(wèn)題。上位機(jī)麥克風(fēng)訓(xùn)練過(guò)程首先需要打開(kāi)Windows7系統(tǒng),進(jìn)入控制面板的輕松訪問(wèn)界面啟動(dòng)語(yǔ)音識(shí)別并設(shè)置麥克風(fēng)。如圖11 所示為啟動(dòng)語(yǔ)音識(shí)別配置麥克風(fēng)。圖11 啟動(dòng)語(yǔ)音識(shí)別配置麥克風(fēng)當(dāng)上位機(jī)進(jìn)入系統(tǒng)彈出軟件歡迎動(dòng)畫(huà)界面如圖12所示。 圖12 軟件歡迎動(dòng)畫(huà)界面系統(tǒng)上位機(jī)軟件打開(kāi)后,當(dāng)用戶(hù)對(duì)著麥克風(fēng)呼出“阜陽(yáng)師范學(xué)院”,Windows界面彈出阜陽(yáng)師范學(xué)院的網(wǎng)站。圖13 小葉同學(xué)正對(duì)著麥克風(fēng)呼叫“阜陽(yáng)師范學(xué)院”圖14 Windows 彈出阜陽(yáng)師范學(xué)院網(wǎng)站窗口 下位機(jī)調(diào)試系統(tǒng)下位機(jī)調(diào)試主要針對(duì)串口通訊和語(yǔ)音播報(bào)模塊的時(shí)序調(diào)試。串口通訊調(diào)試過(guò)程中,由上位機(jī)發(fā)送十六進(jìn)制字符如果下位機(jī)接收到相應(yīng)的字符那么波特率設(shè)置正確。在語(yǔ)音播報(bào)控制模塊的調(diào)試中需要嚴(yán)格按照WTV020SD的三線控制時(shí)序,其中CLK與DI時(shí)序如圖15示波器截圖所示,黃線是CLK,綠線是DI。 圖15 示波器檢測(cè)到的CLK與DI時(shí)序波7. 設(shè)計(jì)總結(jié)本設(shè)計(jì)過(guò)程是學(xué)習(xí)與設(shè)計(jì)的同步過(guò)程,由于在校期間軟件方面知識(shí)很是欠缺,本設(shè)計(jì)是從開(kāi)始接觸MFC到了解在MFC平臺(tái)下開(kāi)發(fā)軟件的一個(gè)開(kāi)始階段。設(shè)計(jì)制作過(guò)程中也是從一點(diǎn)一滴學(xué)起來(lái)的,并逐步完善的。為了讓整體設(shè)計(jì)效果達(dá)到實(shí)用性與趣味性,在設(shè)計(jì)過(guò)程中相繼添加了幾個(gè)生活中實(shí)用性的模塊。因?yàn)檎Z(yǔ)音識(shí)別技術(shù)是人機(jī)互動(dòng)的一種方式,在人的意志控制下,以發(fā)出語(yǔ)言的方式讓機(jī)器來(lái)實(shí)現(xiàn)人的意愿是很有趣,很友好的。當(dāng)然,在設(shè)計(jì)過(guò)程遇到了一些問(wèn)題,解決這些問(wèn)題的過(guò)程的同時(shí)也提升了學(xué)習(xí)能力,在歷時(shí)幾個(gè)月的學(xué)習(xí)與設(shè)計(jì)的時(shí)間里,對(duì)軟件設(shè)計(jì)有了初步認(rèn)識(shí)。參考文獻(xiàn):[1] Microsoft Speech SDK Help [Z].[2] 李逸波,郭天杰,[M] 北京:電子工業(yè)出版社,1998.[3] 安居院猛,(日)[M] 北京:國(guó)防工業(yè)出版社,1987.[4] 孟威,黃維通 Visual C++ 程序設(shè)計(jì)教程[M] 北京:機(jī)械工業(yè)出版社,2002. [5] 李禹才,左友東, SDK的語(yǔ)音控制應(yīng)用程序的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用, 2004.[6] 李松, SpeechSDK5. 1 實(shí)現(xiàn)中英文朗讀[ J]. [7] [ J].微計(jì)算機(jī)息,2005.[8] 朱民雄,聞新,黃健群,周露計(jì)算機(jī)語(yǔ)音技術(shù)[M].北京:北京航空航天大學(xué)出版社,2002.[9] 楊尚國(guó),[J]1福建電腦,2006.[10] ,2007.附錄一:系統(tǒng)上位機(jī)部分源代碼//基于微軟語(yǔ)音引擎的語(yǔ)音識(shí)別////阜陽(yáng)師范學(xué)院////劉歡//include include include ifdef _DEBUGdefine new DEBUG_NEWundef THIS_FILEstatic char THIS_FILE[] = __FILE__。endif/////////////////////////////////////////////////////////////////////////////// CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialog{public: CAboutDlg()。 enum { IDD = IDD_ABOUTBOX }。 protected: virtual void DoDataExchange(CDataExchange* pDX)。 // DDX/DDV support protected: DECLARE_MESSAGE_MAP()}。 void CAboutDlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX)。 }BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CVoiceDlg dialogCVoiceDlg::CVoiceDlg(CWnd* pParent /*=NULL*/) : CDialog(CVoiceDlg::IDD, pParent){ B0=0。 m_hIcon = AfxGetApp()LoadIcon(IDR_MAINFRAME)。}void CVoiceDlg::DoDataExchange(CDataExchange* pDX){ CDialog::DoDataExchange(pDX)。 //{{AFX_DATA_MAP(CVoiceDlg) DDX_Control(pDX, IDC_EDIT1, m_Edit1
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1