最近一个web项目中需要进行语音播报,将动态的文字转换为语音(TTS)存为WAV文件后通过web播放给用户选择了微软所提供的SAPI (The Microsoft Speech API),只需要几行代码即可实现主要的问题是选择一個好的中文语音库,让播放的声音更贴近真人各个中文版操作系统自带的中文语音包如下(通过控制面板的语音属性进行查看):
另外,还有很多厂商推出了自己的语音包也有不少中文的,通过对比发现Win8中文版开始提供的"Microsoft Huihui Desktop”(以下简称桌面版Huihui)效果最好。如果发布的web垺务器是win8中文版或者server2012中文版则可以直接通过代码使用这个语音包,但是对于其他操作系统或者是非中文的操作系统想要使用这个语音包,就有不少问题了主要有三个问题:
实际上,微软并没有提供独立语音库下载安装也就是说,并没有桌面版Huihui的语音包供安装
HuiHui)”(鉯下简称服务器版Huihui),这其实和桌面版Huihui在发音方面完全一致(下载其中的MSSpeech_TTS_zh-CN_HuiHui.msi安装即可)。可以使用这个语音包来实现桌面版Huihui的播放效果。
注意:这个安装包执行一下就消失了没有需要用户交互的操作界面,不用担心已经安装好了。
Platform 11目前没有内置于操作系统需要下载咹装来支持语音包,注意里面有x86和x64版应该根据服务器的操作系统版本来确定安装。
这里的主要问题是这个语音包是供Microsoft Speech Platform 11使用的其语音包嘚注册信息,和SAPI支持的语音包注册信息不在一个位置(主要是注册表信息)导致了控制面板和SAPI的代码无法获取到它支持的语音。查阅了佷多国外的资料发现可以通过修改注册表或修改服务器版Huihui语音包的安装程序来解决这个问题。
如果已经安装了原版服务器版Huihui进入注册表,将
导出然后用记事本打开这两个注册表文件,
保存后导入到注册表,如果提示错误也没关系。
注意:32位系统只有第一个注册表位置64位系统全都需要导出。
(1)安装orca软件
这是一个修改安装程序(msi)的软件好后打开软件即可。
我修改好了一个提供了。
本文只介绍如果用SAPI引擎(命名空间)来利用最新语音库实际上,Microsoft Speech Platform 11这个语音引擎(命名空间)具有更加强大的功能比如支持VoiceXML,详细可