基于虚拟仪器的语音合成与识别系统的制作方法

文档序号:13664039阅读:277来源:国知局

本发明涉及一种语音合成与识别系统,具体涉及一种基于虚拟仪器的语音合成与识别系统。



背景技术:

语言是人类最重要的交际工具,是人们进行沟通交流的各种表达符号。同时,语言也成为了人与计算机相互沟通的重要途径,而人们若想使用语言与计算机之间达到理想的交流效果,需要语音合成技术与语音识别技术这两项关键技术的支持。计算机根据语音合成技术,能够将文本文字转化为语音信号传达到人们的耳中,同时运用语音识别技术听清人们所说的话语,从而达到人机交互的目的。因此语音合成技术与语音识别技术的开发也成为了人机交互中一个十分重要的课题。因此,需要一个可以完成人机交互功能的系统,使该系统能够做到语音采集、语音合成、语音识别和模拟系统操作等功能。



技术实现要素:

本发明的目的在于提供一种基于虚拟仪器的语音合成与识别系统,采用labwindows/cvi作为开发平台,通过microsoftspeechsdk语音开发工具进行开发,实现语音采集、语音合成、语音识别和模拟操作功能。

本发明提供了一种基于虚拟仪器的语音合成与识别系统,包括:语音采集模块、语音识别模块、语音合成模块和模拟系统操作模块;

语音采集模块用于通过麦克风获取语音信号;

语音识别模块用于将麦克风收集到的语音信号进行识别,并将语音信号转化为文本格式;

语音合成模块用于将文本格式的文字内容转化为语音信号,并将语音信号通过扬声器进行播放;

模拟系统操作模块用于识别并执行语音信号中的操作指令。

进一步地,语音采集模块在获取语音信号之前还用于:

检测麦克风参数;

初始化麦克风,并配置麦克风参数;

获取麦克风属性,确定采集的方式;

开启麦克风,进行语音信号采集。

进一步地,语音合成模块具体用于语音朗读、暂停朗读、语速调节及音量调节。

进一步地,语音识别模块在语音信号识别之前还用于:通过模式匹配法对语音识别模块进行训练,具体包括:

多次获取语音信号的矢量特征记录在模板库中;

获取待识别语音信号的特征矢量与模板库中的每个模板进行相似度比较,将相似度最高者作为识别结果输出。

进一步地,模拟系统操作模块具体用于:

模拟键鼠输入,包括通过语音命令对鼠标进行移动、单击、双击、左右键选择操作及模拟按键操作;

执行相应的系统操作命令,包括通过语音命令对计算机进行关机、重启、缩小窗口、放大窗口、打开任务管理器、切换输入法操作;

打开相应的应用程序,包括打开常用的软件、记事本、浏览器、命令行窗口;及简单的语音交流。

与现有技术相比本发明的有益效果是:可以完成人机交互功能的系统,使该系统能够做到语音采集、语音合成、语音识别和模拟系统操作等功能。

附图说明

图1是本发明一种基于虚拟仪器的语音合成与识别系统的结构框图。

具体实施方式

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。

参图1所示,本实施例提供了一种基于虚拟仪器的语音合成与识别系统,该系统包括主要由四个模块构成:语音采集模块10、语音识别模块20、语音合成模块30和模拟系统操作模块40,硬件设计上,主要包括pc设备、麦克风、扬声器以及pc设备主板所自带的声卡设备。

在软件实现的过程中,主要借助labwindows/cvi这一虚拟仪器平台,labwindows/cvi向用户提供便利的面板设计功能,供设计语音交互系统的软件界面,同时完全基于ansic的开发平台便于使用microsoftspeechsdk语音开发工具。

下面对该系统的各模块进行详细描述。

语音采集模块:

语音采集模块,主要靠配置麦克风参数来实现,这一个过程在软件设计上可以借助windows自带的api——waveapi实现。为获取语音信号,需采用如下步骤:

(1)检测麦克风参数,获取计算机中存在声卡数目,即存在的音频输入设备的数量,一般选择默认输入设备。

