一种在电视机上实现语音识别的系统及其方法

文档序号:7751242阅读:670来源:国知局
专利名称:一种在电视机上实现语音识别的系统及其方法
技术领域
本发明属于消费性电子产品技术领域,尤其涉及一种在电视机上实现语音识别的 系统及其方法。
背景技术
语音识别技术是将人的声音信号作为输入,转化为数字信号,再通过计算机处理, 识别人类的声音及其含义,做出相应的反应,达到交流或通信的目的,即让机器通过识别和 理解过程,把语音信号转变为相应的文本或命令。但至今语音技术得不到广泛的应用,是因 为其本身存在三大关键技术还不够成熟。第一、对带口音声音的识别,同一种语言在不同的 地区有不同的发音,人与人之间的声音也都是千差万别,很难实现兼容识别;第二、环境噪 音问题,环境噪音增加了识别难度,很难实现准确的数据采集与分析;第三、口语问题,口语 并不符合正常的语法结构,语法的不规范语序不正常的特点会给语义的分析和理解带来困 难。这三大问题一直都是语音识别技术走向产品化的绊脚石,如果能解决上述问题,把语音 识别技术引入到电视机中,利用语音识别技术可以简化电视遥控器的操作,并可以轻松实 现如下功能语音点歌、语音点播电影、语音选台等。使用者只需在某个场景下说出歌曲、电 视的名字,电视的台号即可代替遥控器操作,从而使电视机的功能更加丰富。

发明内容
本发明实施例的目的在于提供一种在电视机上实现语音识别的系统及其方法。本发明实施例是这样实现的,一种在电视机上实现语音识别的系统,包括声音输 入系统、数据分析系统、以及连接声音输入系统与数据分析系统的协调系统;其中,声音输 入系统负责对人类声音的采样、模拟信号到数字信号的转化以及数据缓存的操作,完成初 始数据的准备工作;数据分析系统根据人的声音特点分析频谱特性,负责对有效声音的提 取,噪音的去除,并进一步分析声音的内容,将其转化为和声音最匹配的人的意图,从而达 到机器能识别人的声音的效果;而协调系统主要是协调声音输入系统和数据分析系统的工 作。一种在电视机上实现语音识别的方法,包括如下步骤声音输入系统对声音进行采样,然后转换成数字信号传送至数据分析系统,由数 据分系统的MCU进行处理;数据分析系统根据人的声音特点分析频谱特性,负责对有效声音的提取,噪音的 去除,并进一步分析声音的内容,将其转化为和声音最匹配的人的意图,从而达到机器能识 别人的声音的效果;协调系统协调声音输入系统和数据分析系统的工作,对声音输入系统的数据采集 和数据分析系统的分析处理两部分做同步处理,其分为录音线程和数据分析线程两个线程 模块。相较于现有技术,本发明把语音识别技术引入到电视机中,利用语音识别技术可以简化电视遥控器的操作,并可以轻松实现如下功能语音点歌、语音点播电影、语音选台 等。使用者只需在某个场景下说出歌曲、电视的名字,电视的台号即可代替遥控器操作,从 而使电视机的功能更加丰富。


图1是本发明的原理结构框图。图2是本发明的数据分析系统的数据分析流程图示。图3是本发明的协调系统的工作流程图示。图4是本发明的协调系统的数据处理流程图示。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。图1示出了本发明在电视机上实现语音识别的系统,包括声音输入系统、数据分 析系统、以及连接声音输入系统与数据分析系统的协调系统。其中,声音输入系统负责对人 类声音的采样、模拟信号到数字信号的转化以及数据缓存的操作,完成初始数据的准备工 作;数据分析系统根据人的声音特点分析频谱特性,负责对有效声音的提取,噪音的去除, 并进一步分析声音的内容,将其转化为和声音最匹配的人的意图,从而达到机器能识别人 的声音的效果;而协调系统主要是协调声音输入系统和数据分析系统的工作,如何时开始 进行声音的输入,何时给数据分析系统送原始数据,如何识别,何时识别成功,以及成功后 如何操作等。声音输入系统包括有声音的输入系统主要由一个咪头,A/D转换器组成的电路对 声音进行采样,然后转换成数字信号传送至数据分析系统,由数据分系统的MCU进行处理。 MCU对AD取得的数据进行特征值提取,倒谱均值减,声学层识别,声学层识到后处理,音词 转换,词图检索剪枝等,然后再输出控制信息到相应控制单元。数据分析系统是由语音识别引擎完成,参照图2所示,语音信号转换为语音数据 后,首先进行特征提取,根据语音数据的特点提取有效频点语音数据,这些频点比较符合人 的发声特点;然后使用“倒谱均值减”的方法进行减噪处理,这种方法速度快,实时高效,满 足电视机中运行条件;接着做声学层的识别和识别后处理,根据现有的声学模型,包括一系 列的语音参数如语速,语调,音色等,分析辨认语音的内容,分析完成后即可得到人说话的 内容,再进一步作音词的转换,即可得到语音的文字内容。为了进一步精确文字内容和命令 的匹配,继续比较可使用命令关键词和转换后的词句,找到最匹配的命令作为识别结果,然 后发送给电视机做下一步的处理。数据分析系统中采用“倒谱均值减”对提取的语音数据进 行减噪处理,然后根据声音的特征进行初步识别,接着做音词方面的转化,得到输出结果。协调系统对声音输入系统的数据采集和数据分析系统的分析处理两部分做同步 处理,参照图3所示,分为录音线程和数据分析线程两个线程模块。在录音线程中,首先启 动录音线程,其中会初始化硬件设备,分配好线程所需的内存资源和一些初始参数设置,完 成初始化后,便进入线程循环,首先判断是否有语音数据输入,如果有则把录音的数据存入
5本线程的缓存区,并接着判断录音是否结束;如果没有则直接判断录音是否结束。如果录音 没有结束,则继续执行线程循环,如果结束录音,则关闭录音模块。而在数据分析线程中,首 先启动数据分析线程,建立和分配数据分析所需系统资源后,进入线程循环。先判断数据缓 存区是否有更新过来的数据,如果有,则从数据分析区取出一段内容分析处理,然后判断数 据分析是否产生结果;如果没有,则直接进入判断数据分析是否产生结果。如果产生结果则 停止录音线程,停止数据分析,将结果保存,如果没有产生结果,则继续进行线程循环。本发明创作采用了多线程和缓存区循环利用的技术,录音和数据分析这两个步骤 同时启动,录音线程独立运行采集音频数据,将采集的数据存放在录音缓存区块,然后又以 中断形式将数据追加到待分析数据区,注意这个录音缓存区块是循环缓存区块,要分配好 合适的数目和大小,否则当数据还没追加到待分析数据区就被覆盖了,造成数据的丢失。后 面判断录音是否需要停止,如果是则停止录音。数据分析线程独立运行处理待分析缓存区 的内容,当缓存区存在内容时就从缓冲区取出一段内容处理分析,每次从缓冲区取出一段 内容,待分析数据区便向上移动对应的大小,数据追加的时候就存放在紧贴着待分析数据 区的末尾追加,这样一来便可以合理正确的接收并处理录音数据了,当产生识别结果后停 止数据分析。本发明创作的协调系统中对软件实现进行了优化,对录音数据缓存区分块,设定 一个块大小,当采集的数据填充满一个数据块时,产生一个中断,在这个中断里将得到的数 据块搬移追加到语音数据处理数据缓存区,而与此同时录音模块可以继续录音,将其得到 的数据存放在下一个数据块,数据块循环存储追加,便可以使录音时间的长短无限制了。由 于在整个工作一开始,录音线程和数据分析线程便开始一起运行了,当录音线程获取一个 数据块时便立即传给了数据分析线程,在录音没有完成的时候,数据分析线程就可以进行 数据的分析了,不需要等待录音停止然后才开始分析处理,提高了效率。其部分关键代码如 下//创建两个工作线程RockCreateThread (ProcGetProcGui d (GUID_EXE_V0ICEREC0G), AitalkfforkThread,TPRI_L0ff);RockCreateThread(ProcGetProcGuid(GUID_EXE_V0ICEREC0G),VoiceRecogHighTaskMsgCallBack, TPRI_HIGH);//录音数据循环分块缓存pRxBuf = &gAudioD£it£i. PCMd£it£i[gAudioD£it£i. RxBuflndex*AUDI0_BUF_ LEN];DmaTransmit(AUDI0_DMACHANNEL,(UINT32)RegI2s_RXR,(UINT32) pRxBuf,(UINT32)gAudioData. nPCMlength,(UINT32)DmaI2sRecordCopy,(DMACallBack)Voice_RecISR);if(++gAudioData. RxBuflndex > = AUDI0_BUF_NUM)
6
gAudioData. RxBuflndex = 0 ;II追加数据到待分析数据区EsrAppendData(g_hESRObj, lpBuf, nSample);//取出数据分析EsrRunStep(g_hESR0bj);II判断是否产生识别结果iStatus = EsrGetResultParameterA(g_hESRObj, &pCmdID, &nSame, (ivCStrA)‘‘ 歌曲名‘‘);if (pCmdID
> 0 && pCmdID
< nFileNum)return TRUE ;另外,协调系统还负责初始化录音设备和语音参数及场景的设置、语音处理结果 的获取和获取后所要执行的操作等,参照图4所示,协调系统的工作序列分两条路线,第一 条为录音设备工作路线,第二条为语音识别处理工作路线。从左到右为时间递增线,根据 处理步骤和对应的时间点可以将数据处理流程划分3个时间段,录音和语音处理设置时间 段,处理过程时间段,识别后时间段,并要求这3个时间段在两条路线中同步。在设置时间 段中,录音设备需要初始化,语音识别处理需要创建实例对象,然后初始化识别场景和词典 (即已有命令词句),并发出启动识别命令。在处理过程时间段中,先需要在录音设备工作 路线中启动录音,然后采集录音数据,在采集的同时,语音识别处理路线接受采集的录音数 据并尝试产生结果,如果产生结果则进入识别后时间段,如果没有则继续采集分析。在识别 后时间段中,在录音设备工作路线中先停止录音,在语音识别工作路线中则先获取识别结 果,然后根据结果(即命令词句)进行操作,例如“播放XXX.mp3”,则开始播放XXX.mp3音 乐文件。第一条路线的录音设备的启动和停止受第二条路线识别过程的影响,当识别过程 初始化对象,完成词典和场景的输入后,即可启动一个场景的语音识别,这个时候才启动录 音,在录音数据不断输入的同时,识别路线也一直处理录音数据,直到手工终止或者有识别 结果产生,之后录音被停止。这时就可以获取识别结果,并根据结果执行对应的操作,如根 据歌曲名播放音乐等。其中,部分关键代码如下录音路线丨丨初始化录音设备Codec_SetSampleRate (8000) ;//设置采样率CodecGainSet(5) ;//设置增益SetAudioDataBuf(&gAudioData. pLeft, &gAudioData. pRight, &gAudioData. nPCMlength) ;// 设置 bufferPMU_EnterModule(PMU_RECORDADPCM);Codec_SetMode (Codec_MICAdc) ;// 设置 MIC 输入//启动录音I2sStart(I2S_Start_Rx) ;//I2S 接 口配置
7
AudiolnputBuffSwitch () -J/ 设置并开启 DMA 传输,与缓存 buffer 关联//采集录音数据FlushRecDataO ;//停止录音 I2sStop ();HDMA_Stop (0);识别路线//创建对象tUserSys. pfforkBuffer = WorkBuff ;// 分配数据分析缓存tUserSys. nfforkBufferBytes = USER_WORKBUFFER_BYTES ;//数据分析缓存大小iStatus = EsrCreate (&g_hESR0bj,&tUserSys,&tResPackDesc,1);//创建识别引擎Il输入词典和场景iStatus = EsrSetACP (g_hESR0bj, ivESR_CP_GBK);iStatus = EsrBeginLexiconA (g_hESR0bj,(ivCStrA) 〃歌曲名〃);for(i = 0 ;i < nFiIeNum ;i++){iStatus = EsrAddLexiconItemff(g_hESR0bj, \(ivCStrff)pFileUnit[i], LongFileName, i+1);}iStatus = EsrEndLexicon(g_hESR0bj);iStatus = EsrBeginSceneA (g_hESR0bj, (ivCStrA)“播放场景〃);iStatus = EsrAddSyntaxA (g_hESR0bj, (ivCStrA)“打开{歌曲名} 〃,1);iStatus = EsrEndScene(g_hESR0bj);H启动一个场景的识别EsrStartA (g_hESR0bj,(ivCStrA) 〃播放场景〃);H处理录音数据EsrRunStep(g_hESR0bj);//获取识别结果iStatus = EsrGetResultParameterA(g_hESR0bj, &pCmdID, &nSame, (ivCStrA)“歌曲名〃);//播放音乐PlayMusic (pCmdID
-l);协调系统完成后,预示着整个过程基本完成,后面只需定义如何开启语音识别即 可。解决噪声干扰、口音识别、口语识别等问题,提高了识别精度。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种在电视机上实现语音识别的系统,其特征在于包括声音输入系统、数据分析系统、以及连接声音输入系统与数据分析系统的协调系统;其中,声音输入系统负责对人类声音的采样、模拟信号到数字信号的转化以及数据缓存的操作,完成初始数据的准备工作;数据分析系统根据人的声音特点分析频谱特性,负责对有效声音的提取,噪音的去除,并进一步分析声音的内容,将其转化为和声音最匹配的人的意图,从而达到机器能识别人的声音的效果;而协调系统主要是协调声音输入系统和数据分析系统的工作。
2.如权利要求1所述的在电视机上实现语音识别的系统,其特征在于,所述声音输入 系统包括有对声音进行采样的咪头以及A/D转换器,咪头以及A/D转换器对声音进行采样, 然后转换成数字信号传送至数据分析系统,由数据分系统的MCU进行处理。
3.如权利要求1或2所述的在电视机上实现语音识别的方法,其特征在于,所述数据分 析系统是由语音识别引擎完成,数据分系统的MCU对A/D转换器取得的数据进行特征值提 取,倒谱均值减,声学层识别,声学层识到后处理,音词转换,词图检索剪枝,然后输出控制 信息到控制单元。
4.如权利要求3所述的在电视机上实现语音识别的方法,其特征在于,所述协调系统 对声音输入系统的数据采集和数据分析系统的分析处理两部分做同步处理,其分为录音线 程和数据分析线程两个线程模块。
5.一种在电视机上实现语音识别的方法,其特征在于,包括如下步骤声音输入系统对声音进行采样,然后转换成数字信号传送至数据分析系统,由数据分 系统的MCU进行处理;数据分析系统根据人的声音特点分析频谱特性,负责对有效声音的提取,噪音的去除, 并进一步分析声音的内容,将其转化为和声音最匹配的人的意图,从而达到机器能识别人 的声音的效果;协调系统协调声音输入系统和数据分析系统的工作,对声音输入系统的数据采集和 数据分析系统的分析处理两部分做同步处理,其分为录音线程和数据分析线程两个线程模 块。
6.如权利要求5所述的在电视机上实现语音识别的方法,其特征在于,数据分析系统 是由语音识别引擎完成,语音信号转换为语音数据后,首先进行特征提取,根据语音数据的 特点提取有效频点语音数据,然后使用“倒谱均值减”的方法进行减噪处理;接着做声学层 的识别和识别后处理,根据现有的声学模型,分析辨认语音的内容,分析完成后即可得到人 说话的内容,再进一步作音词的转换,即可得到语音的文字内容。
7.如权利要求6所述的在电视机上实现语音识别的方法,其特征在于,所述协调系统 在录音线程中,首先启动录音线程,初始化硬件设备,分配好线程所需的内存资源和一些初 始参数设置,完成初始化后,便进入线程循环,判断是否有语音数据输入,把录音的数据存 入本线程的缓存区。
8.如权利要求7所述的在电视机上实现语音识别的方法,其特征在于,所述协调系统 在数据分析线程中,首先启动数据分析线程,建立和分配数据分析所需系统资源后,进入线 程循环,判断数据缓存区是否有更新过来的数据,从数据分析区取出一段内容分析处理,然 后判断数据分析是否产生结果;如果产生结果则停止录音线程,停止数据分析,将结果保 存。
9.如权利要求8所述的在电视机上实现语音识别的方法,其特征在于,所述录音线程 独立运行采集音频数据,将采集的数据存放在录音缓存区块,然后又以中断形式将数据追 加到待分析数据区,而数据分析线程独立运行处理待分析缓存区的内容,当缓存区存在内 容时就从缓冲区取出一段内容处理分析,每次从缓冲区取出一段内容,待分析数据区便向 上移动对应的大小,数据追加的时候就存放在紧贴着待分析数据区的末尾追加。
10.如权利要求9所述的在电视机上实现语音识别的方法,其特征在于协调系统中对 对录音数据缓存区分块,设定一个块大小,当采集的数据填充满一个数据块时,产生一个中 断,在这个中断里将得到的数据块搬移追加到语音数据处理数据缓存区,而与此同时录音 模块可以继续录音,将其得到的数据存放在下一个数据块,数据块循环存储追加。
全文摘要
本发明涉及消费性电子产品技术领域,提供了一种在电视机上实现语音识别的系统,包括声音输入系统、数据分析系统、以及连接声音输入系统与数据分析系统的协调系统;其中,声音输入系统负责对人类声音的采样、模拟信号到数字信号的转化以及数据缓存的操作,完成初始数据的准备工作;数据分析系统根据人的声音特点分析频谱特性,负责对有效声音的提取,噪音的去除,并进一步分析声音的内容;而协调系统主要是协调声音输入系统和数据分析系统的工作。本发明把语音识别技术引入到电视机中,利用语音识别技术可以简化电视遥控器的操作,并可以轻松实现语音点歌、语音点播电影、语音选台等,而使电视机的功能更加丰富。
文档编号H04N5/60GK101859565SQ20101019859
公开日2010年10月13日 申请日期2010年6月11日 优先权日2010年6月11日
发明者刘翰林, 赵新科 申请人:深圳创维-Rgb电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1