Introduction: Make a Vbs Script to Read the Time
Hi, friendly neighborhood Super_Nerd here. As my first instructable I will show how to make a simple vbs script that reads the time and date with the narrorator. You will need:
-a computer running Windows 95 or higher (won't work on Macs sorry macs :( )
-notepad
-ability to copy and paste
-a brain (sorry jellyfish)
Step 1: A Pad of Notes
First open notepad
Windows 95-2000
Start>Programs>Acessories>Notepad
Windows XP-7
Start>All Programs>Acessories>Notepad
Once you have notepad open go onto the next step.
Step 2: The Code!
Copy and paste this code:
Set Sapi = Wscript.CreateObject("SAPI.SpVoice")
Sapi.speak weekdayname(weekday(date))
Sapi.speak monthname(month(date))
Sapi.speak day(date)
Sapi.speak year(date)
Sapi.speak "Is the current date."
Sapi.speak "The current time is"
if hour(time) > 12 then
Sapi.speak hour(time)-12
else
if hour(time) = 0 then
Sapi.speak "12"
else
Sapi.speak hour(time)
end if
end if
if minute(time) < 10 then
Sapi.speak "o"
if minute(time) < 1 then
Sapi.speak "clock"
else
Sapi.speak minute(time)
end if
else
Sapi.speak minute(time)
end if
if hour(time) > 12 then
Sapi.speak "P.M."
else
if hour(time) = 0 then
if minute(time) = 0 then
Sapi.speak "Midnight"
else
Sapi.speak "A.M."
end if
else
if hour(time) = 12 then
if minute(time) = 0 then
Sapi.speak "Noon"
else
Sapi.speak "P.M."
end if
else
Sapi.speak "A.M."
end if
end if
end if
Step 3: Saving
After you copied the code we must save it. Go to
File>Save As
You can name it anything you want but it just has to end with the .vbs file extention or this in simple terms
Won't work.
Step 4: You're Done!
Well that wasn't so hard, was it? Now open your file...
Don't be spooked if it says the date and time. Thanks goes to SCRIPTmaster for this instructable that tought me how to use SAPI in scripts. Now go and put this in your robot or whatever.
Note: I am not responsible if your script goes wrong. You should have copied and pasted it in the first place. If when you try to run your script it gives you an error message try recopying the script. If that still doesn't work leave a comment and maybe we all can figure it out.
100 0010 111 1001 110 0101
14 Comments
7 years ago on Introduction
Btw where can i put this line "<pitch middle='15'>" on this script
I want to change the voice pitch
{Set voice = CreateObject("SAPI.SpVoice")
voice.Rate = -2
Voice.Volume = 100
voice.Speak"<pitch middle='15'>"" Good Morning"}
Reply 7 years ago on Introduction
The best way to figure these things out is to just try them and see for yourself. After looking into it (I haven't done VBS in years), it looks like that should work in the range [-25, 25].
Reply 7 years ago on Introduction
Ah I mean where i can put those line in this "VBS to read time"
i try to put my VBS script on "Sapi.speak minute(time)" into
"Sapi.speak"<pitch middle='15'>" minute(time) and got error
Reply 7 years ago on Introduction
You probably ran into an error because that wasn't concatenated. For the sake of simplicity, give the pitch its own line before you have it read the minutes separately on the next line.
Sapi.speak "<pitch middle=15>"
Sapi.speak minute(time)
Reply 7 years ago on Introduction
or is just impossible =_= i try that but still here i post the picture as well hope can help
Reply 7 years ago on Introduction
Sorry, that was my bad. From what I can tell in how you're using the SAPI object (I've never used this functionality myself, which explains why I forgot this), the 15 in
Sapi.speak "<pitch middle=15>"
should be surrounded by apostrophes like this
Sapi.speak "<pitch middle='15'>"
My guess is that it's just how the SAPI parser reads it, but I can't be certain. Hope that helps.
10 years ago on Step 2
amg!! ty so much!! i used this over and over cuz' it's so fun to do!!!!!!!!!!!!!!!!!!!!!!!!!!!! thankyouthankyouthankyou (p.s. my friends are talking about weird stuff in the background right now like smarty parties O.o)
10 years ago on Step 3
worked! but sound robotic..
11 years ago on Introduction
This is a really cool script! Thanks for posting it!
11 years ago on Step 4
how did you get to the speech properties?
Reply 11 years ago on Step 4
Start>Control Panel>Speech
Reply 11 years ago on Step 4
thanks!
12 years ago on Introduction
Nice script.
The only change I made was instead of saying every string as it was determined, I built a bigger string as the script executed, then at the very end issue one command to say that string. For example, instead of
Sapi.Speak hour(time)-12
I used
strSapi = strSapi & " " & hour(time)-12
and the last line of the script was:
Sapi.Speak strSapi
Made for a smoother output plus it works faster because you only need to make the speech api call once.
Also, my 'puter kept changing A.M. to "A meters", go figure, who'd a thunk the auto abbreviation expansion would go metric for my locale. I just changed that part of the string to be "A. M", adding a space before the M and removing the last period.
Nice to have this little script in my toolbox, I'm sure it will be useful down the road.
Jim
/* If you think the problem is bad now, wait until I fix it! */
Reply 12 years ago on Introduction
I never knew that because I don't understand string commands. Thanks! :) BTW did you ever notice how it would say things like February two instead of February second? Thats gonna be one long if then else end if statment. :P About A.M. my speech engine doesn't do that. ? Well at least you could fix it on your own. ;)