原型:
成都創(chuàng)新互聯(lián)2013年至今,先為莆田等服務(wù)建站,莆田等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為莆田企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
int WINAPI icePub_createWordBmpFile(char *strWord,char *strBmpFilename,int bmpWidth,int bmpHeight)
輸入:strWord 文本串
strBmpFilename 待生成BMP圖片文件名
bmpWidth BMP文件寬度
bmpHeight BMP文件高度
輸出:
Private Declare Function icePub_createWordBmpFile Lib "icePubDll.dll" (ByVal strWord As String, ByVal strBmpFilename As String, ByVal bmpWidth As Integer, ByVal bmpHeight As Integer) As Integer
Dim a2 As Long
a2 = icePub_createWordBmpFile("月光", App.Path+"\word.bmp", 32, 16)
原型:
int WINAPI icePub_imgToFileTextImg(char *strImgFilename,char *strTextFilename,char *strFenge,char ch)
輸入:strImgFilename 待處理圖像文件 (會(huì)被強(qiáng)制2值化)
strTextFilename 待生成文本圖案文件名
strFenge 列之間分隔符
ch 文本圖案填充字符
輸出:
Private Declare Function icePub_imgToFileTextImg Lib "icePubDll.dll" (ByVal strImgFilename As String, ByVal strFilename As String, ByVal strFenge As String, ByVal ch As Byte) As Integer
Dim a2 As Long
Dim ch As Byte
ch = Asc("*")
a2 = icePub_imgToFileTextImg(App.Path+"\word.bmp","txtimg.txt","",ch)
那種對(duì)于辦公系統(tǒng)錄入的,你直接用“無敵點(diǎn)擊狗”軟件就能實(shí)現(xiàn),一般大量數(shù)據(jù)的輸入錄入,重復(fù)性點(diǎn)擊動(dòng)作都是可以在無敵點(diǎn)擊狗里調(diào)用,通過無敵點(diǎn)擊狗,能全自動(dòng)實(shí)現(xiàn)錄入過程和辦公操作!
首先添加一個(gè)系統(tǒng)的語音COM組件的引用microsoft speech object library然后在程序中聲明一個(gè)語音類dim RC As SpeechLib.SpSharedRecoContext這個(gè)類有一些事件,如果你要處理它的一些事件,可以用withevent來聲明然后在窗體LOAD事件或你需要的地方先創(chuàng)建一個(gè)實(shí)例RC = New SpeechLib.SpSharedRecoContext當(dāng)一個(gè)RC被實(shí)例化后,系統(tǒng)就會(huì)運(yùn)行語音識(shí)別程序.前提是你的系統(tǒng)已經(jīng)正確安裝這個(gè)功能.一般默認(rèn)就已經(jīng)安裝好的.其次提醒一下,WIN7的語音識(shí)別比XP的好N倍.從閱讀到偵聽都好很多.然后就可以在你需要閱讀的地方使用RC.Voice.Speak("hello 我", 11)11那里是一些枚舉,用來標(biāo)識(shí)系統(tǒng)用前臺(tái)還是后臺(tái)或其他方式來閱讀文字,簡(jiǎn)單的來說就是閱讀的時(shí)候不會(huì)卡住你的程序.你可以選其他的枚舉來試試作用.以上為閱讀部分.如果需要程序聽你說話,則需要聲明一個(gè)偵聽類dim RG As SpeechLib.ISpeechRecoGrammar在初始化時(shí)將之與上面的RC建立關(guān)系,此時(shí)則必須要用withevent來聲明上面的RC,因?yàn)樯婕半娔X聽到你的語音后,會(huì)觸發(fā)一個(gè)事件,并將聽到的內(nèi)容傳遞到該事件.其次,要讓系統(tǒng)聽到的解析為命令,就必須準(zhǔn)備一個(gè)XML結(jié)構(gòu)的文件來保存那些固定的命令.如果電腦在XML文件中找不到那些固定命令或同時(shí)不屬于系統(tǒng)命令,電腦將會(huì)將其解釋為聽寫.RG = RC.CreateGrammar '(0)
RG.CmdLoadFromFile("聽到.xml", SpeechLib.SpeechLoadOption.SLODynamic)
RG.CmdSetRuleIdState(0, SpeechLib.SpeechRuleState.SGDSActive)然后寫一個(gè)過程來處理聽到的事件Private Sub 聽到命令(ByVal StreamNumber As Integer, ByVal StreamPosition As Object, ByVal RecognitionType As SpeechLib.SpeechRecognitionType, ByVal 話語 As SpeechLib.ISpeechRecoResult) Handles RC.Recognition RC.Voice.Speak("我聽到了" 話語.PhraseInfo.GetText, 11)End Sub以上為偵聽部分.下面列一個(gè)XML的例文?xml version="1.0" encoding="gb2312"?
GRAMMAR LANGID="804"
RULE NAME="命令" TOPLEVEL="ACTIVE"
L
P打開播放器
P上我的QQ
P關(guān)閉你自己 /L
/RULE
/GRAMMAR要讓系統(tǒng)正確地偵聽到你說的話,前提你必須運(yùn)行語音識(shí)別程序并讓其激活到"正在聆聽"狀態(tài).并且你必須有一個(gè)能正常使用的話筒而且保證話筒已經(jīng)打開.(廢話-_-|||)以上就是用VB.NET語音識(shí)別的最基本的一些操作.希望對(duì)你有幫助.更深入的內(nèi)容有興趣的話可以和我一起研究.
用VB應(yīng)該能夠?qū)崿F(xiàn),不過時(shí)間和正確率不算可觀。
而且使用起來也應(yīng)該有諸多限制。
先把傳到程序的圖片做一個(gè)RGB處理,很簡(jiǎn)單。黑變白,白變黑,其他的全變黑就可以了。然后利用現(xiàn)有的字庫經(jīng)行逐點(diǎn)對(duì)比,字體顏是白色。
這里用該會(huì)有個(gè)概率。假設(shè)如果X%的像素點(diǎn)相等,那就輸出這個(gè)字。
加速度的話,把已經(jīng)輸出的字符,做成一個(gè)表,在進(jìn)行匹配的時(shí)候,同時(shí)匹配這個(gè)表,如果匹配出來的話,就放棄與字庫的匹配,輸出這個(gè)字。
字體必須要是標(biāo)準(zhǔn)的。字號(hào)必須的相等的。沒這么簡(jiǎn)單,很復(fù)雜,
1L,沒有什么不可能的,OCR又什么了?單靠VB就不行了?照你這樣說,難道只用匯編就不能做3D程序?不是屬于什么什么的,就像X器官不只是你一個(gè)人有一樣。
2L,既然有了自定義字庫,那就不會(huì)是手寫了吧?
3L,VB不是先不先進(jìn),只是你對(duì)VB的認(rèn)識(shí)也就那么膚淺而已。
你這個(gè)說法失之偏頗了吧?就像1L一樣。先進(jìn)?那我就用最老的舉例吧,單用匯編就不能做3D引用程序?
沒有匯編,哪來電腦的今天?
就像今天你手頭沒有VB,數(shù)據(jù)庫你怎么來?
VB是語言,語言不是算法。
4L,我挺你
識(shí)別圖片里文字的方法,通常稱為OCR(Optical Character Recognition,光學(xué)字符識(shí)別),需要利用非常復(fù)雜的模式識(shí)別算法才能實(shí)現(xiàn)。自己用VB開發(fā)OCR程序工作量太大。
可以考慮采用OCR插件,即在電腦上安裝OCR控件,然后在VB程序中調(diào)用該控件。如WPS,紫光、漢王的OCR系統(tǒng)都帶有可調(diào)用的控件,但都比較大,而且有使用限制。我曾經(jīng)用過一個(gè)免費(fèi)的91OCR控件,識(shí)別效果還馬馬虎虎可以。