制作Neospeech免安装版


Neospeech 免安装版Neospeech语音引擎在业内是数一数二的,在中文语音方面固然还比不上科大讯飞,但Neospeech符合微软TTS的Sapi应用。Neospeech语音包安装非常简单,但是安装时间非常长,而且文件体积大。尤其是复制到其他系统或者是重装系统,安装Neospeech语音包耗时太多。因此有必要制作免安装版,避免重复安装。


制作免安装版

Neospeech的安装包文件制作的非常标准,安装后只在两个地方有写入:

  • 一个是所有的语音引擎文件都存在于安装文件夹;
  • 另一个就是Neospeech的注册表信息。

制作Neospeech免安装版就直接复制安装文件夹的所有内容,并提取注册表信息即可。


提取注册表信息

和一般程序的注册表信息不同,因为还涉及调用微软TTS的Sapi问题,所以Neospeech的注册表信息有两类:

  1. Neospeech的程序信息;
  2. Neospeech的语音引擎信息。

我们只需要提取其中的语音引擎信息就可以保证系统可以识别该语音。

提取步骤:

以Neospeech Hui 3.11版为例:
使用Total uninstall等可以监控系统注册表变化的工具,正常安装Neospeech Hui语音包后在Total uninstall里面复制以下注册信息:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\VW]
[HKEY_LOCAL_MACHINE\SOFTWARE\VW\VT]
[HKEY_LOCAL_MACHINE\SOFTWARE\VW\VT\Hui]
[HKEY_LOCAL_MACHINE\SOFTWARE\VW\VT\Hui\M16-SAPI5]
“Path”=”D:\\VT\\Hui\\”
“SamplingRate”=”16000”
“EngineID”=”12-30-2009”
“InstalledDate”=”11-20-2010”
“Gender”=”F”
“DBSIZE”=”375”
“SpeakerID”=”202”
“IO”=”FILE”
“SAPIEngineID”=”12-30-2009”
“Version”=”3.11.0.0″

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\VW Hui]
@=”VW Hui”
“804”=”VW Hui”
“CLSID”=”{887D2DDD-FE5A-40f5-9F61-3EB56BC387E8}”
“VoiceData”=”D:\\VT\\Hui\\”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\VW Hui\Attributes]
“Age”=”Adult”
“Gender”=”Female”
“Language”=”804”
“Vendor”=”Voiceware”
“Name”=”VW Hui”

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{887D2DDD-FE5A-40f5-9F61-3EB56BC387E8}]
@=”vtchiSAPI50 Class”

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{887D2DDD-FE5A-40f5-9F61-3EB56BC387E8}\InprocServer32]
@=”D:\\VT\\Hui\\lib\\vtchisapi50.dll”
“ThreadingModel”=”Both”

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{887D2DDD-FE5A-40f5-9F61-3EB56BC387E8}\ProgID]
@=”vtchiSAPI50.Hui”

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{887D2DDD-FE5A-40f5-9F61-3EB56BC387E8}\TypeLib]
@=”{44F6E812-E663-4d12-BB0E-554E267D3E03}”

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{887D2DDD-FE5A-40f5-9F61-3EB56BC387E8}\VersionIndependentProgID]
@=”vtchiSAPI50″

总共只有3组注册值可用,其他的注册信息是不需要的,这样一个免安装版就制作完成:包含一个Neospeech的语音文件夹,一个reg的注册文件。
如果“偷懒”的话,可以直接复制这里的提供的例子,更改其中的文件安装路径值和版本等信息即可。


Windows 7系统

在Windows7 64位系统中,方法完全一样,只是注册表路径有点不同:

  • “HKEY_LOCAL_MACHINE\SOFTWARE\……”更新为“HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\……”;
  • “HKEY_LOCAL_MACHINE\SOFTWARE\Classes\……”更新“HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\……”。

32位系统应该和XP一样。


免安装版的“便携化”

便携化就是直接复制语音文件夹和注册文件,并对不同系统更改reg文件里的路径值。
比如原系统安装路径为“D:\VT\Hui\”,复制到其他系统,就需要更改这个路径值。直接批量替换“D:\\VT\\Hui\\”为实际路径值即可。注意注册表的路径值是“\\”。