多功能語(yǔ)音識別聲控電話(huà)機之
捷通82語(yǔ)音識別模塊產(chǎn)品說(shuō)明書(shū)
(含嵌入式語(yǔ)音識別軟件)
2003/06/09
1、 產(chǎn)品概述
信號線(xiàn) | 描述 | 數據傳送方向 (SCPU->MCPU) |
數據傳送方向方向 (MCPU->SCPU) |
DATA | 雙向數據線(xiàn) | SHS=0時(shí)數據有效 | MHS=0時(shí)數據有效 |
MHS | 主機握手信號 | 0-數據位被接收了 | 0-數據位有效 |
SHS | 從機握手信號 | 0-數據位有效 | 0-數據位被接收了 |
同步字符0FFh | 數據長(cháng)度N | 命令/回應 | 參數1 | 參數2 | …… | 參數N-2 | 校驗和 |
圖七
數據包舉例:
同步字符 | 數據長(cháng)度 | 命令 | 參數1 | 參數2 |
參數3 | 效驗和 |
0FFh |
5 | 1 | 2 | 3 | 4 | 0Fh |
圖八
命令集(灰色區域為保留功能,本模塊中未用)
表二
回應集
表三
類(lèi)別定義:
1-人名訓練 2-人名識別 3-語(yǔ)音電話(huà)本 4-語(yǔ)音合成 5-控制功能 6-調試 7-DTMF 8-音樂(lè ) 9-實(shí)時(shí)錄音/回放 10-來(lái)電播報
11-主MCU數據存取及刪除 12-來(lái)電 13-去電 14-普通電話(huà)本
命令詳解
命令:00h
命令參數: 無(wú)
返回參數: 無(wú)
回應: 00h或21h
命令描述: 本命令一般用于系統調試,以測試MCPU與SCPU的聯(lián)機狀況。
命令:01h
命令參數: 無(wú)
返回參數: 版本號
回應: 00h或21h
命令描述: 獲取當前語(yǔ)音識別模塊的版本號。對于JT802V1來(lái)說(shuō),其版本號為38h,30h,32h,56h.
命令:02h
命令參數: 重試次數
返回參數: 無(wú)
回應: 00h, 01h, 11h, 21h, 0FFh
命令描述: 訓練一個(gè)名字。當增加一條電話(huà)本記錄時(shí),應先執行此命令。該命令會(huì )生成一個(gè)語(yǔ)音模板,同時(shí)產(chǎn)生一個(gè)長(cháng)達2秒的名字錄音。在此命令成功執行之后,MCPU接著(zhù)發(fā)送06h命令增加電話(huà)號碼。如果沒(méi)有執行06h命令,則該項記錄電話(huà)號碼為空。
添加人名成功后,當前指針指向該記錄位置。
重試次數指的是訓練失敗后允許重新訓練的次數,通常設置為2。
此命令能被MCPU中斷。
命令:03h
命令參數: 重試次數
返回參數: 無(wú)
回應: 00h, 01h, 07h, 0Ah, 10h, 21h, 0FFh
命令描述: 該命令識別一個(gè)人名。如果查找到了相符記錄,則當前指針指向識別結果。否則,指針保持不變。
重試次數指的是識別失敗后允許重新識別的次數,通常設置為2。
此命令能被MCPU中斷。
命令:04h
命令參數: 無(wú)
返回參數: 無(wú)
回應: 00h, 12h, 21h, 0FFh
命令描述: 回放當前指針所指記錄對應的人名錄音。如果當前指針為0或指向某一空記錄,則返回12h.該命令的執行可被MCPU中斷.
命令:05h
命令參數: 無(wú)
返回參數: 無(wú)
回應:00h, 22h, 12h, 21h, 0FFh
命令描述: 播報當前指針所指記錄對應的電話(huà)號碼. 如果當前指針為0或指向某一空記錄,則返回12h.此命令的執行可被MCPU中斷.
命令: 06h
命令參數: 電話(huà)號碼
返回參數: 無(wú)
回應:00h, 12h, 21h
命令描述: 將電話(huà)號碼存儲在當前指針所指的記錄下. 如果當前指針為0或指向某一空記錄,則返回12h.
電話(huà)號碼最長(cháng)可達8個(gè)字節,以BCD碼發(fā)送,每字節兩個(gè)BCD碼,先高后低。"*"和"#"分別以"1010" "1011"表示.
此命令應在02h命令成功執行后發(fā)送。
如果當前指針為0,則返回12h。
命令:07h
命令參數: 無(wú)
返回參數: 電話(huà)號碼
回應: 00h, 22h,12h, 21h
命令描述: 返回當前指針所指記錄下對應的電話(huà)號碼. 如果當前指針為0或指向某一空記錄,則返回12h.
電話(huà)號碼最長(cháng)可達8個(gè)字節,以BCD碼發(fā)送,每字節兩個(gè)BCD碼,先高后低。"*"和"#"分別以"1010" "1011"表示.
命令:08h
命令參數: 無(wú)
返回參數: 無(wú)
回應:00h, 21h
命令描述:當前指針清0,不指向任何記錄.
命令:09h
命令參數: 無(wú)
返回參數: 無(wú)
回應:00h, 10h, 21h
命令描述: 當前指針指向電話(huà)本下一條有效記錄.如果當前指針為最后一條有效記錄,則執行該命令后指向第一條有效記錄。 如果電話(huà)本中無(wú)有效記錄,則指針指向0位置,并返回10h.
命令:0Ah
命令參數: 無(wú)
返回參數: 無(wú)
回應: 00h, 10h, 21h
命令描述: 當前指針指向電話(huà)本上一條有效記錄.如果當前指針為第一條有效記錄,則執行該命令后指向最后一條有效記錄。 如果電話(huà)本中無(wú)有效記錄,則指針指向0位置,并返回10h.
命令:0Bh
命令參數: 無(wú)
返回參數: 無(wú)
回應: 00h, 21h
命令描述: 將當前指針存儲在臨時(shí)存儲寄存器中,可用命令0Ch恢復當前指針.如果模塊掉電,當前指針遺失.
此命令本模塊未用
命令:0Ch
命令參數: 無(wú)
返回參數: 無(wú)
回應:00h, 12h, 21h
命令描述: 恢復由0Bh命令存儲的當前指針.
此命令本模塊未用
命令:0Dh
命令參數: 無(wú)
返回參數: 無(wú)
回應:00h,21h
命令描述: 此命令本模塊未用
命令:0Eh
命令參數: 無(wú)
返回參數: 無(wú)
回應: 00h, 12h, 21h
命令描述: 刪除當前指針所指的電話(huà)本記錄,刪除成功后,所有該電話(huà)本記錄后面的電話(huà)本記錄向前移,指針位置保持不變.
如果執行此命令時(shí)當前指針為0或指向某一空記錄,則返回12h。
命令: 0Fh
命令參數: 0x55
返回參數: 無(wú)
回應:00h, 21h
命令描述: 刪除電話(huà)本中所有記錄,刪除成功后將指針清零,不指向任何記錄。
命令:10h
命令參數: 無(wú)
返回參數: 無(wú)
回應:00h,12h,21h
命令描述: 此命令本模塊未用
命令:11h
命令參數:
返回參數:
回應:00h,21h
命令描述: 此命令本模塊未用
命令: 12h
命令參數: 無(wú)
返回參數:
回應: 00h,12h,21h
命令描述: 此命令本模塊未用
命令: 13h
命令參數: 無(wú)
返回參數:
回應: 00h,21h
命令描述:此命令本模塊未用
命令:14h
命令參數: 提示音序號
返回參數: 無(wú)
回應:00h, 21h, 0FFh
命令描述: 說(shuō)提示音序號所對應的提示音.提示音序號與提示音的對應關(guān)系見(jiàn)后面的提示音列表.此命令的執行可由MCPU中斷.
命令:15h
命令參數: 數字串
返回參數: 無(wú)
回應:00h, 21h
命令描述: 播報命令參數里所傳遞的數字串. 此命令的執行可由MCPU中斷。數字串以BCD碼存儲,每字節兩個(gè)BCD碼,先高后低。
此命令本模塊未用
命令:16h
命令參數: 無(wú)
返回參數: 無(wú)
回應: 00h, 21h
命令描述: SCPU進(jìn)入睡眠狀態(tài),進(jìn)入睡眠之前返回00h給MCPU.
命令:17h
命令參數: 語(yǔ)音識別門(mén)限
返回參數: 無(wú)
回應:00h, 21h
命令描述: 設置語(yǔ)音識別門(mén)限參數。參數可設為0,1,2,3,其中0為最低級別,最容易識別,但誤識別的幾率相對較大。語(yǔ)音識別門(mén)限參數的默認值為1。
命令:18h
命令參數: 無(wú)
返回參數:語(yǔ)音識別門(mén)限
回應:00h, 21h
命令描述:獲取語(yǔ)音識別門(mén)限參數。
命令:19h
命令參數: 當前指針
返回參數: 無(wú)
回應: 00h, 21h
命令描述: 設置當前指針
此命令本模塊未用
命令:1Ah
命令參數: 無(wú)
返回參數: 當前指針
回應:00h, 21h
命令描述: 獲取當前指針
命令:1Bh
命令參數: 數字
返回參數: 無(wú)
回應: 00h,21h
命令描述:此命令本模塊未用
命令:1Ch
命令參數: 數字串
返回參數: 無(wú)
回應: 00h,21h
命令描述:此命令本模塊未用
命令:1Dh
命令參數: N
返回參數: 無(wú)
回應: 00h,21h
命令描述:此命令本模塊未用
命令: 1Eh
命令參數: 無(wú)
返回參數: 無(wú)
回應:00h,21h
命令描述:此命令本模塊未用
命令:1Fh
命令參數: 無(wú)
返回參數: 無(wú)
回應: 00h,21h
命令描述:此命令本模塊未用
命令:20h
命令參數: 無(wú)
返回參數: 無(wú)
回應:00h,21h
命令描述:此命令本模塊未用
命令 :21h
命令參數: N=1,2,3
返回參數: 無(wú)
回應: 00h, 21h, 0FFh
命令描述: 播放一段音樂(lè )。共3段音樂(lè )可供選擇,由N決定播放哪一段,此命令能被MCPU中斷。
命令 :22h
命令參數: N=1,2,3
返回參數: 無(wú)
回應: 00h, 11h, 21h, 0FFh
命令描述: 進(jìn)行實(shí)時(shí)錄音,一共允許三段,由命令參數N指明哪一段進(jìn)行錄音。此命令能被MCPU中斷。
每段錄音的時(shí)間長(cháng)度,在語(yǔ)音電話(huà)本最大容量為60個(gè)人名時(shí),為19秒, 30個(gè)人名時(shí),為30秒.
命令 :23h
命令參數: N=1,2,3
返回參數: 無(wú)
回應:00h, 10h, 21h, 0FFh
命令描述: 播放實(shí)時(shí)錄音, 由命令參數N指明播放哪一段錄音,此命令能被MCPU中斷。
命令 :24h
命令參數:來(lái)電號碼
返回參數:無(wú)
回應: 00h, 21h, 0FFh
命令描述:送一組來(lái)電號碼給語(yǔ)音識別模塊,語(yǔ)音模塊在電話(huà)本中查找該號碼,如果該號碼存在則播放該號碼對應的人名,如果電話(huà)本中沒(méi)有此號碼,則播報該電話(huà)號碼。電話(huà)號碼必須完全相同才播報人名,否則播報號碼,播報號碼時(shí)每4個(gè)號碼一播.播抱人名或電話(huà)號碼前先發(fā)"來(lái)電話(huà)了"的提示音。
電話(huà)號碼以BCD碼發(fā)送,每字節兩個(gè)BCD碼,先高后低。
此命令能被MCPU中斷。
命令 : 25h
命令參數:無(wú)
返回參數:有效記錄條數
回應: 00h, 21h
命令描述:該命令用來(lái)獲取電話(huà)本中有效記錄的條數。
命令:26h
命令參數: 人名
返回參數: 無(wú)
回應:00h, 12h, 21h
命令描述: 將人名存儲在當前指針所指的記錄下. 如果當前指針為0或指向某一空記錄,則返回12h.
人名字符以ASCII碼發(fā)送,每字節1個(gè)ASCII碼,即一個(gè)字符,先高后低,名字最大長(cháng)度為16個(gè)字符。
此命令應在02h命令成功執行后發(fā)送。
命令: 27h
命令參數: 無(wú)
返回參數:人名
回應: 00h, 23h,12h, 21h
命令描述: 返回當前指針所指記錄下對應的人名. 如果當前指針為0或指向某一空記錄,則返回12h.
人名字符以ASCII碼發(fā)送,每字節1個(gè)ASCII碼,即一個(gè)字符,先高后低。
命令:28h
命令參數: N = 1,2
返回參數: 無(wú)
回應:00h, 21h
命令描述: 設置語(yǔ)音電話(huà)本最大容量。參數N可設為1或2,1表示語(yǔ)音電話(huà)本的最大容量為30,2表示語(yǔ)音電話(huà)本的最大容量為60.默認值為1.
此命令本模塊未用
命令:29h
命令參數: 起始地址,數據
返回參數:
回應:無(wú)
命令描述: 將數據連續存儲在Flash中指定位置.
起始地址為MCU數據存儲空間的地址偏移量,非絕對地址,分兩個(gè)字節發(fā)送,先發(fā)送高位.地址范圍為0000~01FFh.
先發(fā)送起始地址,再緊接著(zhù)發(fā)送數據,數據最大長(cháng)度為30bytes,且限存儲在同一頁(yè)中(256字節/頁(yè),高字節地址相同)。
命令:2Ah
命令參數: 起始地址,字節數
返回參數: 數據
回應:00h, 21h
命令描述: 從Flash中連續讀取指定位置的數據.
起始地址為MCU數據存儲空間的地址偏移量,非絕對地址,分兩個(gè)字節發(fā)送,先發(fā)送高位.地址范圍為0000~01FFh.
字節數為所要連續讀取數據的字節數.
先發(fā)送起始地址,再緊接著(zhù)發(fā)送字節數,字節數最大為32, 且限所要讀取的數據在同一頁(yè)中(256字節/頁(yè),高字節地址相同)。
命令: 2Bh
命令參數: 起始地址,結束地址
返回參數: 無(wú)
回應: 00h, 21h
命令描述: 刪除普通電話(huà)本數據存儲空間指定位置的數據.
起始地址和結束地址均為普通電話(huà)本數據存儲空間的地址偏移量,非絕對地址,分兩個(gè)字節發(fā)送,先發(fā)送高位.地址范圍為0000~01FFh.
刪除可以整頁(yè)整頁(yè)的進(jìn)行,連續刪除某幾個(gè)頁(yè).也可以對同一頁(yè)中(256字節/頁(yè),高字節地址相同)的某幾個(gè)連續字節進(jìn)行刪除,限35字節以?xún)?
起始地址和結束地址所對應的字節將被刪除.
命令: 2Ch
命令參數: N=1,2,3
返回參數: 無(wú)
回應: 00h, 21h, 0FFh
命令描述: 刪除實(shí)時(shí)錄音,一共三段,由命令參數N指明刪除哪一段。
命令:2Dh
命令參數: 來(lái)電記錄(28BYTE)
返回參數: 來(lái)電記錄第一個(gè)BYTE,電話(huà)本記錄人名
回應:00h, 21h
命令描述: 存儲該來(lái)電記錄。
來(lái)電記錄共28BYTE,第1BYTE到第4BYTE為來(lái)電屬性及來(lái)電日期,其中,第1BYTE的BIT6表示新來(lái)電、BIT5表示貴賓、BIT4表示重復來(lái)電,BIT3~BIT0表示來(lái)電月份,第2BYTE到第4BYTE分別表示來(lái)電的日、時(shí)、分;第5BYTE到第12BYTE為來(lái)電號碼;第13BYTE到第28BYTE為來(lái)電人名。
存儲時(shí),先將該來(lái)電記錄的電話(huà)號碼(記錄的第5BYTE到第12BYTE)與所有已存來(lái)電記錄的電話(huà)號碼相比較,(1)如果發(fā)現該來(lái)電記錄與某條已存來(lái)電記錄的電話(huà)號碼相同,則先判斷該已存來(lái)電記錄是否為貴賓(記錄的第1BYTE的BIT5為1),為貴賓就將新來(lái)電記錄的第1BYTE的BIT5置1(保持貴賓標志不變),并將新的來(lái)電記錄的第1BYTE的BIT4置1(表示重復來(lái)電),再把已存來(lái)電記錄刪除,后面的相應往前移,然后把新的來(lái)電記錄緊挨著(zhù)存儲在最后面。(2)如果沒(méi)有相同電話(huà)號碼的來(lái)電記錄,但存儲卻滿(mǎn)了,就將第1組非貴賓來(lái)電記錄(記錄的第1BYTE的BIT5為0)刪除,并將后面的來(lái)電記錄相應往前移,然后將要存儲的來(lái)電記錄存儲在最后面;如果所有已存來(lái)電記錄均為貴賓,則將第1條來(lái)電記錄刪除,并將后面的來(lái)電記錄相應往前移,然后將要存儲的來(lái)電記錄存儲在最后面。(3)如果既沒(méi)有相同號碼的來(lái)電記錄,存儲也未滿(mǎn),就直接將要存儲的來(lái)電記錄緊挨著(zhù)存儲在最后面。
另外,如果是重復來(lái)電(情況(1))或存儲已滿(mǎn)(情況(2)),若被刪除的來(lái)電為未查看過(guò)的新來(lái)電,則在返回新來(lái)電記錄的第1BYTE時(shí),還需將新來(lái)電的第1BYTE的BIT6置1,作為返回參數,以示刪除了一條未查看的新來(lái)電。否則(包括情況(3)),將新來(lái)電的第1BYTE的BIT6清0,作為返回參數。
存儲之后,還要判斷該新來(lái)電記錄的第13BYTE是否為零(是否已有人名),如果不為零(已有人名)就退出,然后返回新來(lái)電的第1BYTE;如果為零(人名空)就到電話(huà)本中去查找,看有沒(méi)有電話(huà)本記錄的電話(huà)號碼(記錄的第1BYTE~第8BYTE)與該來(lái)電記錄的電話(huà)號碼(第5BYTE~第12BYTE)相同,如果沒(méi)有相同的電話(huà)本記錄,就返回新來(lái)電的第1BYTE;如果有相同的電話(huà)本記錄,則除了返回新來(lái)電的第1BYTE之外,還要將該電話(huà)本記錄的人名(第9BYTE~第24BYTE)作為參數返回。
命令: 2Eh
命令參數: 去電號碼(10BYTE)
返回參數: 無(wú)
回應: 00h, 21h
命令描述: 存儲該去電號碼:每十個(gè)BYTE為一個(gè)號碼,依次進(jìn)行存儲,如果存儲區域滿(mǎn)了就將第1個(gè)號碼刪掉,其他號碼相應往前移,再將要存儲的號碼存放在最后。
命令: 2Fh
命令參數: 電話(huà)本記錄(24BYTE)
返回參數: 無(wú)
回應: 00h, 21h, 11H
命令描述: 存儲該電話(huà)本記錄。
電話(huà)本記錄共24個(gè)BYTE,第1BYTE~第8BYTE為電話(huà)號碼,第9BYTE~第24BYTE為人名。電話(huà)本記錄按人名的字母順序進(jìn)行存儲,允許相同的電話(huà)本記錄多次存儲,如果存儲區域滿(mǎn)了就不予再存。
命令: 30h
命令參數:來(lái)電記錄序號
返回參數: 來(lái)電記錄(32BYTE)
回應: 00h, 21h,10H
命令描述: 將一組來(lái)電記錄讀出,判斷第13個(gè)BYTE是否為零(是否已有人名名),如果不為零(已有人名)就直接返回該來(lái)電記錄;如果為零(人名空),就到電話(huà)本中去查找,看有沒(méi)有電話(huà)本記錄的電話(huà)號碼(記錄的第1BYTE到第8BYTE)與該來(lái)電記錄的電話(huà)號碼(記錄的第5BYTE到第12BYTE)相同,如果有相同的電話(huà)本記錄,就將該來(lái)電記錄的人名(記錄的第13BYTE到第28BYTE)換成相應電話(huà)本記錄的人名(記錄的第9BYTE到第24BYTE),然后返回該來(lái)電記錄,否則,直接返回該來(lái)電記錄。
命令: 31h
命令參數:去電號碼序號
返回參數:去電號碼(10BYTE)
回應: 00h, 21h, 10H
命令描述: 將一組去電號碼讀出來(lái),送給主CPU。
命令: 32h
命令參數:電話(huà)本記錄序號
返回參數:電話(huà)本記錄(24BYTE)
回應: 00h, 21h, 10H
命令描述: 將一組電話(huà)本記錄讀出來(lái),送給主CPU。
命令: 33h
命令參數:來(lái)電記錄序號
返回參數: 無(wú)
回應: 00h, 21h, 10H
命令描述: 刪除相應序號的來(lái)電記錄。
命令: 34h
命令參數:去電號碼序號
返回參數: 無(wú)
回應: 00h, 21h, 10H
命令描述: 刪除相應序號的去電號碼。
命令: 35h
命令參數:電話(huà)本記錄序號
返回參數: 無(wú)
回應: 00h, 21h, 10H
命令描述: 刪除相應序號的電話(huà)本記錄。
命令: 36h
命令參數:電話(huà)本記錄的人名首字母(1個(gè)BYTE)
返回參數:電話(huà)本記錄序號(1BYTE)、電話(huà)本記錄(24BYTE)
回應: 00h, 21h, 10H
命令描述: 在電話(huà)本中查找第一個(gè)人名首字母與所送字母參數相同的電話(huà)本記錄,找到后將該組電話(huà)本記錄的序號及其內容返回,送給主CPU。如果電話(huà)本中沒(méi)有人名首字母與所送字母參數相同的記錄,就將人名首字母排在該字母之后的第一個(gè)電話(huà)本記錄的序號及其內容返回。如果所送字母參數在所有電話(huà)本記錄的首字母之后,則返回第1條電話(huà)本記錄的序號及其內容。
命令: 37H
命令參數: 來(lái)電記錄序號,來(lái)電記錄第1BYTE
返回參數: 無(wú)
回應: 00H,21H
命令描述: 將命令參數中所送來(lái)電記錄序號所對應的來(lái)電記錄的第1BYTE的BIT7~BIT4改成命令參數中所送來(lái)電記錄第1BYTE的BIT7~BIT4。
命令: 38h
命令參數: 無(wú)
返回參數: 無(wú)
回應: 00h, 21h
命令描述: 刪除所有來(lái)電記錄。
命令: 39h
命令參數: 無(wú)
返回參數: 無(wú)
回應: 00h, 21h
命令描述: 刪除所有去電號碼。
命令: 3Ah
命令參數: 無(wú)
返回參數: 無(wú)
回應: 00h, 21h
命令描述: 刪除所有電話(huà)本記錄。
5、 存儲器結構
本系統共有兩片外掛存儲器,一片是程序存儲器,2Mb,用來(lái)存放控制程序、MIDI音樂(lè )和語(yǔ)音數據的;一片是數據存儲器,4Mb,用來(lái)存放產(chǎn)品ID和識別模板、電話(huà)號碼、記錄的回放以及實(shí)時(shí)錄音的。具體結構如下:
1. 程序存儲器
地址分配如下:00000h-0ffffh用于存放控制程序及MIDI音樂(lè )數據,10000-3ffffh存放提示音數據。
產(chǎn)品ID及系統屬性 |
屬性頁(yè) |
人名 |
電話(huà)號碼 |
語(yǔ)音模板 |
人名錄音 |
實(shí)時(shí)錄音 |
普通電話(huà)本及其它數據 |
深圳捷通公司供稿 CTI論壇編輯
語(yǔ)音合成芯片情況介紹和產(chǎn)品設想 2003-05-06 |
數字可視復讀機方案 2003-04-09 |
語(yǔ)音識別控制電話(huà)機方案 2003-04-04 |
智能早教機方案 2003-04-03 |
也談?wù)Z(yǔ)音識別技術(shù)在玩具領(lǐng)域的低成本應用 2003-01-06 |