DIY: 实现自己的中文语音应用
2013-10-23 17:50
232 查看
VXML 是 w3 组织提出的用以搭建语音应用的描述性语音。使用 VXML 可以很方便得搭建集成语音识别和语音合成技术的语音应用。本文给出了一个简单的例子介绍 VXML 的两个基本的使用方法——语音识别和语音合成,并且简单介绍了 VXML 与 JAVA 层信息交互的方法。相信通过本文的介绍,大家就可以搭建出很酷的语音控制系统。
语音技术
微软公司董事长比尔盖茨曾不止一次的提出,语音技术将越来越多得改变我们的生活。新一代的搜索引擎也将使用语音最为最终的输入手段;电脑键盘的作用将逐步减少,今后人们使用电脑时将不再是通过键盘输入文字,而是用语音来输入文字。
不可否认的是,如今的语音技术还未达到如他所述的成熟程度。但是一些简单的应用,例如语音拨号的功能已经被大家所接受。基于语音技术的自动应答系统在欧美已然流行开来,帮助像银行,移动运营商这样的大型服务性机构搭建无人电话语音服务,以此减少接线员的工作量,给大家的生活带来便利。
VXML 简介
Voice eXtensible Markup Language(简称 VXML)是被用来创建语音对话系统,可以调用语音合成以及语音识别服务,可以用来记录语音录入和连接电话系统。创建 VXML 语音的主要目的就是用 Web 开发的理念来开发交互式的语音应用。VXML 提供了基于 Menu 和基于 Form 的两套框架,整合了语音识别和语音合成两个关键服务,使得语音应用的开发变得更为方便和快捷。
VXML 的运行环境
VXML 和普通的标记语言一样,需要有浏览器进行解析;还需要提供语音识别和语音合成服务的应用服务器;有时也需要有 http 服务器提供文档服务;当然,如果需要与电话系统相连,就必须加上 VOIP (网络电话)的支持。如下图所示的就是 VXML 的运行环境:
图 1. VXML 运行环境
一个企业级应用的系统框架
IVR (interactive voice-response services) 也就是自动应答服务,是使用 VXML 的典型企业级应用。IVR 和使用者通过电话,按键 (DTMF) 互动,如语音订票,语音查询,语音投票等。普通的 IVR 都是支持 VXML 的解析和提供了 sip 协议的支持,通过和 ASR ( 语音识别 ) 应用服务器以及 TTS( 语音合成 ) 应用服务器的集成,可以实现几乎所有的 VXML 封装的操作。
企业级的 VXML 应用需要如下的体系结构,以使用 IBM Voice Server (WVS) 为例:
图 2. 一个 VXML 具体应用的例子
上图中的 IVR 事实上就是 VXML 解析器,通过解析 VXML,分发相应的工作给 WVS ,实现 VXML 封装的语音识别和语音合成的功能。
两个开源的实验环境
尝试 VXML,可以使用开源的项目 OpenVXI (见参考资源) 。OpenVXI 提供的是完整的 VXML 解析服务,同时也提供了有限语言的 TTS 支持。虽然暂时来看, OpenVXI 没有提供 ASR 的实现,但是 OpenVXI 提供了方便的回调函数的接口,因此可以很方便的嵌入外部 ASR 和 TTS 的服务。
尝试 VXML ,另一个选择是使用一个名为 Tadpole (见参考资源) 的 Firefox 浏览器上的开源插件。通过 Tadpole 的帮助, Firefox 平台因此具有 VXML 解析浏览器的功能。此架构的缺点是只支持 XHTML-Voice 标记语言,这个语言只能说是 VXML 语言的一个子集。
搭建自己的 VXML 中文应用
从一个简单的例子开始
清单 1. 一个典型的 VXML 的例子
双击代码全选
语音技术
微软公司董事长比尔盖茨曾不止一次的提出,语音技术将越来越多得改变我们的生活。新一代的搜索引擎也将使用语音最为最终的输入手段;电脑键盘的作用将逐步减少,今后人们使用电脑时将不再是通过键盘输入文字,而是用语音来输入文字。
不可否认的是,如今的语音技术还未达到如他所述的成熟程度。但是一些简单的应用,例如语音拨号的功能已经被大家所接受。基于语音技术的自动应答系统在欧美已然流行开来,帮助像银行,移动运营商这样的大型服务性机构搭建无人电话语音服务,以此减少接线员的工作量,给大家的生活带来便利。
VXML 简介
Voice eXtensible Markup Language(简称 VXML)是被用来创建语音对话系统,可以调用语音合成以及语音识别服务,可以用来记录语音录入和连接电话系统。创建 VXML 语音的主要目的就是用 Web 开发的理念来开发交互式的语音应用。VXML 提供了基于 Menu 和基于 Form 的两套框架,整合了语音识别和语音合成两个关键服务,使得语音应用的开发变得更为方便和快捷。
VXML 的运行环境
VXML 和普通的标记语言一样,需要有浏览器进行解析;还需要提供语音识别和语音合成服务的应用服务器;有时也需要有 http 服务器提供文档服务;当然,如果需要与电话系统相连,就必须加上 VOIP (网络电话)的支持。如下图所示的就是 VXML 的运行环境:
图 1. VXML 运行环境
一个企业级应用的系统框架
IVR (interactive voice-response services) 也就是自动应答服务,是使用 VXML 的典型企业级应用。IVR 和使用者通过电话,按键 (DTMF) 互动,如语音订票,语音查询,语音投票等。普通的 IVR 都是支持 VXML 的解析和提供了 sip 协议的支持,通过和 ASR ( 语音识别 ) 应用服务器以及 TTS( 语音合成 ) 应用服务器的集成,可以实现几乎所有的 VXML 封装的操作。
企业级的 VXML 应用需要如下的体系结构,以使用 IBM Voice Server (WVS) 为例:
图 2. 一个 VXML 具体应用的例子
上图中的 IVR 事实上就是 VXML 解析器,通过解析 VXML,分发相应的工作给 WVS ,实现 VXML 封装的语音识别和语音合成的功能。
两个开源的实验环境
尝试 VXML,可以使用开源的项目 OpenVXI (见参考资源) 。OpenVXI 提供的是完整的 VXML 解析服务,同时也提供了有限语言的 TTS 支持。虽然暂时来看, OpenVXI 没有提供 ASR 的实现,但是 OpenVXI 提供了方便的回调函数的接口,因此可以很方便的嵌入外部 ASR 和 TTS 的服务。
尝试 VXML ,另一个选择是使用一个名为 Tadpole (见参考资源) 的 Firefox 浏览器上的开源插件。通过 Tadpole 的帮助, Firefox 平台因此具有 VXML 解析浏览器的功能。此架构的缺点是只支持 XHTML-Voice 标记语言,这个语言只能说是 VXML 语言的一个子集。
搭建自己的 VXML 中文应用
从一个简单的例子开始
清单 1. 一个典型的 VXML 的例子
相关文章推荐
- DIY: 实现自己的中文语音应用
- 【未验证】Android应用如何监听自己是否被卸载及卸载反馈功能的实现(第三版)
- [置顶] Android中高仿快牙实现Socket列表的展示,获取安卓手机系统安装的应用和自己安装的应用相关信息
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现
- Android 手势锁的实现 让自己的应用更加安全吧
- Android 手势锁的实现 让自己的应用更加安全吧
- 自己实现简单的天气预报应用(3)
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现
- Java反射应用_自己实现简易Spring IOC逻辑过程
- 嵌入式Qt-4.8.6显示中文并且改变字体大小和应用自己制作的字体库
- 第一个Qt应用的实现-中文字体显示
- Android 手势锁的实现 让自己的应用更加安全吧
- asp中利用CSW中文分词组件来实现自己网站的内容关键词自动提取
- php的IMAP的应用实例(实现收发邮件、删除邮件、附件下载等功能,解决中文乱码问题)
- [置顶] Android中高仿快牙实现Socket列表的展示,获取安卓手机系统安装的应用和自己安装的应用相关信息
- asp中利用CSW中文分词组件来实现自己网站的内容关键词自动提取
- Android应用如何监听自己是否被卸载及卸载反馈功能的实现(第二版)
- while(true)应用之 实现自己的消息队列
- LABVIEW调用捷通TTS ActiveX控件实现中文文本转语音
- 借助“手说”免费应用软件,实现中文朗读(Android TTS实践)