有程序员兄弟在调试语音朗读开发包[SmartRead SDK]中delphi例子的时候,出现文本信息错落的情况,在注册的时候发现即使始终注册不上,经研究发现,原因是由于使用Delphi 2010版本造成的.
Delphi 2010 特性如下:
Delphi2010的unicode,发现一大堆的转换问题,建议大家老项目还是别转换到2010版本上,否则出问题都不知道在哪里。新项目可以直接使用delphi2010工作。
在delphi2010中定义一个变量str,无论这个变量定义为string 还是 ansistring,pos和ansipos函数都将该变量str当做unicodestring类型处理,大家可要小心了。
而我们开发的Delphi版本是老的ANSI版本,在字符串的接口上会出现一些问题, 建议大家还是使用老的Delphi做语音朗读开发包的调用,如果必须要使用Delphi 2010进行开发,那么需要转换字符串从Unicode到ANSI,才能调用开发包的动态链接库了.
edu.qudong.com/college/Office/yingyongjiaocheng/20100423/67877.html
经常用Excel来统计分点压力数据,每次统计完成后还要对上百个中低压数据进行校对。如果用眼睛校对,很容易出差错。而使用Excel的“文本到语音”功能,让软件自动报数据不仅不会出错还减轻了劳动量。首先打开Excel,点击视图→工具→语音→显示文本到语音工具栏,由于这个功能在安装Excel时不是默认的,所以在第一次使用时会提示插入Office安装光盘来安装这个功能。安装后打开“文本到语音”工具栏,先在数据文件中用鼠标选择要朗读的第一个数据,接着根据数据的排列情况来选择是“按行”还是“按列”来进行朗读,设置完成后点击工具栏最左面的“朗读单元格”按钮就可以了。在朗读的时候被朗读到的单元格会以选中状态显示,而且还可以流利地朗读中文,英文是一个字母一个字母朗读的,这样就可以校对英文单词的拼写是否正确(如图)。

该功能还可以一边输入数据一边来进行语音校对,只要点击一下工具栏最右面的“按回车开始朗读”按钮,使其为选中状态,这样在完成一个单元格的输入后按回车,Excel就会自动来朗读这个单元格中的内容。

朗读默认是男声,如果不喜欢,可以通过系统里的设置改为女声,打开控制面板中的“语音”项,在里面的“语音选择”来选择一下语音,然后点击下面的“预览声音”就可以听效果了,而且还可以设置语音的朗读速度,完成后点击确定按钮就可以了。
1,实现Sqlite UNICODE内核处理
2,改进可能造成内存溢出的问题
3,SmartRead_SetParameter()函数加了两个设置功能:
A,软heap大小限制,默认是 1M=1024*1024=1048576
B,队列可以存放的最大值,超过这个就不能添加了,默认最大是10000个
4,修正在listbox和listview显示时候,超过10个朗读项可能出现的溢出错误.
现象: 朗读从第10次开始,内容长度是3,11,19,27,35…,就会出现异常退出,原因是字符串长度小于需要的长度导致内存溢出.
smartreadsdk_cycle_test.rar适用版本: 语音朗读开发包 7.0及以上版本
下载:
smartreadsdk_cycle_test.rar
注意事项:
1,由于语音朗读开发包测试版本,在使用的时候,会随机出现注册提示框,需要点击"确定",对于长时间运行,可能会产生干扰.
2,正式版本用户,需要修改注册认证函数的注册信息:
Dll_SmartRead_InitialAuth(GetDlgItem(hdlg,IDC_READ),NULL,NULL,NULL,TEXT("support@smartysoft.com"),TEXT("1111111"),TEXT("111-111-111-111"));
如果在使用的过程中遇到问题,请发邮件: support@smartysoft.com