多功能语音识别声控电话机之
捷通82语音识别模块产品说明书
(含嵌入式语音识别软件)
2003/06/09
1、 产品概述
信号线 | 描述 | 数据传送方向 (SCPU->MCPU) |
数据传送方向方向 (MCPU->SCPU) |
DATA | 双向数据线 | SHS=0时数据有效 | MHS=0时数据有效 |
MHS | 主机握手信号 | 0-数据位被接收了 | 0-数据位有效 |
SHS | 从机握手信号 | 0-数据位有效 | 0-数据位被接收了 |
同步字符0FFh | 数据长度N | 命令/回应 | 参数1 | 参数2 | …… | 参数N-2 | 校验和 |
图七
数据包举例:
同步字符 | 数据长度 | 命令 | 参数1 | 参数2 |
参数3 | 效验和 |
0FFh |
5 | 1 | 2 | 3 | 4 | 0Fh |
图八
命令集(灰色区域为保留功能,本模块中未用)
表二
回应集
表三
类别定义:
1-人名训练 2-人名识别 3-语音电话本 4-语音合成 5-控制功能 6-调试 7-DTMF 8-音乐 9-实时录音/回放 10-来电播报
11-主MCU数据存取及删除 12-来电 13-去电 14-普通电话本
命令详解
命令:00h
命令参数: 无
返回参数: 无
回应: 00h或21h
命令描述: 本命令一般用于系统调试,以测试MCPU与SCPU的联机状况。
命令:01h
命令参数: 无
返回参数: 版本号
回应: 00h或21h
命令描述: 获取当前语音识别模块的版本号。对于JT802V1来说,其版本号为38h,30h,32h,56h.
命令:02h
命令参数: 重试次数
返回参数: 无
回应: 00h, 01h, 11h, 21h, 0FFh
命令描述: 训练一个名字。当增加一条电话本记录时,应先执行此命令。该命令会生成一个语音模板,同时产生一个长达2秒的名字录音。在此命令成功执行之后,MCPU接着发送06h命令增加电话号码。如果没有执行06h命令,则该项记录电话号码为空。
添加人名成功后,当前指针指向该记录位置。
重试次数指的是训练失败后允许重新训练的次数,通常设置为2。
此命令能被MCPU中断。
命令:03h
命令参数: 重试次数
返回参数: 无
回应: 00h, 01h, 07h, 0Ah, 10h, 21h, 0FFh
命令描述: 该命令识别一个人名。如果查找到了相符记录,则当前指针指向识别结果。否则,指针保持不变。
重试次数指的是识别失败后允许重新识别的次数,通常设置为2。
此命令能被MCPU中断。
命令:04h
命令参数: 无
返回参数: 无
回应: 00h, 12h, 21h, 0FFh
命令描述: 回放当前指针所指记录对应的人名录音。如果当前指针为0或指向某一空记录,则返回12h.该命令的执行可被MCPU中断.
命令:05h
命令参数: 无
返回参数: 无
回应:00h, 22h, 12h, 21h, 0FFh
命令描述: 播报当前指针所指记录对应的电话号码. 如果当前指针为0或指向某一空记录,则返回12h.此命令的执行可被MCPU中断.
命令: 06h
命令参数: 电话号码
返回参数: 无
回应:00h, 12h, 21h
命令描述: 将电话号码存储在当前指针所指的记录下. 如果当前指针为0或指向某一空记录,则返回12h.
电话号码最长可达8个字节,以BCD码发送,每字节两个BCD码,先高后低。"*"和"#"分别以"1010" "1011"表示.
此命令应在02h命令成功执行后发送。
如果当前指针为0,则返回12h。
命令:07h
命令参数: 无
返回参数: 电话号码
回应: 00h, 22h,12h, 21h
命令描述: 返回当前指针所指记录下对应的电话号码. 如果当前指针为0或指向某一空记录,则返回12h.
电话号码最长可达8个字节,以BCD码发送,每字节两个BCD码,先高后低。"*"和"#"分别以"1010" "1011"表示.
命令:08h
命令参数: 无
返回参数: 无
回应:00h, 21h
命令描述:当前指针清0,不指向任何记录.
命令:09h
命令参数: 无
返回参数: 无
回应:00h, 10h, 21h
命令描述: 当前指针指向电话本下一条有效记录.如果当前指针为最后一条有效记录,则执行该命令后指向第一条有效记录。 如果电话本中无有效记录,则指针指向0位置,并返回10h.
命令:0Ah
命令参数: 无
返回参数: 无
回应: 00h, 10h, 21h
命令描述: 当前指针指向电话本上一条有效记录.如果当前指针为第一条有效记录,则执行该命令后指向最后一条有效记录。 如果电话本中无有效记录,则指针指向0位置,并返回10h.
命令:0Bh
命令参数: 无
返回参数: 无
回应: 00h, 21h
命令描述: 将当前指针存储在临时存储寄存器中,可用命令0Ch恢复当前指针.如果模块掉电,当前指针遗失.
此命令本模块未用
命令:0Ch
命令参数: 无
返回参数: 无
回应:00h, 12h, 21h
命令描述: 恢复由0Bh命令存储的当前指针.
此命令本模块未用
命令:0Dh
命令参数: 无
返回参数: 无
回应:00h,21h
命令描述: 此命令本模块未用
命令:0Eh
命令参数: 无
返回参数: 无
回应: 00h, 12h, 21h
命令描述: 删除当前指针所指的电话本记录,删除成功后,所有该电话本记录后面的电话本记录向前移,指针位置保持不变.
如果执行此命令时当前指针为0或指向某一空记录,则返回12h。
命令: 0Fh
命令参数: 0x55
返回参数: 无
回应:00h, 21h
命令描述: 删除电话本中所有记录,删除成功后将指针清零,不指向任何记录。
命令:10h
命令参数: 无
返回参数: 无
回应:00h,12h,21h
命令描述: 此命令本模块未用
命令:11h
命令参数:
返回参数:
回应:00h,21h
命令描述: 此命令本模块未用
命令: 12h
命令参数: 无
返回参数:
回应: 00h,12h,21h
命令描述: 此命令本模块未用
命令: 13h
命令参数: 无
返回参数:
回应: 00h,21h
命令描述:此命令本模块未用
命令:14h
命令参数: 提示音序号
返回参数: 无
回应:00h, 21h, 0FFh
命令描述: 说提示音序号所对应的提示音.提示音序号与提示音的对应关系见后面的提示音列表.此命令的执行可由MCPU中断.
命令:15h
命令参数: 数字串
返回参数: 无
回应:00h, 21h
命令描述: 播报命令参数里所传递的数字串. 此命令的执行可由MCPU中断。数字串以BCD码存储,每字节两个BCD码,先高后低。
此命令本模块未用
命令:16h
命令参数: 无
返回参数: 无
回应: 00h, 21h
命令描述: SCPU进入睡眠状态,进入睡眠之前返回00h给MCPU.
命令:17h
命令参数: 语音识别门限
返回参数: 无
回应:00h, 21h
命令描述: 设置语音识别门限参数。参数可设为0,1,2,3,其中0为最低级别,最容易识别,但误识别的几率相对较大。语音识别门限参数的默认值为1。
命令:18h
命令参数: 无
返回参数:语音识别门限
回应:00h, 21h
命令描述:获取语音识别门限参数。
命令:19h
命令参数: 当前指针
返回参数: 无
回应: 00h, 21h
命令描述: 设置当前指针
此命令本模块未用
命令:1Ah
命令参数: 无
返回参数: 当前指针
回应:00h, 21h
命令描述: 获取当前指针
命令:1Bh
命令参数: 数字
返回参数: 无
回应: 00h,21h
命令描述:此命令本模块未用
命令:1Ch
命令参数: 数字串
返回参数: 无
回应: 00h,21h
命令描述:此命令本模块未用
命令:1Dh
命令参数: N
返回参数: 无
回应: 00h,21h
命令描述:此命令本模块未用
命令: 1Eh
命令参数: 无
返回参数: 无
回应:00h,21h
命令描述:此命令本模块未用
命令:1Fh
命令参数: 无
返回参数: 无
回应: 00h,21h
命令描述:此命令本模块未用
命令:20h
命令参数: 无
返回参数: 无
回应:00h,21h
命令描述:此命令本模块未用
命令 :21h
命令参数: N=1,2,3
返回参数: 无
回应: 00h, 21h, 0FFh
命令描述: 播放一段音乐。共3段音乐可供选择,由N决定播放哪一段,此命令能被MCPU中断。
命令 :22h
命令参数: N=1,2,3
返回参数: 无
回应: 00h, 11h, 21h, 0FFh
命令描述: 进行实时录音,一共允许三段,由命令参数N指明哪一段进行录音。此命令能被MCPU中断。
每段录音的时间长度,在语音电话本最大容量为60个人名时,为19秒, 30个人名时,为30秒.
命令 :23h
命令参数: N=1,2,3
返回参数: 无
回应:00h, 10h, 21h, 0FFh
命令描述: 播放实时录音, 由命令参数N指明播放哪一段录音,此命令能被MCPU中断。
命令 :24h
命令参数:来电号码
返回参数:无
回应: 00h, 21h, 0FFh
命令描述:送一组来电号码给语音识别模块,语音模块在电话本中查找该号码,如果该号码存在则播放该号码对应的人名,如果电话本中没有此号码,则播报该电话号码。电话号码必须完全相同才播报人名,否则播报号码,播报号码时每4个号码一播.播抱人名或电话号码前先发"来电话了"的提示音。
电话号码以BCD码发送,每字节两个BCD码,先高后低。
此命令能被MCPU中断。
命令 : 25h
命令参数:无
返回参数:有效记录条数
回应: 00h, 21h
命令描述:该命令用来获取电话本中有效记录的条数。
命令:26h
命令参数: 人名
返回参数: 无
回应:00h, 12h, 21h
命令描述: 将人名存储在当前指针所指的记录下. 如果当前指针为0或指向某一空记录,则返回12h.
人名字符以ASCII码发送,每字节1个ASCII码,即一个字符,先高后低,名字最大长度为16个字符。
此命令应在02h命令成功执行后发送。
命令: 27h
命令参数: 无
返回参数:人名
回应: 00h, 23h,12h, 21h
命令描述: 返回当前指针所指记录下对应的人名. 如果当前指针为0或指向某一空记录,则返回12h.
人名字符以ASCII码发送,每字节1个ASCII码,即一个字符,先高后低。
命令:28h
命令参数: N = 1,2
返回参数: 无
回应:00h, 21h
命令描述: 设置语音电话本最大容量。参数N可设为1或2,1表示语音电话本的最大容量为30,2表示语音电话本的最大容量为60.默认值为1.
此命令本模块未用
命令:29h
命令参数: 起始地址,数据
返回参数:
回应:无
命令描述: 将数据连续存储在Flash中指定位置.
起始地址为MCU数据存储空间的地址偏移量,非绝对地址,分两个字节发送,先发送高位.地址范围为0000~01FFh.
先发送起始地址,再紧接着发送数据,数据最大长度为30bytes,且限存储在同一页中(256字节/页,高字节地址相同)。
命令:2Ah
命令参数: 起始地址,字节数
返回参数: 数据
回应:00h, 21h
命令描述: 从Flash中连续读取指定位置的数据.
起始地址为MCU数据存储空间的地址偏移量,非绝对地址,分两个字节发送,先发送高位.地址范围为0000~01FFh.
字节数为所要连续读取数据的字节数.
先发送起始地址,再紧接着发送字节数,字节数最大为32, 且限所要读取的数据在同一页中(256字节/页,高字节地址相同)。
命令: 2Bh
命令参数: 起始地址,结束地址
返回参数: 无
回应: 00h, 21h
命令描述: 删除普通电话本数据存储空间指定位置的数据.
起始地址和结束地址均为普通电话本数据存储空间的地址偏移量,非绝对地址,分两个字节发送,先发送高位.地址范围为0000~01FFh.
删除可以整页整页的进行,连续删除某几个页.也可以对同一页中(256字节/页,高字节地址相同)的某几个连续字节进行删除,限35字节以内.
起始地址和结束地址所对应的字节将被删除.
命令: 2Ch
命令参数: N=1,2,3
返回参数: 无
回应: 00h, 21h, 0FFh
命令描述: 删除实时录音,一共三段,由命令参数N指明删除哪一段。
命令:2Dh
命令参数: 来电记录(28BYTE)
返回参数: 来电记录第一个BYTE,电话本记录人名
回应:00h, 21h
命令描述: 存储该来电记录。
来电记录共28BYTE,第1BYTE到第4BYTE为来电属性及来电日期,其中,第1BYTE的BIT6表示新来电、BIT5表示贵宾、BIT4表示重复来电,BIT3~BIT0表示来电月份,第2BYTE到第4BYTE分别表示来电的日、时、分;第5BYTE到第12BYTE为来电号码;第13BYTE到第28BYTE为来电人名。
存储时,先将该来电记录的电话号码(记录的第5BYTE到第12BYTE)与所有已存来电记录的电话号码相比较,(1)如果发现该来电记录与某条已存来电记录的电话号码相同,则先判断该已存来电记录是否为贵宾(记录的第1BYTE的BIT5为1),为贵宾就将新来电记录的第1BYTE的BIT5置1(保持贵宾标志不变),并将新的来电记录的第1BYTE的BIT4置1(表示重复来电),再把已存来电记录删除,后面的相应往前移,然后把新的来电记录紧挨着存储在最后面。(2)如果没有相同电话号码的来电记录,但存储却满了,就将第1组非贵宾来电记录(记录的第1BYTE的BIT5为0)删除,并将后面的来电记录相应往前移,然后将要存储的来电记录存储在最后面;如果所有已存来电记录均为贵宾,则将第1条来电记录删除,并将后面的来电记录相应往前移,然后将要存储的来电记录存储在最后面。(3)如果既没有相同号码的来电记录,存储也未满,就直接将要存储的来电记录紧挨着存储在最后面。
另外,如果是重复来电(情况(1))或存储已满(情况(2)),若被删除的来电为未查看过的新来电,则在返回新来电记录的第1BYTE时,还需将新来电的第1BYTE的BIT6置1,作为返回参数,以示删除了一条未查看的新来电。否则(包括情况(3)),将新来电的第1BYTE的BIT6清0,作为返回参数。
存储之后,还要判断该新来电记录的第13BYTE是否为零(是否已有人名),如果不为零(已有人名)就退出,然后返回新来电的第1BYTE;如果为零(人名空)就到电话本中去查找,看有没有电话本记录的电话号码(记录的第1BYTE~第8BYTE)与该来电记录的电话号码(第5BYTE~第12BYTE)相同,如果没有相同的电话本记录,就返回新来电的第1BYTE;如果有相同的电话本记录,则除了返回新来电的第1BYTE之外,还要将该电话本记录的人名(第9BYTE~第24BYTE)作为参数返回。
命令: 2Eh
命令参数: 去电号码(10BYTE)
返回参数: 无
回应: 00h, 21h
命令描述: 存储该去电号码:每十个BYTE为一个号码,依次进行存储,如果存储区域满了就将第1个号码删掉,其他号码相应往前移,再将要存储的号码存放在最后。
命令: 2Fh
命令参数: 电话本记录(24BYTE)
返回参数: 无
回应: 00h, 21h, 11H
命令描述: 存储该电话本记录。
电话本记录共24个BYTE,第1BYTE~第8BYTE为电话号码,第9BYTE~第24BYTE为人名。电话本记录按人名的字母顺序进行存储,允许相同的电话本记录多次存储,如果存储区域满了就不予再存。
命令: 30h
命令参数:来电记录序号
返回参数: 来电记录(32BYTE)
回应: 00h, 21h,10H
命令描述: 将一组来电记录读出,判断第13个BYTE是否为零(是否已有人名名),如果不为零(已有人名)就直接返回该来电记录;如果为零(人名空),就到电话本中去查找,看有没有电话本记录的电话号码(记录的第1BYTE到第8BYTE)与该来电记录的电话号码(记录的第5BYTE到第12BYTE)相同,如果有相同的电话本记录,就将该来电记录的人名(记录的第13BYTE到第28BYTE)换成相应电话本记录的人名(记录的第9BYTE到第24BYTE),然后返回该来电记录,否则,直接返回该来电记录。
命令: 31h
命令参数:去电号码序号
返回参数:去电号码(10BYTE)
回应: 00h, 21h, 10H
命令描述: 将一组去电号码读出来,送给主CPU。
命令: 32h
命令参数:电话本记录序号
返回参数:电话本记录(24BYTE)
回应: 00h, 21h, 10H
命令描述: 将一组电话本记录读出来,送给主CPU。
命令: 33h
命令参数:来电记录序号
返回参数: 无
回应: 00h, 21h, 10H
命令描述: 删除相应序号的来电记录。
命令: 34h
命令参数:去电号码序号
返回参数: 无
回应: 00h, 21h, 10H
命令描述: 删除相应序号的去电号码。
命令: 35h
命令参数:电话本记录序号
返回参数: 无
回应: 00h, 21h, 10H
命令描述: 删除相应序号的电话本记录。
命令: 36h
命令参数:电话本记录的人名首字母(1个BYTE)
返回参数:电话本记录序号(1BYTE)、电话本记录(24BYTE)
回应: 00h, 21h, 10H
命令描述: 在电话本中查找第一个人名首字母与所送字母参数相同的电话本记录,找到后将该组电话本记录的序号及其内容返回,送给主CPU。如果电话本中没有人名首字母与所送字母参数相同的记录,就将人名首字母排在该字母之后的第一个电话本记录的序号及其内容返回。如果所送字母参数在所有电话本记录的首字母之后,则返回第1条电话本记录的序号及其内容。
命令: 37H
命令参数: 来电记录序号,来电记录第1BYTE
返回参数: 无
回应: 00H,21H
命令描述: 将命令参数中所送来电记录序号所对应的来电记录的第1BYTE的BIT7~BIT4改成命令参数中所送来电记录第1BYTE的BIT7~BIT4。
命令: 38h
命令参数: 无
返回参数: 无
回应: 00h, 21h
命令描述: 删除所有来电记录。
命令: 39h
命令参数: 无
返回参数: 无
回应: 00h, 21h
命令描述: 删除所有去电号码。
命令: 3Ah
命令参数: 无
返回参数: 无
回应: 00h, 21h
命令描述: 删除所有电话本记录。
5、 存储器结构
本系统共有两片外挂存储器,一片是程序存储器,2Mb,用来存放控制程序、MIDI音乐和语音数据的;一片是数据存储器,4Mb,用来存放产品ID和识别模板、电话号码、记录的回放以及实时录音的。具体结构如下:
1. 程序存储器
地址分配如下:00000h-0ffffh用于存放控制程序及MIDI音乐数据,10000-3ffffh存放提示音数据。
产品ID及系统属性 |
属性页 |
人名 |
电话号码 |
语音模板 |
人名录音 |
实时录音 |
普通电话本及其它数据 |
深圳捷通公司供稿 CTI论坛编辑
语音合成芯片情况介绍和产品设想 2003-05-06 |
数字可视复读机方案 2003-04-09 |
语音识别控制电话机方案 2003-04-04 |
智能早教机方案 2003-04-03 |
也谈语音识别技术在玩具领域的低成本应用 2003-01-06 |