标题: 脚本是好玩的——让XP语音阅读你的文本文件
[打印本页]
作者: electronixtar
时间: 2006-10-22 04:20
标题: 脚本是好玩的——让XP语音阅读你的文本文件
想听听电脑是怎样发音的吗?
保存下面一句话为 Say.vbs
CreateObject("SAPI.SpVoice").Speak CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0)).ReadAll
拖一个含有英文的文本文件(*.txt)到这个vbs图标上,你的Windows XP就会自动帮你读这个文件。
要结束阅读,请 Ctrl+Alt+Del 打开任务管理器结束 wscript.exe 进程
要调节语音、音色、语速、中文阅读等,请到 控制面板 --> 语音 设置。(如果安装了 Office 则可能读中文哦)
兼容: Windows XP/2003/Vista ,以及安装了 Speech 组件的 Windows 98/2000 等。其中Vista的发音效果要比其他的好一个档次,很流畅,很自然。
代码拆解及分析:
set oSpeech = CreateObject("SAPI.SpVoice") '连接到系统的语音功能
set oFSO = CreateObject("Scripting.FileSystemObject") '打开FSO以阅读文件
set oFile = oFSO.OpenTextFile(WScript.Arguments(0)) '打开拖放到本vbs的txt文件,也就是打开脚本第一个参数
strContent = oFile.ReadAll '读取文本所有内容到一个字符串 strContent
oSpeech.Speak strContent '让系统读出字符串里的内容
set oSpeech = nothing
set oFSO = nothing
set oFile = nothing '释放资源,闪人
常见问题及解答
FAQ Updated 2006-12-21
1. 为什么我的XP阅读英文的效果是一个字母一个字母的,我记得可以阅读单词的呀?
这是因为你错误的设置了默认发音角色为中文的缘故。在 控制面板 语音 里把 默认发音设置成英文的,例如Microsoft Sam即可
2. 为什么阅读语句之间没有停顿呢?
请在每一个英文标点符号后面打一个英文的半角空格,这是英文书写习惯
3. 我这里运行怎么会出错啊,提示:下标越界
请 拖 一个txt 的图标到 这个 vbs 的图标上,不要直接点这个vbs文件的图标
4. 除了txt还可以阅读网页之类的不
可以。要修改代码,或者参照
这个帖子 把网页下载/转换成txt格式的然后朗读
5. 可以读中文不?
可以。安装了 Office 的中文发音引擎就能读中文了。具体在控制面板里设置。其实SAPI4+阅读中文的效果不好。在Vista上的Speech Server效果很好。
6. 在哪里调节语速?
我的电脑 控制面板 语音
7. 可以发音读一个单词不?我不想读文件
可以的,在批处理中用这句话:
mshta vbscript:CreateObject("SAPI.SpVoice").Speak("hello, Batch fans!")(Window.close)
[
Last edited by electronixtar on 2006-12-22 at 09:12 AM ]
作者: redtek
时间: 2006-10-22 05:09
建议标题改为: 脚本是好玩的——让XP语音阅读你的文本文件
加入“语音”一词,别让明显让为这是在用声音读文件,而不是TYPE一样的显示文件:)
给你加10分~:)
超级顶!!!这好的内容不加分简直不是人!:)))
作者: electronixtar
时间: 2006-10-22 05:44
改了。谢谢提醒
作者: lxmxn
时间: 2006-10-22 05:46
呵呵,redtek比较豪放哈。
好帖,继续……支持中…………顶!
作者: redtek
时间: 2006-10-22 05:49
接着顶~~好贴会吸引越来越多的爱好者关注、还会带来越来越多的人气~:)
作者: zhwvip
时间: 2006-10-24 05:23
第一次处女顶......(给你了)
作者: electronixtar
时间: 2006-10-24 05:50
谢谢!
作者: fastslz
时间: 2006-10-24 11:04
顶一下...
@echo off
if "%1"=="" color 0e && echo 文本语音阅读脚本帮助! && echo. && echo 使用方法: 将目标文件托拽到文件Say.bat中 && PING/n 4 127.1>NUL && exit
if "%1"=="/?" color 0e && echo 文本语音阅读脚本帮助! && echo. && echo 使用方法: 将目标文件托拽到文件Say.bat中 && PING/n 4 127.1>NUL && exit
echo set oSpeech = CreateObject("SAPI.SpVoice")>%TEMP%\Say.vbs
echo set oFSO = CreateObject("Scripting.FileSystemObject")>>%TEMP%\Say.vbs
echo set oFile = oFSO.OpenTextFile(WScript.Arguments(0))>>%TEMP%\Say.vbs
echo strContent = oFile.ReadAll>>%TEMP%\Say.vbs
echo oSpeech.Speak strContent>>%TEMP%\Say.vbs
echo set oSpeech = nothing>>%TEMP%\Say.vbs
echo set oFSO = nothing>>%TEMP%\Say.vbs
echo set oFile = nothing>>%TEMP%\Say.vbs
path=%path%;%TEMP%
if exist %~fs1 start Say.vbs %~fs1
cls && color 0a && echo. && echo 按任意键停止阅读 . . . && echo. && echo 要调节语音、音色、语速、中文阅读等,请到控制面板→语音→设置。&&echo 如果安装了 Office 则可能读中文哦 && pause >nul
taskkill /f /t /im WScript.exe >nul 2>nul
del %TEMP%\Say.vbs
作者: maya0su
时间: 2006-10-24 11:24
我倒
念的那是什么啊
一个停顿都没有
一个,念的人,真笨
哈哈—……
作者: lxmxn
时间: 2006-10-24 11:40
嘿嘿,而且速度还蛮快的,英语不好的人可听不出来哈~
作者: fastslz
时间: 2006-10-24 12:15
阅读单词效果还行~
@echo off
mode con cols=58 lines=10
:开始
color 0a
cls
Set 按键=
echo.
echo (按C退出)
Set /p 按键= 请输入你想要阅读的单词:
If /I "%按键%"=="" goto 开始
If /I "%按键%"=="c" exit
mshta vbscript:CreateObject("SAPI.SpVoice").Speak("%按键%")(Window.close)
goto 开始
[
Last edited by fastslz on 2006-10-25 at 07:20 AM ]
作者: electronixtar
时间: 2006-10-24 22:55
那是你比较笨,英文的标点符号后面要打空格的。比如: Hello, world. 要比 Hello,world 效果好。好就好在 , 后面那个空格
Re fastslz :
在批处理中使用,一句就够了:
mshta vbscript:CreateObject("SAPI.SpVoice").Speak("hello, Batch fans!")(Window.close)
作者: vkill
时间: 2006-10-25 00:50
Quote: |
Originally posted by electronixtar at 2006-10-24 22:55:
那是你比较笨,英文的标点符号后面要打空格的。比如: Hello, world. 要比 Hello,world 效果好。好就好在 , 后面那个空格
Re fastslz :
在批处理中使 ... |
|
绝了
作者: lxmxn
时间: 2006-10-25 00:54
恩,真是绝了,继续顶上来~~
作者: 9527
时间: 2006-10-25 01:47
第一次处男顶给你了,真是TMD绝了去了..........永远支持est为VBS脚本做出的贡献.......
[
Last edited by 9527 on 2006-10-25 at 01:48 AM ]
作者: redtek
时间: 2006-10-25 01:49
收藏!!!
作者: fastslz
时间: 2006-10-25 07:32
Quote: |
Originally posted by electronixtar at 2006-10-24 22:55:
Re fastslz :
在批处理中使用,一句就够了: |
|
谢谢~ 11楼的代码改过了
作者: 47258369
时间: 2006-10-28 23:35
楼主,我这里运行怎么会出错啊,提示:
脚本: X:\say.vbs
行: 1
字符: 1
错误: 下标越界
代码: 800A0009
源: Microsoft VBScript 运行时错误
作者: 47258369
时间: 2006-10-28 23:49
不好意思楼主,终于试出来怎么玩了,把文本拖进去以后就能发声了,一开始我一直以为要先打开这个脚本来以后,把文本文件拖进去~~~顺便再问下其他文件能朗读吗,比如:ini、html、bat等
作者: electronixtar
时间: 2006-10-28 23:59
其他的ini bat 可以。HTML的需要稍微修改下才可以。我现在做的是,每天早上打开电脑自动为我读 cnbeta 的 RSS 新闻
作者: newaifi
时间: 2006-11-1 04:00
如何把自动让它阅读一个特定文件里的内容呢?
比如阅读 .\a.txt 文件中的内容?
作者: electronixtar
时间: 2006-11-1 05:15
修改原代码里的 WScript.Arguments(0) 为 "C:\MyText.txt"
举个例子而已。注意要有引号
作者: yszy
时间: 2006-11-1 16:14
呵呵`有意思
作者: qq82015930
时间: 2006-11-1 23:34
,我 为什么 不能 读中文的啊?你能嘛?
作者: electronixtar
时间: 2006-11-2 02:12
Quote: |
要调节语音、音色、语速、中文阅读等,请到 控制面板 --> 语音 设置。(如果安装了 Office 则可能读中文哦) |
|
安装了 Office 的中文发音引擎就能读中文了。具体在控制面板里设置。其实SAPI4+阅读中文的效果不好。在Vista上的Speech Server效果很好。
作者: eech
时间: 2006-11-9 23:24
我拷.真是神奇.帮你顶!!!
作者: hellomop
时间: 2006-11-27 22:30
顶上去,实在是好贴!!!
作者: redtek
时间: 2006-12-22 09:35
这么精彩的好贴又欣赏了一遍~~~
作者: jmz573515
时间: 2006-12-22 10:59
好东西,收藏了。
作者: sunya
时间: 2006-12-22 22:49
不错的脚本,蛮实用的,收了
Quote: |
Originally posted by electronixtar at 2006-10-28 10:59 AM:
其他的ini bat 可以。HTML的需要稍微修改下才可以。我现在做的是,每天早上打开电脑自动为我读 cnbeta 的 RSS 新闻 |
|
dos阅读RSS如何做的?
作者: tghksj
时间: 2006-12-22 22:49
脚本收下了,
能力所在只能加2分.
作者: leoson88
时间: 2006-12-22 23:04
真的是不错的好帖子,能阅读文本文件,可惜我自己没能弄出中文的~~
作者: liuwushu
时间: 2006-12-23 06:30
我的是D版WINXP,没有wscript组件。呵呵!
作者: liuwushu
时间: 2006-12-23 06:47
我装了Office,但是没有中文发音引擎。。。
作者: redtek
时间: 2006-12-23 06:51
我试着挺好玩,你还可以让它读 “……Oooa,,,,,Aaaaoooooo……” 等很滑稽的怪音~:D
作者: liuwushu
时间: 2006-12-23 07:01
我去下载了一个TTS发音组件,现在就可以中文发音,但是读出来不是很流利。
作者: liuwushu
时间: 2006-12-23 07:04
楼上的你-_-!
作者: leoson88
时间: 2006-12-23 07:10
我安装了OFFICE还是不能读中文,要下载个TTS发音组件就能发中文音了吗?
作者: liuwushu
时间: 2006-12-23 12:53
TTS5.1 很多网站都有你去百度找找!
作者: lxmxn
时间: 2006-12-25 03:49
今天又用到你的这个帖子的脚本了,再顶一个~
作者: ksuday
时间: 2007-1-9 00:29
我真的要晕了,真原能发音啊,但没有发出中文来
作者: qasa
时间: 2007-1-9 02:59
强,这么好的东西,不能沉了
作者: yyqkcb
时间: 2007-1-9 03:04
不是一般的牛B啊~~
作者: qpmgljf
时间: 2007-1-9 03:31
顶顶...真是牛B啊....这也行...哈哈...挖到宝啦..~~~
作者: xiaohacker
时间: 2007-1-15 06:10
标题: yuhaomiao
我晕,天下还有这等强的东西!
作者: PPdos
时间: 2007-1-15 06:53
标题: 晕哪 此帖作者竟然是我们论坛的阿。。。
昨天还看了篇类似文章 把那小子崇拜的跟云彩一样 没想到是克隆来得阿。。。也不标注引用 给他一棒锤 楼主+++
作者: Eblis
时间: 2007-1-15 08:49
厉害啊...我也是第一次顶``````
作者: electronixtar
时间: 2007-1-15 09:25
Quote: |
昨天还看了篇类似文章 把那小子崇拜的跟云彩一样 没想到是克隆来得阿。。。也不标注引用 给他一棒锤 楼主+++ |
|
这种没素质的淫啊,习惯了
作者: boluor
时间: 2007-1-16 05:36
高,实在是高啊
作者: redtek
时间: 2007-1-31 06:58
欣赏~~
好帖子顶起来~:)))
作者: flykiss8
时间: 2007-2-7 03:46
学习了...
作者: bza2006
时间: 2007-3-21 10:27
不错,不得不顶
作者: jackyggt
时间: 2007-3-30 13:40
强
作者: lp1129
时间: 2007-3-31 14:11
强贴,在CMD中就可以运行下面的代码!
mshta vbscript:CreateObject("SAPI.SpVoice").Speak("楼主好人")(Window.close)
作者: lp1129
时间: 2007-3-31 14:14
一个批处理运行完毕,在后面加上一句,不能不让人惊叹!
mshta vbscript:CreateObject("SAPI.SpVoice").Speak("报告主人执行完毕")(Window.close)
作者: xroot
时间: 2007-4-5 05:55
太牛了。顶
作者: fenglingluan
时间: 2007-5-30 12:38
只有想不到,没有做不到,
真牛人也!
作者: weapfe
时间: 2007-6-24 19:41
标题: 好帖就是不能让它沉了啊
我现在在想,无奈何版主不是有个看天气预报的bat了吗?
作者: weapfe
时间: 2007-6-24 19:44
标题: 晕,还没有打完就发出去了-_-!
要是能从网上抓下新闻来读,就很8错了。。楼上有人说过了,他就在用,可我想了好半天也没有想出来-_-!
作者: vssun
时间: 2007-10-30 11:32
真的很爽.谢谢
作者: vssun
时间: 2007-10-30 12:00
能带上翻译工能吗?
作者: hackway
时间: 2007-10-31 10:27
好好玩 呵呵 高人啊
作者: 40szb
时间: 2007-11-10 22:17
牛人到处有,这里特别多
我大头小头一起顶你
作者: zhengruijian
时间: 2008-5-31 19:33
我试了下11楼的程序,不小心把程序本身粘贴到运行的程序里了,还能读出=这样的字符,只是到后面就读不了了,脚本出错.
作者: liminghack
时间: 2008-6-1 10:16
标题: 好
大哥真是功力深厚
作者: andison625
时间: 2008-6-1 11:25
太强了..顶起
再想想,如何从网页下载那些新闻报导,存成文本让他每天都读新闻.
又或者加个多种语言版+翻译.......应该可以的.
作者: andison625
时间: 2008-6-1 11:25
可不可以搞成收音机啊?
作者: fzp070
时间: 2008-6-1 15:32
强人不少呀,顶一个先
作者: feixingzt
时间: 2008-6-1 23:25
标题: 牛
非常好
作者: radem
时间: 2008-6-2 00:39
怎么我的不成功????
作者: module
时间: 2008-7-2 16:54
强人啊,不的不佩服
作者: module
时间: 2008-7-2 16:55
强人啊,不的不佩服
作者: hisplay
时间: 2008-8-22 02:38
我顶。。。。。。。我也给你加分。。可我不能。。。要不,一定给你一万分