专利名称:一种导航系统用户语音自定义方法
技术领域:
本发明涉及导航系统领域,特别涉及了一种导航系统用户语音自定义方法。
背景技术:
随着城市道路网络的日益复杂和车辆日益增多,汽车导航系统已经得到了广泛的应用。使得驾驶员在复杂的路况下依然能够自由驾驶。汽车导航系统属于典型的嵌入式设备,受到体积,成本,功耗和应用场合的限制。随着嵌入式技术的发展,汽车导航系统朝着智能化,人性化发展。实时语音引导功能已经广泛的应用在导航终端。用户可以实时获得引导语音提示,在驾驶过程中不用查看地图的条件下就能方便的获得更多的地图提示信息。语音引导使人机交互更加人性化,同时也保证了驾驶的安全性。传统汽车导航系统语音提示采用内置TTS发声引擎,通过计算机合成出接近自然声音的语音信号输出到发声设备。其结构框架如下:TTS语音合成过程包括在文本分析处理模块进行文本解析,词语切分,语法分析,语意分析和韵律处理。接下来交给语音合成模块进行语音合成,最终输出PCM编码语音信号,传入Codec芯片进行D/A转换,通过音响功放电路推动扬声器发出接近自然声音的语
曰 传统的TTS发音虽然应用广泛,但是发音前需要合成,会导致响应速度变慢。为了提高响应速度,目前在导航系统采取了一些优化措施,包括预读取字符串和语音库,声音缓存等方式,提高了语音实时播报的速度。但是由于语音库是内置在系统中,用户并不能直接对其进行定制。当用户不满意播报效果时,不能单独针对某一条提示语音进行修改。现有导航系统会在引导过程中,给用户比较详尽道路信息的语音提示,导航系统通过TTS引擎合成语音,语音库由于在导航出厂前内置在系统中,用户并不能自由替换提示语音。
发明内容
本发明的目的是为了能把用户预先自己录制好的语音加入到汽车导航的语音提示系统内,使在导航系统能够选择使用自定义的语音来进行提示,特提供了一种导航系统用户语音自定义方法。本发明提供了一种导航系统用户语音自定义方法,其特征在于:所述的导航系统用户语音自定义方法硬件涉及定位模块、算路模块、引导模块、TTS语音合成模块、解码模块;定位模块,在汽车行驶过程中,通过硬件的GPS模块获取到位置信息;其中通信多数采用NMEA-0183协议,报文中包含定位所需要的坐标信息;模块需要先解析报文,获取位置坐标后再经过地图匹配算法进行轨迹纠偏,最后获取较精确的位置坐标;
算路模块,提供了为从出发地到目的地为车辆寻找到驾驶时间最短的路线的功能;电子地图保存了矢量化的道路网络信息;道路网可以看作权值为正值的有向图;算路模基于dijkstra算法在有向图中搜索最短路径;一个有权重的有向图G,以及G中的一个来源顶点S中,以V表示G中所有顶点的集合;Dijkstra算法可以在一个图中,找到从一个顶点s到任何其他顶点的最短路径;引导模块,在驾驶过程中用户可能会遇到限速,转弯等情况;引导模块就是在就算好的路线上,对用户进行提示;在地图数据中,保存了引导信息;当车辆行驶到带有引导信息的坐标时,会触发语音提示;引导模块把引导信息转换成提示字符串;比如“前方300米左转,然后直行”;TTS语音合成模块,把引导模块生成的提示字符串通过语言学处理,韵律处理和声学处理合成为语音信号;解码模块,作为数字信号的提示语音,以PCM编码形式进行储存;解码模块就是把语音编码进行处理,然后进行D/A转换,推动音响设备进行发音;用户自定义语音的实现基础:TTS语音合成引擎合成语音过程比较复杂,从而导致消耗过多的CPU资源;另外合成语音需要较长时间,会导致语音播报延时;通过优化,采用语音缓存的方式来解决这一问题;在进行引导过程中,90%的提示语音是经常出现的,这样可以把语音缓存起来;语音缓存文件是由字符串索引和语音数据组成;引导模块生成缓存中有的字符串时,可以直接播放缓存中已有的声音;这样避免了采用TTS语音合成模块生成语音的复杂过程,加快了语音实时播报的速度,也降低了系统资源的损耗;其流程如下图2所示;在语音合成之前,系统会用引导信息的字符串和缓存中的每一条字符串索引进行比较,如果一致,命中缓存,则直接播放缓存中的语音,如果不一致,则利用TTS语音合成系统先合成语音,再进行播放;用户自定义提示语音是通过PC端软件对语音缓存文件的编辑来完成的;最后生成自定义语音文件;自定义语音文件与语音缓存文件具有相同结构,都是由索引和数据部分构成;索引部分存储了语音提示的字符串信息,而数据部分保存了 PCM编码的语音信息;索引文件采用了链式结果进行存储;PC端软件首先读取语音缓存文件,把缓存文件的索引字符串全部载入到内存;按条目显示在PC端软件上,用户可以选择所要自定义的字符串,对字符串进行朗读录音;PC端软件调用底层硬件驱动程序,通过Codec芯片对模拟语音信号以32kbps进行采样,最后把字符串索引和新录制的语音写入到用户自定义语音文件中;如图3所示,在语音缓存文件中,每个提示信息字符串都对应着唯一的语音缓存数据;通过提示信息字符串就可以找到对应的声音;缓存存储文件采用链式结构,加载到内存时构造缓存索引链表,链表中每个节点包含索引字符串和语音数据在缓存文件中的偏移量信息;在每次比较字符串时,遍历整个链表;如果命中,通过偏移量找到对应的语音数据;生成的新的自定义语音文件中,也存在相同的对应关系;录制过的提示信息字符串语音数据部分被填充为用户自己的语音,而没有录制的部分被设置为空数据;自定义语音文件添加到导航设备,到导航系统启用自定义语音功能时,在播放语音时系统优先在自定义语音文件中查找提示信息字符串;查找到字符串后,当提示信息字符串对应的录制语音存在时,直接播放用户录制的语音数据;当没有查找到提示信息字符串时,再到系统自带语音文件中查找;图4是处理用户自定义语音文件的流程图:声音录制工具会显不缓存中所有播报内容列表,用户选中播报列表中的一条后,进行朗读;声音录制工具把语音采集保存到数据文件中,导入到导航系统内作为自定义语音库。由于嵌入式设备硬件资源有限,TTS语音合成过程复杂,运算量大,往往会在要求实时性比较高的场合表现的并不是很理想,同时比较占用系统内存和CPU资源,同时生成语音用户并不能定制。本发明由于采用用户预先定义好的语音,可以省去语音合成的过程,节省了硬件资源,同时提高语音播报的响应速度。用户也可以根据自己的偏好去录制或选择提示语音,增加了用户的定制性。本发明的优点:由于汉语的复杂性,TTS引擎在一下条件合成语音可能会出现错误。字符串中包括多音字;同一个字在不同词语中有不同的读音。字符串中包含变音汉字;在特定语境下,有些汉字会出现音调变化。字符串中包含特殊含义符号,比如日期分隔符。字符串中包含计量单位字符。本发明所述的导航系统用户语音自定义方法,采用语音自定义功能,可以纠正TTS引擎合成语音的错误,也增加了导航系统的定制能力,加快了提示语音的实时性能。
下面结合附图及实施方式对本发明作进一步详细的说明:图1为TTS发声引擎结构框架示意图;图2为缓存语音播放流程图;图3为自定义语音文件结构图;图4为自定义语音播放流程图;图5为自定义语音功能框架图。
具体实施例方式实施例1本实施例提供了一种导航系统用户语音自定义方法,其特征在于:所述的导航系统用户语音自定义方法硬件涉及定位模块、算路模块、引导模块、TTS语音合成模块、解码模块;定位模块,在汽车行驶过程中,通过硬件的GPS模块获取到位置信息;其中通信多数采用NMEA-0183协议,报文中包含定位所需要的坐标信息;模块需要先解析报文,获取位置坐标后再经过地图匹配算法进行轨迹纠偏,最后获取较精确的位置坐标;算路模块,提供了为从出发地到目的地为车辆寻找到驾驶时间最短的路线的功能;电子地图保存了矢量化的道路网络信息;道路网可以看作权值为正值的有向图;算路模基于dijkstra算法在有向图中搜索最短路径;一个有权重的有向图G,以及G中的一个来源顶点S中,以V表示G中所有顶点的集合;Dijkstra算法可以在一个图中,找到从一个顶点s到任何其他顶点的最短路径;
引导模块,在驾驶过程中用户可能会遇到限速,转弯等情况;引导模块就是在就算好的路线上,对用户进行提示;在地图数据中,保存了引导信息;当车辆行驶到带有引导信息的坐标时,会触发语音提示;引导模块把引导信息转换成提示字符串;比如“前方300米左转,然后直行”;TTS语音合成模块,把引导模块生成的提示字符串通过语言学处理,韵律处理和声学处理合成为语音信号;解码模块,作为数字信号的提示语音,以PCM编码形式进行储存;解码模块就是把语音编码进行处理,然后进行D/A转换,推动音响设备进行发音;用户自定义语音的实现基础:TTS语音合成引擎合成语音过程比较复杂,从而导致消耗过多的CPU资源;另外合成语音需要较长时间,会导致语音播报延时;通过优化,采用语音缓存的方式来解决这一问题;在进行引导过程中,90%的提示语音是经常出现的,这样可以把语音缓存起来;语音缓存文件是由字符串索引和语音数据组成;引导模块生成缓存中有的字符串时,可以直接播放缓存中已有的声音;这样避免了采用TTS语音合成模块生成语音的复杂过程,加快了语音实时播报的速度,也降低了系统资源的损耗;其流程如下图2所示;在语音合成之前,系统会用引导信息的字符串和缓存中的每一条字符串索引进行比较,如果一致,命中缓存,则直接播放缓存中的语音,如果不一致,则利用TTS语音合成系统先合成语音,再进行播放;用户自定义提示语音是通过PC端软件对语音缓存文件的编辑来完成的;最后生成自定义语音文件;自定义语音文件与语音缓存文件具有相同结构,都是由索引和数据部分构成;索引部分存储了语音提示的字符串信息,而数据部分保存了 PCM编码的语音信息;索引文件采用了链式结果进行存储;PC端软件首先读取语音缓存文件,把缓存文件的索引字符串全部载入到内存;按条目显示在PC端软件上,用户可以选择所要自定义的字符串,对字符串进行朗读录音;PC端软件调用底层硬件驱动程序,通过Codec芯片对模拟语音信号以32kbps进行采样,最后把字符串索引和新录制的语音写入到用户自定义语音文件中;如图3所示,在语音缓存文件中,每个提示信息字符串都对应着唯一的语音缓存数据;通过提示信息字符串就可以找到对应的声音;缓存存储文件采用链式结构,加载到内存时构造缓存索引链表,链表中每个节点包含索引字符串和语音数据在缓存文件中的偏移量信息;在每次比较字符串时,遍历整个链表;如果命中,通过偏移量找到对应的语音数据;生成的新的自定义语音文件中,也存在相同的对应关系;录制过的提示信息字符串语音数据部分被填充为用户自己的语音,而没有录制的部分被设置为空数据;自定义语音文件添加到导航设备,到导航系统启用自定义语音功能时,在播放语音时系统优先在自定义语音文件中查找提示信息字符串;查找到字符串后,当提示信息字符串对应的录制语音存在时,直接播放用户录制的语音数据;当没有查找到提示信息字符串时,再到系统自带语音文件中查找;图4是处理用户自定义语音文件的流程图:
声音录制工具会显不缓存中所有播报内容列表,用户选中播报列表中的一条后,进行朗读;声音录制工具把语音采集保存到数据文件中,导入到导航系统内作为自定义语音库。由于嵌入式设备硬件资源有限,TTS语音合成过程复杂,运算量大,往往会在要求实时性比较高的场合表现的并不是很理想,同时比较占用系统内存和CPU资源,同时生成语音用户并不能定制。本发明由于采用用户预先定义好的语音,可以省去语音合成的过程,节省了硬件资源,同时提高语音播报的响应速度。用户也可以根据自己的偏好去录制或选择提示语音,增加了用户的定制性。
权利要求
1.一种导航系统用户语音自定义方法,其特征在于:所述的导航系统用户语音自定义方法硬件涉及定位模块、算路模块、引导模块、TTS语音合成模块、解码模块; 定位模块,在汽车行驶过程中,通过硬件的GPS模块获取到位置信息;其中通信多数采用NMEA-0183协议,报文中包含定位所需要的坐标信息;模块需要先解析报文,获取位置坐标后再经过地图匹配算法进行轨迹纠偏,最后获取较精确的位置坐标; 算路模块,提供了为从出发地到目的地为车辆寻找到驾驶时间最短的路线的功能;电子地图保存了矢量化的道路网络信息;道路网可以看作权值为正值的有向图;算路模基于dijkstra算法在 有向图中搜索最短路径;一个有权重的有向图G,以及G中的一个来源顶点S中,以V表示G中所有顶点的集合;Dijkstra算法可以在一个图中,找到从一个顶点s到任何其他顶点的最短路径; 引导模块,在驾驶过程中用户可能会遇到限速,转弯等情况;引导模块就是在就算好的路线上,对用户进行提示;在地图数据中,保存了引导信息;当车辆行驶到带有引导信息的坐标时,会触发语音提示;引导模块把引导信息转换成提示字符串;比如“前方300米左转,然后直行”; TTS语音合成模块,把引导模块生成的提示字符串通过语言学处理,韵律处理和声学处理合成为语音信号; 解码模块,作为数字信号的提示语音,以PCM编码形式进行储存;解码模块就是把语音编码进行处理,然后进行D/A转换,推动音响设备进行发音; 用户自定义语音的实现基础: TTS语音合成引擎合成语音过程比较复杂,从而导致消耗过多的CPU资源;另外合成语音需要较长时间,会导致语音播报延时;通过优化,采用语音缓存的方式来解决这一问题;在进行引导过程中,90%的提示语音是经常出现的,这样可以把语音缓存起来;语音缓存文件是由字符串索引和语音数据组成; 引导模块生成缓存中有的字符串时,可以直接播放缓存中已有的声音;这样避免了采用TTS语音合成模块生成语音的复杂过程,加快了语音实时播报的速度,也降低了系统资源的损耗; 在语音合成之前,系统会用引导信息的字符串和缓存中的每一条字符串索引进行比较,如果一致,命中缓存,则直接播放缓存中的语音,如果不一致,则利用TTS语音合成系统先合成语音,再进行播放; 用户自定义提示语音是通过PC端软件对语音缓存文件的编辑来完成的;最后生成自定义语音文件;自定义语音文件与语音缓存文件具有相同结构,都是由索引和数据部分构成;索引部分存储了语音提示的字符串信息,而数据部分保存了 PCM编码的语音信息;索引文件采用了链式结果进行存储; PC端软件首先读取语音缓存文件,把缓存文件的索引字符串全部载入到内存;按条目显示在PC端软件上,用户可以选择所要自定义的字符串,对字符串进行朗读录音;PC端软件调用底层硬件驱动程序,通过Codec芯片对模拟语音信号以32kbps进行采样,最后把字符串索引和新录制的语音写入到用户自定义语音文件中; 生成的新的自定义语音文件中,也存在相同的对应关系;录制过的提示信息字符串语音数据部分被填充为用户自己的语音,而没有录制的部分被设置为空数据;自定义语音文件添加到导航设备,到导航系统启用自定义语音功能时,在播放语音时系统优先在自定义语音文件中查找提示信息字符串;查找到字符串后,当提示信息字符串对应的录制语音存在时,直接播放用户录制的语音数据;当没有查找到提示信息字符串时,再到系统自带语音文件中查找; 声音录制工具会显示缓存中所有播报内容列表,用户选中播报列表中的一条后,进行朗读;声音录制工具把语音采集保存到数据文件中,导入到导航系统内作为自定义语音库。
2.按照权利 要求1所述的导航系统用户语音自定义方法,其特征在于:所述的语音缓存文件中,每个提示信息字符串都对应着唯一的语音缓存数据;通过提示信息字符串就可以找到对应的声音;缓存存储文件采用链式结构,加载到内存时构造缓存索引链表,链表中每个节点包含索引字符串和语音数据在缓存文件中的偏移量信息;在每次比较字符串时,遍历整个链表;如果命中,通过偏移量找到对应的语音数据。
全文摘要
一种导航系统用户语音自定义方法,硬件涉及定位模块、算路模块、引导模块、TTS语音合成模块、解码模块;引导模块生成缓存中有的字符串时,可以直接播放缓存中已有的声音;在语音合成之前,系统会用引导信息的字符串和缓存中的每一条字符串索引进行比较,再进行播放;自定义语音文件与语音缓存文件具有相同结构,都是由索引和数据部分构成;PC端软件首先读取语音缓存文件,自定义语音文件添加到导航设备,导航系统启用自定义语音功能;声音录制工具把语音采集保存到数据文件中,导入到导航系统内作为自定义语音库。本发明优点采用语音自定义功能,纠正TTS引擎合成语音的错误,增加导航系统的定制能力,加快了提示语音的实时性能。
文档编号G01C21/36GK103093753SQ20121055452
公开日2013年5月8日 申请日期2012年12月14日 优先权日2012年12月14日
发明者徐小光, 张璐, 迟丽丽, 谢振江, 徐良, 李峰 申请人:沈阳美行科技有限公司