VoiceXML简介
简单来说,VoiceXML就是语音网络世界的HTML,一种用于语音应用的开放标准的标记语言。VoiceXML的问世使得为HTML发展起来的web体系也能够轻松地创建和使用语音应用。
发展历史:
1995年AT&T研究院的Dave Ladd, Chris Ramming, Ken Rehor以及Curt Tuckey在头脑风暴关于互联网会如何改变电话应用的时候,产生了一些新的想法:为什么不设计这样一个系统来运行一种可以解析某种语音标记语言的语音浏览器,用来把互联网的内容和服务提供到千家万户的电话上。于是,AT&T就开始“电话网络项目”(Phone Web Project)。之后,Chris继续留在AT&T,Ken去了朗讯,Dave和Curt去了摩托罗拉。1999年初的时候,他们分别在各自的公司迈出了语音标记语言规范实质性的第一步。因为他们的密友关系,这几家公司合作成立了一个VoiceXML论坛组织,IBM也作为一个创始公司加入了进来。
1999年3月至8月,这个论坛的一个小组发布了VoiceXML 0.9版本。
2000年3月,VoiceXML 1.0问世。
一个月后,VoiceXML论坛把1.0规范提交给了权威的World Wide Web组织(W3C)。
2000年5月,W3C接手了这个VoiceXML 1.0规范。
2001年10月,VoiceXML 2.0试验版问世。
2002年4月,最后一个版本的2.0试验版发布。
2003年1月,VoiceXML 2.0正式版发布。
就像HTML默认需要一个图形化的web浏览器,输入输出装置(通常是键盘,鼠标),VoiceXML也默认需要一个带音频输入输出,以及键盘输入的语音浏览器。语音浏览器中的语音识别部分负责处理语音输入。语音输出可以是录音,也可以是语音浏览器的TTS(Text-To-Speech)合成语音输出。
语音浏览器通常是运行在同时和互联网(Internet)以及公共交换电话网(PSTN)相连的专用语音通道节点上。这种语音通道可以支持数千通话同时进行,可以被当今世界超过15亿电话访问。

VoiceXML自面世以来能够高速发展主要得益于这样几个方面的因素:
1、万维网(WWW)的高速发展和普及
2、基于电脑的语音识别和TTS语音合成技术的突破性发展
3、万维网超越台式电脑的传播(比如智能手机)
VoiceXML 2.0 是一个用于创建自动语音识别 (ASR) 和互动式语音应答 (IVR) 应用的可扩展标记语言 (XML)。VoiceXML继承了XML的标签风格。一个VoiceXML应用通常由多个文件(document)构成,这些文件均为.vxml后缀,由标记xml以及vxml版本开始。
<?xml version="1.0"?>
<vxml version="2.0">
在vxml标签下,document由多个离散的对话元素组成,称为表单(form)。每个form有各自的名称,且负责执行对话的一个部分。form标签底下含有一系列的用来执行应用的各种任务的元素,大体上可分为两类:field item和control item。Field item负责一些识别任务,包括从通话者吸收信息,给变量赋值,也可能包含有一些指令用来告诉通话者应该说些什么,一些语法规则来定义如何解析通话者说的话等等。Control item则负责一些非识别的任务。
Field item包含<field>, <record>, <transfer>, <object>, <subdialog>,
Control item包含<block>, <initial>。
看一个VoiceXML文件的小例子:
<?xml version="1.0"?>
<vxml application="tutorial.vxml" version="2.0">
<form id="someName">
<block>
<prompt> Created by tutee
</block>
</form>
</vxml>
VoiceXML简介的更多相关文章
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
- HTTPS简介
一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- Cesium简介以及离线部署运行
Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...
随机推荐
- Delphi目录监控、目录监听
资料地址: 1.https://www.cnblogs.com/studypanp/p/4890970.html 单元代码: (************************************ ...
- Java窗体居中显示的2种方法
第1种方法: //setSize(300, 200); pack(); // 得到显示器屏幕的宽.高 int width = Toolkit.getDefaultToolkit().getScreen ...
- 第四百一十五节,python常用排序算法学习
第四百一十五节,python常用排序算法学习 常用排序 名称 复杂度 说明 备注 冒泡排序Bubble Sort O(N*N) 将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮 ...
- Validation failed for one or more entities. See ‘EntityValidationErrors’解决方法;关于如何查看 EntityValidationErrors 详细信息的解决方法
我们在 EF 的编程中,有时候会遇到这样一个错误: 但是,按照他的提示 "See 'EntityValidationErrors' property for more details.&qu ...
- “Java是编译执行的语言”这句话对吗?
现在让你谈谈对Java平台的理解,你是否会感觉内容过于庞大?这个问题是比较宽泛的,Java发展到现在已经不仅仅是语言这么简单了,Java平台涉及的,包括但不仅限于下面提到的这些内容: Java语言本身 ...
- swoole 基础知识
$host = 127.0.0.1 监听本地ip $host = 255.3.258.139 监听外网的某个ip $host= 0.0.0.0 监听所有ip $ws = new swoole_we ...
- Mac下,如何把项目托管到github
以前一直使用的是svn,如下图: 附个下载链接:链接: https://pan.baidu.com/s/1nv6z5XJ 密码: pwqe:不太熟悉的小伙伴可以参考我写的一篇本地搭建svn服务器的博客 ...
- Oracle误删除数据的恢复方法(转)
来源:原创网站北京北亚数据恢复中心,转载须注明出处. 学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失.当我在工作中真正遇到这些 ...
- Git文件常见下标符号说明
Git文件常见下标符号说明 git是一种分布式的版本控制工具. 不用联网也能实现版本控制,很实用. 它是一款现在比较流行的版本控制工具. git的文件上的图标,可以反映出当前文件或者文件夹的状 ...
- HttpSession的认识
package javax.servlet.http; import java.util.Enumeration; import javax.servlet.ServletContext; publi ...