中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 朗读英文的脚本 上一主题 | 下一主题
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『楼 主』:  朗读英文的脚本

最近发现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


   此帖被 +5 点积分      点击查看详情   
评分人:【 moniuming 分数: +5  时间:2009-1-12 19:59


附件 1: ReadEnglishText.rar (2009-1-12 19:47, 948 bytes,下载次数: 25)
2009-1-12 19:47
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

让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



2009-1-12 21:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
JamesYou
初级用户





积分 52
发帖 36
注册 2008-10-10
状态 离线
『第 3 楼』:  

你们好强啊……支持……

2009-1-13 09:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qinchun36
高级用户

据说是李先生


积分 609
发帖 400
注册 2008-4-23
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by HAT at 2009-1-12 09:22 PM:
让XP语音阅读你的文本文件
http://www.cn-dos.net/forum/viewthread.php?tid=24016

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

尴尬。。。。

不过我多了获取剪贴斑哦

2009-1-13 16:13
查看资料  发送邮件  发短消息 网志  OICQ (182484135)  编辑帖子  回复  引用回复
xswdong
中级用户





积分 216
发帖 129
注册 2007-2-14
状态 离线
『第 5 楼』:  

凑个热闹,以前写的。

@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

2009-1-14 13:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: