易语言调用TTS语音模块实现文字转换语音功能的代码

  

<强> DLL命令表

        第2版。本   . dll命令CoInitialize,整数型”,ole32。dll”、“CoInitialize”   。参数pvReserved,整数型   Ole32 . dll命令CoUninitialize,。”dll”、“CoUninitialize”,在当前线程,关闭COM库,卸载所有加载的dll的线程,释放线程保持的任何其他资源,并强制关闭所有的线程上的RPC连接。      

<>强利用系统自带的TTS语音系统调用来实现播放

  

此功能需要加载系统自带TTS语音库模块,如果不能调用下载TTS语音修复工具试试

        第2版。本   。支持库iext   。支持库iext2   。支持库EThread   。程序集窗口程序集1   。程序集变量位置解析,超级编辑框_回调函数使用   。程序集变量朗读,语音支持库   。程序集变量是否已暂停,逻辑型   。程序集变量程序目录,文本型   。程序集变量默认语音库,整数型   。程序集变量文本长度,整数型   ,子程序__启动窗口_尺寸被改变   选择夹1。左边=0   选择夹1。顶边=工具条1。高度   选择夹1。宽度=取用户区宽度()   选择夹1。高度=取用户区高度()——选择夹1。顶边   超级编辑框1。左边=0   超级编辑框1。顶边=20   超级编辑框1。宽度=选择夹1。宽度   超级编辑框1。高度=选择夹1。高度- 35   ,子程序__启动窗口_创建完毕   。如果真(朗读。初始化()=假)   信息框(“初始化失败!请检查您的系统里面是否安装了TTS”, 0,)   返回()   。如果真结束   程序目录=取运行目录()   滑块条_音量。位置=到整数(读取_当前音量())   透明标签_音量。标题=到文本(滑块条_音量。位置)   滑块条_语速。位置=到整数(读取_当前语速())   透明标签_语速。标题=到文本(滑块条_语速。位置- 10)   朗读.置_朗读速度(滑块条_语速。位置- 10)   枚举语音库()   默认语音库=到整数(读取_语音库())   组合框_语音库。现行选中项=默认语音库   ISpeechVoice_挂接事件()   ,子程序ISpeechVoice_挂接事件   朗读。挂接事件(1)和ISpeechVoice_StartStream)   朗读.挂接事件(2)和ISpeechVoice_EndStream)   朗读.挂接事件(3,ISpeechVoice_VoiceChange)   朗读.挂接事件(4和ISpeechVoice_Bookmark)   朗读.挂接事件(5,ISpeechVoice_Word)   朗读.挂接事件(7,和ISpeechVoice_Sentence)   朗读.挂接事件(6,ISpeechVoice_Phoneme)   朗读.挂接事件(8,ISpeechVoice_Viseme)   朗读.挂接事件(9日和ISpeechVoice_AudioLevel)   朗读.挂接事件(10,ISpeechVoice_EnginePrivate)   ,子程序ISpeechVoice_StartStream,,,事件编号:1   。参数用户数据,整数型   。参数StreamNumber,整数型   。参数StreamPosition,整数型   ,子程序ISpeechVoice_EndStream,,,事件编号:2   。参数用户数据,整数型   。参数StreamNumber,整数型   。参数StreamPosition,整数型   ,子程序ISpeechVoice_VoiceChange,,,事件编号:3   。参数用户数据,整数型   。参数StreamNumber,整数型   。参数StreamPosition,整数型   。参数VoiceObjectToken,整数型,参考   ,子程序ISpeechVoice_Bookmark,,,事件编号:4   。参数用户数据,整数型   。参数StreamNumber,整数型   。参数StreamPosition,整数型   书签。参数,文本型   。参数BookmarkId,整数型   ,子程序ISpeechVoice_Word,,,事件编号:5   。参数用户数据,整数型   。参数StreamNumber,整数型   。参数StreamPosition,整数型   。参数CharacterPosition,整数型   长度。参数,整数型   ,子程序ISpeechVoice_Sentence,,,事件编号:7   。参数用户数据,整数型   。参数StreamNumber,整数型   。参数StreamPosition,整数型   。参数CharacterPosition,整数型   长度。参数,整数型   超级编辑框1。起始选择位置=CharacterPosition   超级编辑框1。被选择字符数=长度   状态条1。置文本(1,“当前位置”+到文本(CharacterPosition) + "/总长度”+到文本(文本长度))   ,子程序ISpeechVoice_Phoneme,,,事件编号:6   。参数用户数据,整数型   。参数StreamNumber,整数型   。参数StreamPosition,整数型   。参数持续时间、整数型   。参数NextPhoneId,短整数型   。参数功能,整数型   。参数CurrentPhoneId,短整数型   ,子程序ISpeechVoice_Viseme,,,事件编号:8   。参数用户数据,整数型   。参数StreamNumber,整数型   。参数StreamPosition,整数型   。参数持续时间、整数型   。参数NextVisemeId,整数型   。参数功能,整数型   。参数CurrentVisemeId,整数型   ,子程序ISpeechVoice_AudioLevel,,,事件编号:9   。参数用户数据,整数型   。参数StreamNumber,整数型   。参数StreamPosition,整数型   。参数AudioLevel,整数型   ,子程序ISpeechVoice_EnginePrivate,,,事件编号:10   。参数用户数据,整数型   。参数StreamNumber,整数型   。参数StreamPosition,整数型   。参数EngineData,整数型   ,子程序_工具条1 _被单击   。参数按钮索引,整数型   ,判断开始(按钮索引=0)   朗读.置_语音库(默认语音库)   。如果(是否已暂停=真)   朗读.方法_继续()   否,则   启动线程(和朗读线程,,)   。如果结束   返回()   。默认   ,判断结束   ,判断开始(按钮索引=1)   。如果(是否已暂停=假)   朗读.方法_暂停()   是否已暂停=真   否,则   朗读.方法_继续()   。如果结束   返回()   。默认   ,判断结束   ,判断开始(按钮索引=2)   朗读.方法_朗读(" # SVSFPurgeBeforeSpeak)   返回()   。默认   ,判断结束   ,判断开始(按钮索引=3)   通用对话框1。打开()   。如果真(通用对话框1。文件名=" ")   返回()   。如果真结束   启动线程(和输出WAV线程,,)   。默认   ,判断结束   ,子程序输出WAV线程   CoInitialize (0)   状态条1。置文本(1,“正在转换,请耐心等待........”)   朗读.置_语音库(默认语音库)   朗读.置_朗读速度(滑块条_语速。位置- 10)   朗读.方法_输出WAV(通用对话框1。文件名+”。wav”,超级编辑框1。内容)   朗读.方法_等待朗读完毕(100)   状态条1。置文本(1,“转换完成!”)   CoUninitialize ()   ,子程序朗读线程   位置解析。重置()   CoInitialize (0)   朗读.方法_朗读(超级编辑框1。内容,1)   CoUninitialize ()   ,子程序回调函数   。参数参数_是否结束,逻辑型   。参数参数_朗读位置,整数型   。参数参数_朗读长度,整数型   。局部变量换行符位置,整数型   。局部变量编辑框内容,文本型   。如果(参数_是否结束=假)   位置解析。解析正确的位置(参数_朗读位置,参数_朗读长度)   超级编辑框1。起始选择位置=参数_朗读位置   超级编辑框1。被选择字符数=参数_朗读长度   否,则   。如果结束   ,子程序枚举语音库   。局部变量语音库数量,整数型   。局部变量临时计次,整数型   组合框_语音库。清空()   语音库数量=朗读。取_语音库数量()   计。次循环首(语音库数量,临时计次)   组合框_语音库。加入项目(朗读。取_语音库名称(临时计次),)   计。次循环尾()   ,子程序_滑块条_音量_位置被改变   透明标签_音量。标题=到文本(滑块条_音量。位置)   ,子程序_滑块条_语速_位置被改变   透明标签_语速。标题=到文本(滑块条_语速。位置- 10)   ,子程序保存_当前音量   。参数音量,文本型   写配置项(程序目录+”\集。ini”、“音量”、“价值”、音量)   ,子程序保存_当前语速   。参数语速,文本型   写配置项(程序目录+”\集。ini”、“语速”、“价值”、语速)   ,子程序保存_语音库   。参数参数_默认语音库,文本型   写配置项(程序目录+”\集。ini”、“语音库”、“价值”、参数_默认语音库)   ,子程序读取_当前音量,文本型   返回(读配置项(程序目录+”\集。ini”、“音量”、“价值”、“100”)   ,子程序读取_当前语速,文本型   返回(读配置项(程序目录+”\集。ini”、“语速”、“价值”、“10”))   ,子程序读取_语音库,文本型   返回(读配置项(程序目录+”\集。ini”、“语音库”、“价值”、“0”))   ,子程序_组合框_语音库_列表项被选择   保存_语音库(到文本(组合框_语音库。现行选中项))   朗读.置_语音库(组合框_语音库。现行选中项)   默认语音库=组合框_语音库。现行选中项   ,子程序_滑块条_语速_鼠标左键被放的开,逻辑型   。参数横向位置,整数型   。参数纵向位置,整数型   。参数功能键状态,整数型   透明标签_语速。标题=到文本(滑块条_语速。位置)   保存_当前语速(透明标签_语速。标题)   朗读.置_朗读速度(滑块条_语速。位置- 10)   ,子程序_滑块条_音量_鼠标左键被放的开,逻辑型   。参数横向位置,整数型   。参数纵向位置,整数型   。参数功能键状态,整数型   透明标签_音量。标题=到文本(滑块条_音量。位置)   保存_当前音量(透明标签_音量。标题)   朗读.置_音量(滑块条_音量。位置)   ,子程序_超级编辑框1 _内容被改变   超级编辑框1。内容=子文本替换(超级编辑框1。内容,#换行符”、“,,,真)   文本长度=取文本长度(超级编辑框1。内容)   ,子程序_按钮_刷新_被单击   枚举语音库()   默认语音库=到整数(读取_语音库())   组合框_语音库。现行选中项=默认语音库

易语言调用TTS语音模块实现文字转换语音功能的代码