一、批处理播放语音,代码如下:
::代码示例@echo off::英文mshta vbscript:createobject("sapi.spvoice").speak("There is a piece of pure land of legend, lived in ancient nation")(window.close)::中文mshta vbscript:createobject("sapi.spvoice").speak("传说中有一片净土,住着古老的民族!")(window.close)
代码解释:
1、mshta是dos里支持调用vbs和js的命令行; 2、这里是利用vbs实行语音朗读; 注意:如果只能播放英文,则需要安装 |
二、批处理播放文本文件
1、新建一文本文件命名为PlayTxtSound.bat,右键编辑输入以下代码:
@echo offtitle 将文本文件的内容以音频方式输出echo. *************音频输出txt内容****************color 0a echo. *******************************************echo. 作者:mokiecho. 功能说明:echo. 1. 播放./config/Sound.txt里的文本内容;echo. ...echo. *******************************************echo.::启用延迟环境变量扩充SetLocal EnableDelayedExpansionset txtstring=for /f %%i in (./config/Sound.txt) do ( echo %%i set "txtstring=!txtstring!%%i" )mshta vbscript:createobject("sapi.spvoice").speak("!txtstring!")(window.close)::mshta vbscript:createobject("sapi.spvoice").speak("净土")(window.close)::停用延迟环境变量扩充SetLocal DisableDelayedExpansionpause
2、在PlayTxtSound.bat同一目录,新建config文件夹。在config文件下新建一文本文件命名为Sound.txt,右键打开输入以下内容:
传说中有一片净土,住着古老的民族!每个人能歌善舞,他们从不孤独。传说中有一座雪山,白云在山顶漂浮。一个梦反反复复,只想让你默默领悟。哦啊依哟啊依哟啊依耶... 哦啊依哟啊依耶...哦啊依哟啊依哟啊依耶... 哦啊依哟啊依耶... |
3、双击PlayTxtSound.bat运行。
三、c++中调用批处理程序
1、新建一个win32控制台程序(我使用的是vs2010),项目名称为PlayTxtSound.sln。打开PlayTxtSound.cpp,在_tmain函数中输入如下代码并保存:
/****************c++内嵌批处理程序朗读***************/ char* chbuf= "传说中有一片净土,住着古老的民族!"; char chcmd[1024] = {0}; sprintf(chcmd,"mshta vbscript:createobject(\"sapi.spvoice\").speak(\"%s\")(window.close)",chbuf); system(chcmd); system("pause"); /***************c++调用批处理文件朗读***************/ char* batfile = "F:\\test\\批处理之播放文本文件里的内容"; memset(chcmd,0,sizeof(chcmd)); sprintf(chcmd,"call %s",batfile); system(chcmd); system("pause"); return 0;
2、编译运行结束。
四、源代码下载地址如下:
提取码:416f
参考文档: