以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XML在语音技术中的应用 』 (http://bbs.xml.org.cn/list.asp?boardid=47) ---- [分享]《语音技术与VoiceXML 应用》 (http://bbs.xml.org.cn/dispbbs.asp?boardid=47&rootid=&id=44814) |
-- 作者:admin -- 发布时间:4/3/2007 11:10:00 PM -- [分享]《语音技术与VoiceXML 应用》 廖峻锋 NCCU Computer Center June 22 ,2003 1 前言 1.0),之后该组织继续针对1.0 规格做扩充与改进,目前VoiceXML 2.0 已经在Candidate Recommendation 的阶段。 IVR(interactive voice-response services)是现代生活中不可或缺的一项信息服务,IVR 可以和使用者透过电话,以电话按键(DTMF)互动,如语音订票、语音查榜、语音投票等都是平常很常见的IVR 应用程序。VoiceXML 便是一种方便开发IVR 系统的特殊的标记语言(Markup Language)。 Web 技术目前非常普及,坊间有很多书籍可参考。相对于Web 技术,电话方面的程序设计则难度较高,也较难学习。VoiceXML 的带来的好处便是利用大部份人熟悉的 web-based model ,开发IVR,连存取数据库的方式也都和与web 上的传统做法相同。这项特点使得IVR 的开发人员得以不用费心处理电信方面的细节,而专心在商业逻辑的开发上。 传统IVR 其实只是VoiceXML 功能一部份。VoiceXML 同时支持预录音文件及语音合成(TTS)的输出,电话按键(DTMF)及语音辨识(SR)的输入。利用这种先进的使用者界面,我们可以做出更进阶的ASR 应用程序。VoiceXML 所写作的Applications 可说是ASR 及TTS 技术的最佳应用。 2 语音技术概观 语音应用程序往往需求很大的系统资源。在1990 年代初期,计算机硬件技术开始突飞猛进后,原本只能在大型主机上实验的语音辨识引擎便开始被使用在个人及商用计算机上。 语音技术主要分成输出及输入二部份。在做语音输出时,我们可以去找声音好听的人预先录制好的音档。可是我们需要的输出一旦改变,就要重录,所以才有语音合成器(Speech Synthesis, 或称Text to Speech,TTS) 的发展。利用TTS,我们只要随时输入文字,它自动帮我们转成人的语音,如此一来我们便能轻松改变Prompt,但目前合成的语音听起来毕竟还是不像人类直接说话来得自然。所以预录音文件的目前的语音应用程序中一般是担任比较「不易改变」的Prompt,而如姓名、数量等每一次都变动性很大的音档我们通常交由TTS 来产生。 传统IVR 中,我们只会用电话按键来输入。在较先进的ASR 系统中,我们可以使用语音辨识技术取代电话按键。电话按键表达能力有限,所以使用语音辨识可以让使用者更方便输入文字。在语音系统中使用的语音辨识引擎必须是Speaker-Independent 且辨识率要相当高,才不会让使用者感到不适。目前的语音辨识技术没有办法达到100%的辨识率,所以一般比较重要的信息输入我们仍然使用电话按键来做,如身份证字号、密码或金额等等。 2.2 语音辨识(Speech Recognition) Voice Barge-in: 计算机语音在播放途中,user 又说出一句话,就可以中断计算机语音,并且也可以辨识user 的这一句话。 Continous/Discrete input:使用者语音输入时要一个字一个字说称为Discrete Input,使用者输入时可连续说称为Continous Input。辨识时要能接受Continous 及Discrete 的输入。 word spotting:在Continous Input 时,抓User 说一整句话时的关键词,以提高辨识率。 Speaker Independent: 应该不只能辨识单一使用者的语音。 成功地将语音转成计算机了解的Notation 之前,必须经过一连串的处理,以下列出目前一般ASR 的处理步骤及其说明。 Step 1:User Input User 从电话中说一个字或一句话,系统以模拟方式捕捉其语音讯号(analog acoustic signal) 。 Step 2:Digitization 把捕捉到的模拟讯号转成数字讯号。 Step 3:Phonetic Breakdown 讯号数字化后,将这个讯号切成音素(Phoemes)。 Step 4:Statistical Modeling 利用统计模型(如HMM,隐藏式马可夫模型)将这些patterns 对映到它们的phonetic representation( 类似音标的符号)。 Step 5:Matching ASR 依据程序开发者写的Grammar 、setp4 所得到的Phonetic representation 及Dictionary(phonetic respresentation 和word 的对照表,如thee,thunàthe),来做比对,传回一个n-best list(就是可能的word 加上一个Confidence score) 。 2.3 语音合成(Speech Synthesis or Text to Speech) 3 3 普及计算(Pervasive Computing)与语音上网(Voice Browsing) 最近十年来,业界的信息业务应用已经从Client-Server 架构渐渐转成Web 的分布式架构。随着硬件技术的发展,许多小型的device 也具有不输计算机的运算能力,于是我们希望透过各式各样型的device ,从计算机、NoteBook、PDA 到手机,只要我们走到不同的地方,都要能随时存取信息。这便是普及计算的动机。 3.2 语音上网(Voice Browsing) 一般对Voice 常见的误解是透过VoiceXML ,我们就可以任意从电话存取Internet 上的HTML。其实Voice Browser 只看得懂VoiceXML ,一般提供 HTML 的Content Provider 如要提供Voice Browsing 的服务,尚须另外准备一份VoiceXML 的文件才行。当然写作这份VoiceXML 文件所花的时间与人力比传统直接以C/C++去写作IVR 有效率多了。 VoiceXML 提供写作语音应用程序的新方式,由于它也是走HTTP,和原来的Web Application 开发方式几乎相同。即使原本不熟悉IVR 程序开发的Content Provider,其开发人员可以在最少时间内学会VoiceXML ,并提供另一种型态的使用者界面,这也是VoiceXML 现在如此受业界重视的原因。 3.3 制定及推动VoiceXML 的组织 目前通用的VoiceXML 1.0 是由VoiceXML forum 提给W3C 的proposal 所产生,在2000 年五月正式成为Recommandation。 4 VoiceXML 架构 VoiceXML 可以让我们使用手机来得到Internet 可以很到的信息,可以说是实 践普及计算的其中一种重要技术。 本章将重点放在实作面,下图是一个典型的普及计算架构图。我们可以看 图中有三种不同特色的装置:笔记型计算机(HTML)、手机(WML)及市内电话 (VoiceXML) 。由于这三种不同的装置先天的限制,他们的网时的使用者界面 分别使用了三种不同的技术(HTML、WML 及VoiceXML) 。但后端接的是同一 个Application Server。这代表在普及计算模型之下,尽管UI 不同,商业逻辑 只需开发一次。 4.1 VoiceXML 运作环境 其实文件服务器(Document Server)的角色正是一般Web Server 所担任的角色,在实作上我们只要在Web Server 设定档(如apache 中httpd.conf) 中做MIME 设定,让它认得vxml 的文件档式,则这台Web Server 就可以当做VoiceXML 文件服务器使用了。 如果我们有动态网页的需求(比方说,想透过Server-side scripting 存取数据库),也可以使用ASP.NET 或JSP/Servlet 等技术动态产生VoiceXML, 写作方式和原来的ASP.NET 或JSP/Servlet 技术完全一样,只是最后render 的是VoiceXML 而非HTML。(如下图) 从以上的分析可以发现,所有的技术关键在VoiceXML Gateway ,它整合了传统电信及Web 技术,并加以包装。在下一节中我们将深入探讨VoiceXML Gateway 的实作细节。 4.2 VoiceXML Gateway 实作 Web Browser 基本功能包括一个基本Web Brwoser 的功能,例如Internet 的存取(开/关socket)、Java Script 的解译及执行及cache 的使用、cookie 的接受等等。 ASR / TTS 控制做为VoiceXML Gateway 与语音辨识引擎(ASR)及语音合成引擎(TTS) 的接合器(Adapter)的角色,系统透过这些Adapter 控制下面的ASR 及TTS。VoiceXML 规格中并未规定要使用特定的ASR/TTS ,所以理论上我们可以在这层将自己所采用的ASR/TTS 整合进来。 CTI 机制负责包装整合电信语音卡提供的API,和上一点的理由类似,VoiceXML 规格并没有规定要使用那种语音卡片。由于各家的语音卡片API 都不同,所以必须在这部份将自己的语音卡片API 包装起来,供系统呼叫。 其它管理及扩充机制包含其它自行开发的Log、设定档或监控机制。 目前业界实作VoiceXML Gateway 的厂商非常多,在W3C 网站Voice Group 的Implementations 的网站可以找到非常多。在台湾目前主要有 YesMobile 、eWing(飞翼信息)及中华电信等业者实作出VoiceXML Gateway。其中中华电信的实作是由OpenVXI 1.4 版修改而成,并计划将 VoiceXML Gateway 做为下一代的IVR 平台。若是个人或学术界要自行开发 一组VoiceXML Gateway 的话,开放原始码的OpenVXI 是一个很好的起点。 5 VoiceXML 语法与文件结构 session 这个名词与一般Web Programming 的session 意义不同,在Servlet 2.3 的规格书中的session 指的是单一Browser 连上Server 时,Browser 未关掉前都算是同一个session。在Web 环境中,一个Brwoser 开启时通常只为一个使用者服务。但在VoiceXML 的环境中,一个Voice Browser 会替许多使用者服务。另外,在传统Web Programming 中,application scope 大于session,而VoiceXML 中,session 则大于application。在二者同时运用时,很容易造成开发人员的混乱。Web Programming 通常会面对multithreaded 的问题,所以session 观念的厘清也特别重要。我个人建议将VoiceXML 中的session 以其它名词取代(如Telephony-Session) ,才可以减少这种误解。 5.2 VoiceXML 文件(document)结构 一个document 在VoiceXML 中就是一个.vxml 档案,其典型结构如左 下图所示。观察图中元素可发现一份文件中主要由<form>、<menu>及其它的global 标签组成。一份文件中可以包括一个或多个<form>或<menu>,一个Form 或Menu 都称为一则对话(dialog),在dialog 中,我们定义使用者和系统间的互动。global 的<link>代表使用者在所有的dialog 中都只要讲<link> 中定义的字,就可以依照<link>中定义的url, Navigate 到别的文件(document)或对话(dialog) 。 根据定义,一位使用者在同一时 间,只会在一个dialog 中,在一个 dialog 结束时,会依据定义的url, 转到下一个dialog 中,这个dialog 可以位在本份document 或其它document。当使用者转到其它文件的dialog 时,Voice Browser 就会向Document Server 发出HTTP Request ,要求指 定的文件,再解析并执行使用者需要的dialog。(如下图) 5.3 Form 与Menu Menu 则与Form 类似,我们可将Menu 看成是没有field 的Form。Menu 和它名字含义相同,通常用来提供选单,让使用者选择进一步服务。 5.4 文法(Grammar) JSGF 采用格式是ABNF(Augmented Backus-Naur Form),SRGF 则是同时支持XML 及ABNF 二种格式。 6 VoiceXML 与多模式浏览(Multimodal Browsing) xHTML+ Voice porfile 由成熟的xHTML v1.1 的延伸模块(extended module)加上VoiceXML 2.0 子集合组成。主要提供一般浏览器多模式(Mutimodal)的功能。原本我们用Browser 上网时,只能利用鼠标、键盘输入,利用屏幕输出。利用这项技术,我们使用Browser 上网时可以同时使用多种模式输入,使用语音、鼠标或键盘输入,使用语音及屏幕输出。目前IBM 的Alphaworks 网站上已提供部份的xHTML+Voice 实作。 语音界面的加入,可以补足很多传统keyboard 及mouse 不足部份。最 明显的好处就是使用语音输入时,可以将双手空出来,使用语音输出时,眼睛 也可以空出来,这种特色使用人类在使用计算机时的工作效率更高,也是多模式 使用者界面(Multimodal User Interface)最大的好处。 7 结论与未来发展 是XML 技术一种很成功的应用。VoiceXML 目前已有150 家以上的通信及软 体厂商加入。由于VoiceXML 是W3C 的标准,可以架构在既有Web 技术的 基础上,所以未来语音应用程序采用VoiceXML 将成为一种趋势,特别是对于 CTI(Computer – Telephony Interface) 与 Web 系统开发人员而言,使用 VoiceXML 将节省许多的发展时间与成本,更有效结合 Web 与 CTI 技术。 8 参考书目
|
-- 作者:小扇子 -- 发布时间:4/5/2007 12:39:00 PM -- 从前一直没有关注过XML,现在才发现这个领域已经聚集了那么多人^_^ |
-- 作者:swiping -- 发布时间:9/29/2007 4:52:00 PM -- 支持共享 |
-- 作者:tainw -- 发布时间:12/13/2007 9:28:00 AM -- 支持!谢谢! |
-- 作者:lubin59 -- 发布时间:2/22/2008 2:38:00 PM -- 支持,我现在正在学习这个 |
-- 作者:wyh2004 -- 发布时间:3/14/2008 1:42:00 AM -- 非常感谢! 正准备了解一些 语音智能处理方面的技术,非常感谢 ! |
-- 作者:liyuexian -- 发布时间:3/31/2008 9:10:00 AM -- 感谢斑竹, 我现在正在作毕业论文,感谢你的文章 |
-- 作者:holytutor -- 发布时间:4/9/2008 10:39:00 AM -- 挺不错~~~ |
-- 作者:zzsylws -- 发布时间:5/1/2008 10:07:00 PM -- Thank you very much |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
140.625ms |