批处理之播放文本文件

一、批处理播放语音,代码如下:

::代码示例
@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

 

 

 

 

 

你可能感兴趣的:(C++,文本,语音,调用,批处理,播放)