(2)初始化麦克风,并配置麦克风参数。

(3)获取麦克风属性,确定采集的方式,主要了解麦克风有多少个声音通道,一般较为常见的是单通道和双通道,同时确定采样频率,主要分三类:11.025khz、22.05khz和44.1khz。

(4)开启麦克风,进行语音信号采集。

通过设置麦克风参数实现语音信号采集功能,其中运用到了windows的api接口wav-api接口进行程序设计。本模块的设计流程是按照检测麦克风、配置麦克风、获取麦克风属性、确定采集数据方式、开启麦克风、波形显示处理进行的。具体地:

检测麦克风功能,能够检测与计算机连接的麦克风设备,同时统计计算机设备上可以用于音频输入的声卡设备的数量。同时,还能够获取麦克风设备的相关属性,如设备id,使用状态,支持的通道数量,数据格式,采样频率等等。

配置麦克风功能,主要配置麦克风的设备id、用户回调函数、波形格式的缓冲区格式、缓冲区大小,然后打开麦克风设备,测试数据接收与发送功能是否完好。

(1)获取麦克风属性,确定需要用来进行语音信号采集的声卡的位数,从而确定采样位数。

(2)开启麦克风,收集语音信号,并将数据储存。

(3)波形显示处理,该模块需区分是采用8位采样还是16位采样。8位数据采集下,将显示时域信号波形,而16位能够显示时域信号波形和频谱波形。因为16位声卡能够将语音信号精确识别到65535个单位,而8位声卡只能显示到256位单位,造成较大的信号损失。

语音合成与识别模块

语音合成模块和语音识别模块,借助microsoftspeechsdk工具进行开发。microsoftspeechsdk它按照com标准开发,包括底层协议都是以c0m组件的形式完全独立于应用程序层,使开发者在应用程序设计过程中省去了复杂的语音技术,让我们的语音开发完全可以基于com。在本项目设计中,语音识别模块就由识别引擎(recognitionengine)管理,语音合成模块就由语音合成引擎(synthesisengine)负责。

语音开发的功能既然由com接口共同完成,那么我们在设计的过程中,须遵守特定的工作程序。概况成一句话,就是语音开发的工作原理需遵循com组件的工作原理和一般windows应用程序的工作原理(消息驱动机制),具体的实现流程如下:

(1)com平台初始化,确保com在整个程序的执行过程中是存在的,在程序运行结束之前再将其释放资源。

(2)将各个语音接口定义语音接口对象,并且要按照特定的工作顺序,在语音识别模块中,需要设置语音识别语法规则、语音信号辨识,使识别引擎处于工作状态;在语音合成模块中,需要设置朗读对象、朗读模式,使合成引擎处于工作状态。

(3)在语音识别模块中,语法规则被识别后,需向应用程序发出语音识别的消息,从而调用识别消息的响应函数,这一步主要靠isprecocontext接口完成。同时获取到语音识别的消息后,ispphrase接口将会获取语音识别的结果。上述步骤可以循环,直到停止语法规则为止。

(4)在语音合成模块中,主要通过定义朗读对象,朗读时的工作模式(同步或异步),调用ispvoice语音合成接口便可完成。

(5)当退出语音交互系统时,需卸载掉com平台,以防出现系统错误。

该语音合成模块的主要功能是由四个部分构成:

(1)语音朗读功能,实现该模块最为核心的tts转化部分,其中用户可以根据两种方式进行tts转换,一种是通过键盘输入自己需要的文本内容,然后点击语音朗读按钮进行语音合成操作;另一种是通过打开一个文本文件,由软件导入文本文件中的文本内容,并显示在软件界面的一文本框中,然后再点击语音朗读按钮进行语音合成操作;

(2)暂停朗读功能,用户可以在不需要朗读功能时暂停朗读;

(3)语速调节功能,用户可根据自己的习惯调整语音朗读时的朗读速度;

(4)音量调节功能,调节语音朗读时的声音大小。

实现该功能主要运用到语音合成(ispvoice)接口,其主要功能是实现文本到语音的转换。它的作用是由其丰富的函数功能实现的,如,使用speechlib_ispeechvoicespeak函数可将文本数据转化为语音波形,从而使电脑会说话。当处于异步工作时,可以使用speechlib_ispeechvoicegetstatus来获得发音状态及文本位置等。在接口中,还有其他许多成员函数,通过speechlib_ispeechvoicesetvolume、speechlib_ispeechvoicesetrate等等这些成员函数可以实现对发音频率、发音音量等合成属性进行调整,因此该接口是语音合成引擎(synthesisengine)的核心。

本语音识别模块采用的是模式匹配法,在开发使用中需要2个阶段的工作过程:

(1)训练阶段。用户需要将词汇表(词汇表可由用户根据需要自定义)里的词汇依次说上一遍甚至好几遍,并将其发出的语音信号的矢量特征记录在模板库中。

(2)识别阶段。用户将发出的语音信号的特征矢量与模板库中的每个模板进行相似度比较,将相似度最高者作为识别结果输出。

上述两个阶段是用户在使用过程中,提高语音交互系统语音识别率必须执行的步骤,才能尽可能发挥本语音交互系统的性能。

本语音识别模块主要功能可以分为两大类:

第一类是基于mci(mediacontrolinterface,媒体控制接口)函数的音频播放器:

(1)打开音频文件功能,该功能与语音合成模块中打开文本功能类似,支持的音频格式有mp3、wav、wma三种格式,足够满足用户的日常需要。

(2)音频播放功能,主要用于通过双声道混合模式播放音频文件用于语音识别。

(3)播放进度条显示功能。

(4)音频播放暂停、停止功能,主要用于停止音频播放,恢复音频播放只需重新点击音频文件即可。

第二类是基于microsoftspeechsdk的语音识别模块,该类是本模块的最为关键功能:

(1)语音识别功能。使用语音识别功能,用户可以使用两种方式向计算机传递语音信号,一种是通过电脑的外设麦克风设备进行传递,另一种是通过打开一个事先录好的音频文件,并改变电脑的麦克风设备,选择双声道混音模式,那么在播放音频文件时,将直接从声卡获取语音信号,而不是从电脑的扬声器获得,保证语音信号的清晰度。

(2)停止语音识别功能,能够随时暂停语音识别,并且恢复识别时只需再次点击语音识别按钮。

模拟系统操作模块

模拟系统操作模块是建立在语音识别的基础上,通过识别出的语音命令进行相应的操作,本项目中设计的模拟的系统操作类型分为以下4钟:

(1)模拟键鼠输入。允许用户通过语音命令对鼠标进行移动、单击、双击、左右键选择等等操作,同时允许用户通过语音命令模拟按键操作。

(2)执行相应的系统操作命令。允许用户通过语音命令对计算机进行关机、重启、缩小窗口、放大窗口、打开任务管理器、切换输入法等等操作。

(3)打开相应的应用程序。允许用户打开一些常用的软件,比如word、excel、ppt、记事本、浏览器、命令行窗口等等。

(4)简单的语音交流。对计算机说一句“你好”,它能够回应你一句“你好”。

模拟系统操作模块是在语音识别的基础上,根据语音识别的结果判断该结果是否符合语音命令格式,若符合,则执行;若不符合,则不执行并继续监听外部是否有语音输入。

本实施例提供的基于虚拟仪器的语音合成与识别系统集中了语音采集、语音合成、语音识别和模拟系统操作模块,能够在一定程度上,成为人机交互的媒介。基于labwindows/cvi的语音合成与识别系统成本低、效率高、易学习。利用labwindows/cvi中的模拟硬件资源建立虚拟仪器面板,实现对语音信号的实时采集、分析处理,特征提取,智能合成与识别等,将虚拟仪器技术应用于语音识别和合成系统,实现了仪器的软件化,真正体现了“软件就是仪器”的思想,便于人机交互。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1