中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-11 05:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 朗读英文的脚本 查看 837 回复 4
楼 主 朗读英文的脚本 发表于 2009-01-12 19:47 ·  中国 北京 鹏博士BGP
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
18年会员
UID 116706
性别 男
状态 离线
最近发现WINDOWS自带的一个辅助发音功能有点意思,于是想到用它来朗读英文文章岂不是很爽,虽然发音不是很清晰也不是太标准,可是有这么个免费的外教口语老师真是很不错,而且错误的单词都能读的哦(它好像是根据构词法来发音的)!

结合刚刚学到的几个方法:用VBS创建IE窗口、获取剪贴板内容等,写了这么个小脚本,最核心的还是 sapi.spvoice 。可以直接把一个包含英文的文本文件拖到本程序上,也可以双机运行在对话矿输入一句英文让他阅读,如果不在对话矿中输入内容的话我设定为提取剪贴板的内容来读,方便浏览网页的时候。

附件中有成品,这里是原代码:


set shl=createobject("wscript.shell")
set spv=createobject("sapi.spvoice")
Set ie= createobject("InternetExplorer.Application")
set fso=createobject("scripting.filesystemobject")

function readfile(txtfile)
set f=fso.opentextfile(txtfile,1)
ie.Navigate "about:blank"
ie.ToolBar= 0
ie.StatusBar= 0
ie.Left= 100
ie.Top= 100
ie.Width= 800
ie.Height= 300
ie.Visible= 1
ie.Document.Title="Reading---"&txtfile
wscript.sleep 421
shl.appactivate "Reading---"
do until f.AtEndOfStream
toread=f.readline
line2="<font color=#0044aa size=16>"&toread&"</font>"
ie.Document.Body.InnerHTML=line1&line2
spv.speak(toread)
loop
f.close
end function

line1="<center><B>现在<a href=http://182484135.qzone.qq.com>据说是李先生</a>正在为你朗读</B><center><BR><BR>"

if wscript.arguments.count<1 then
toread=inputbox("使用方法"&chr(13)&chr(13)&"1 直接把一个文本文件拖动到本程序上"&chr(13)&"2 在此处输入一个英文句子"&chr(13)&"3 不输入任何字符则会读取剪贴板内容","Input")

if not toread="" then
spv.speak(toread)
else
ie.navigate "about:blank"
ie.visible=False
tmpfile=fso.getspecialfolder(2)&"\clipbrd.txt"
set f=fso.opentextfile(tmpfile,2,true)
str=ie.document.parentwindow.clipboarddata.getdata("text")
f.Write str
f.close
wscript.sleep 1000
readfile(tmpfile)
Set f=fso.getfile(tmpfile)
f.delete
end if
else
readfile(wscript.arguments(0))
end if
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
moniuming +5 2009-01-12 19:59
附件
ReadEnglishText.rar (948 bytes, 下载次数: 25)
2 发表于 2009-01-12 21:22 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
让XP语音阅读你的文本文件
http://www.cn-dos.net/forum/viewthread.php?tid=24016

通过右键朗读IE里的选定文本
http://www.cn-dos.net/forum/viewthread.php?tid=25952

写来玩的英文辩读器
http://www.cn-dos.net/forum/viewthread.php?tid=38597
3 发表于 2009-01-13 09:45 ·  中国 福建 福州 电信
初级用户
积分 52
发帖 36
注册 2008-10-10 18:24
17年会员
UID 128013
性别 男
状态 离线
你们好强啊……支持……
4 发表于 2009-01-13 16:13 ·  中国 北京 鹏博士BGP
高级用户
★★★
据说是李先生
积分 609
发帖 400
注册 2008-04-23 15:55
18年会员
UID 116706
性别 男
状态 离线
Originally posted by HAT at 2009-1-12 09:22 PM:
让XP语音阅读你的文本文件
http://www.cn-dos.net/forum/viewthread.php?tid=24016

通过右键朗读IE里的选定文本
http://www.cn-dos.net/forum/viewthread.php?tid=2 ... 尴尬。。。。 不过我多了获取剪贴斑哦
5 发表于 2009-01-14 13:48 ·  中国 黑龙江 牡丹江 电信
中级用户
★★
积分 216
发帖 129
注册 2007-02-14 07:26
19年会员
UID 79469
性别 男
状态 离线
凑个热闹,以前写的。

@echo oFF
color 1f
title 心随我动专用之--读英语
mode con cols=60 lines=15
:loop

set /p Contents=请输入或者粘贴你要读的单词或短语后回车(读两遍,再回车后复读):
echo 开始读音==^>^>^>
echo.
echo %Contents%
mshta vbscript:createobject("sapi.spvoice").speak(" %Contents% ")(window.close)
mshta vbscript:createobject("sapi.spvoice").speak(" %Contents% ")(window.close)
cls
goto loop
论坛跳转: