一、批处理播放语音,代码如下:
::代码示例
@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实行语音朗读; 注意:如果只能播放英文,则需要安装tts中文引擎 |
二、批处理播放文本文件
1、新建一文本文件命名为PlayTxtSound.bat,右键编辑输入以下代码:
@echo off
title 将文本文件的内容以音频方式输出
echo. *************音频输出txt内容****************
color 0a
echo. *******************************************
echo. 作者:moki
echo. 功能说明:
echo. 1. 播放./config/Sound.txt里的文本内容;
echo. ...
echo. *******************************************
echo.
::启用延迟环境变量扩充
SetLocal EnableDelayedExpansion
set 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 DisableDelayedExpansion
pause
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、编译运行结束。
四、源代码下载地址如下:
http://pan.baidu.com/s/1dDgi1Ux
提取码:416f
参考文档:
http://baike.baidu.com/link?url=XMACGB5luUTjKRDxdllQroKbRbCTMSBFI9FWazmTBkqWwFOImePgmjggezkJ0tAg