使用版本: 4.0及以上
由于很多用户在使用platform builder定制移动版本内核的时候,需要将语音系统直接打包到内核里面,那么使用现在的CESelfRegister COM方法,就会遇到问题.
如果有这个问题,可以通过修改platform.reg文件来注册COM文件,例如ttsapi.dll, ttschs.dll,ttseng.dll三个文件
点击下载:
mobile_tts_reg.rar
rar文件里面包括了四个文件
ttsapi.reg 对应了ttsapi.dll文件的COM注册
ttseng.reg 对应了ttseng.dll文件的COM注册
ttschs.reg 对应了ttschs.dll文件的COM注册
chfemale.reg ttschs.dll里面中文语音数据文件的位置指向
在把以上reg文件导入platform.reg文件的时候,需要注意是必须修改相对应文件的文件位置
例如: ttschs.reg
[HKEY_CLASSES_ROOT\CLSID\{981445B8-8B17-4C6B-AB99-C41AA951D6FA}]
@=”smTTSchsCE Class”
[HKEY_CLASSES_ROOT\CLSID\{981445B8-8B17-4C6B-AB99-C41AA951D6FA}\InprocServer32]
@=”\\Storage Card\\Program Files\\smartysoft\\smmobile\\ttschs.dll”
“ThreadingModel”=”both”
[HKEY_CLASSES_ROOT\CLSID\{981445B8-8B17-4C6B-AB99-C41AA951D6FA}\ProgID]
@=”ttschs.smTTSchsCE.1″
[HKEY_CLASSES_ROOT\CLSID\{981445B8-8B17-4C6B-AB99-C41AA951D6FA}\VersionIndependentProgID]
@=”ttschs.smTTSchsCE”
必须修改 \\Storage Card\\Program Files\\smartysoft\\smmobile\\ttschs.dll 指向你确定的文件位置
由于目前语音朗读移动开发包[SmartRead Mobile TTS SDK]已经做好的语音包和demo例子都是针对windows Mobile[PPC/SP]平台,虽然核心都是windows ce.net,但是由于windows mobile 和windows ce,CAB打包方式有些区别,CE包不能压缩,并且processtype也不相同,同时windows ce的界面大小也不是相同,目前的例子还不能使用在我indows ce上
应用户的要求,打包了windows CE 的ARM CAB和vs 2005 C#例子,需要的用户可以下载测试,具体的使用可以参考语音朗读移动开发包的使用
Windows ce CAB for ARM
http://www.smartysoft.com/cn/download/custom/smmobile.ce.ARM.CAB
Windows ce CAB for X86
http://www.smartysoft.com/cn/download/custom/smmobile.ce.X86.CAB
Windows ce CAB for MIPSII
http://www.smartysoft.com/cn/download/custom/smmobile.ce.MIPSII.CAB
vs2005 C# demo for winCE
http://www.smartysoft.com/cn/download/custom/demo_vs2005_csharp.rar
evc4 demo for winCE
http://www.smartysoft.com/cn/download/custom/demo_evc.rar
EVC例子说明:
把项目里面下面的几行屏蔽
//#include <aygshell.h>
// SHINITDLGINFO shidi;
// shidi.dwMask = SHIDIM_FLAGS;
// shidi.dwFlags =SHIDIF_SIPDOWN|SHIDIF_DONEBUTTON|SHIDIF_SIZEDLG;
// shidi.hDlg = hdlg;
// SHInitDialog(&shidi);
在link里面 加入ole32.lib
类似这样 commctrl.lib coredll.lib ole32.lib $(CEx86Corelibc)
$(CEx86Corelibc) 一项在emulator平台下好像是必须的,否则会出现,如下错误:
LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup
但在其他平台似乎就不需要了
link里面也不需要包括 aygshell.lib了
测试步骤:
1,上传CAB到winCE,安装
2,运行EVC,C#例子测试
如果你遇到任何问题,请联系我们,谢谢
support@smartysoft.com
1,进行中文朗前读的有很成时间的停顿时间,什么原因?
朗读开始前停顿是因为合成第一句话的时间,后面的合成是在前面一句话朗读的时候合成的, 而第一句话的合成前面没有朗读,所以会感觉有一些停顿,你可以把第一句话,改短些,停顿的时间就会少些.
2,默认的结果是质进行句子选择,没有词选择了?
4.0版本没有按词选择了,因为一是英文库没有按词选择, 二是按句子朗读可以提高流畅度.
3,语速的变化,只有在下一次的朗读中才能体现出来的?音量同样的?
语速的变化在下一次体现出来是因为本次朗读的声音是已经合成好,不能改变, 语速的变化在下次合成的时候再进行控制了,音量也是一样.
如果你使用的是 EVC4 或者 vs.net 2005 c++ 的例子,你就要检查,是否在提取文本框内容的时候,设置了获得文本长度的限制, 例如 256(例子里面默认设置是 256).
如果是这样, 那么就需要设置更大的文本内存,例如 1024等.
可以通过添加TTSAPILib的类引用解决.1,右键 “引用…”
2,选择 “添加引用…”
3,点击 “浏览” 项
4,发现并选择开发包里面的TTSAPILib.dll文件
5,点击 “确定”
再次运行例子测试.
生成在TTSAPILib.dll 文件的办法:
找到tlbimp.exe文件
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin (VS.NET 2005)
把tlbimp.exe, ttsapi.dll 文件放到同一目录下 例如: D:\
进入DOS, 运行
tlbimp ttsapi.dll /out: TTSAPILib.dll
即可获得TTSAPILib.dll文件, 然后用功能添加引用导入.
以上办法可以在出现下面问题时也可以使用:
vs.net c#, vb.net例子中添加引用错误问题
在vs.net 2005中添加ttsapi.dll的引用,总是出现添加引用错误的提示,
“未能添加对 ‘ttsapi.dll’ 的引用”
出现错误提示:
未处理的“System.Runtime.InteropServices.COMException”类型的异常出现在 demo_vs2005_csharp.exe 中。
其他信息: COM object with CLSID ‘{4B99A236-AD7C-4059-B88E-D2B77C5CD8CC}’ cannot be created due to the following error: Class not registered .
原因:
ttsapi.dll COM组件没有在机器或者模拟器上注册造成的.
解决办法:
上传CAB包,并运行安装语音库包,或者自己注册ttsapi.dll组件