Hi!
    I just wanted to post the Python creation of speech which also has the 
needed load of the module for speech once created which is used only when 
the executable file has been made and you are not near any computer that has 
windoweyes installed or a windows speech package.

    For when the python file is first compiled you must be on a computer 
that has all the speech packages installed on besides Python.
Eventually all the needed software is loaded using the generated python 
file, or windoweyes.py file where the extension .py is called a module and 
is imported as a module.

    Python has this unique ability to generate a python file of the object 
you created and it is done automatically in the background. Once you have 
run the program and created the object, it also has a generated copy in a 
sub folder called gen, which is inside the comtypes sub folder which are all 
inside the python lib site packages sub folder.
This is done using the imported module below:
import win32com.client

    So below is the python code to do all the needed stuff and what is 
needed to import for most games and such.
Note: the sign called the pound or number sign, # is the python version for 
a comment line.
Remember that all python code is indent based.

# Load Modules
import pygame #The game module which has video and sound drivers.
from pygame.locals import *
from pygame.event import Event
import random, sys, os
import time
from math import *
#Import the client side commands and there constants name list:
from win32com.client import constants
import win32com.client
import BattleSapi5 #A modified version of SAPI engine.
#Below Reduces program Code Name Size and Generates Needed 3'rd Applications 
For Compiling .exe Files.
from comtypes.client import CreateObject
#If you did not use the from command above the code would have to be: 
comtypes.client.CreateObject each time you wanted to create an object.

# Fetch Generated Speech, if not trap the error:
#Fetch Windoweyes Engine:
try:
    from comtypes.gen import WindowEyes
except:
    print " Windoweyes Not Generated Yet "
#Fetch SAPI Windows Voices:
try:
    from comtypes.gen import SpeechLib
except:
    print " Speech Lib Not Generated Yet "
#Fix for no video device on XP machines placed in as Pygame 1.9.1 bug fix.
os.environ['SDL_VIDEODRIVER']='windib'

INIFile = 0
#Set Windoweyes voice parameter defaults:
# Below is the Windoweyes application model under the object model list:
#Trap error if computer did not install Windoweyes:
try:
    WeTts = CreateObject( "windoweyes.application")
#Same As:
#    WeTts = win32com.client.Dispatch("WindowEyes.Application")

#Now Make dictionary Keys For Speech:
    WeScreenVoice = {"v": WeTts.ActiveSettings.Screen.Tone, "rl": 
WeTts.ActiveSettings.Screen.Rate, "pl": WeTts.ActiveSettings.Screen.Pitch, 
"vl": WeTts.ActiveSettings.Screen.Volume}
    WeTtsDict[ "Org"] = WeScreenVoice
    WeVoices = True
    INIFile = WeTts.INIFile( myIniFile)
except:
    print
    print "Error!"
    print " No Windoweyes Voice Engine!"
    print

# Below works but using my sapi module.
#Creating or Fetch The SAPI Engine:
#tts = win32com.client.Dispatch("SAPI.SpVoice") #, constants.SVSFlagsAsync)
# Use my BattleSapi 5 module instead:
SapiVoices = False
try:
    tts = BattleSapi5.SynthDriver()
    tts.init()
    SYNC = tts._sync
    ASYNC = tts._async
    PURGE = tts._purge
    ISAFILE = tts._is_filename
    XML = tts._xml
    NOT_XML = tts._not_xml
    PERSIST = tts._persist_xml
    PUNC = tts._punc
    WAIT = tts._wait
    tts.setVolume( 100)
    tts.setRate( 1)
    SapiVoices = True
except:
    print
    print "Error!"
    print " No SAPI Voice Engine!"
    print
    SYNC = 0
    ASYNC = 1
    PURGE = 2
    PUNC = 64

#Save Windoweyes and SAPI engine flags Dictionary Keys:
WeTtsDict[ "weVoices"] = WeVoices
WeTtsDict[ "sapiVoices"] = SapiVoices
WeTtsDict[ "WeTts"] = WeTts
WeTtsDict[ "iniFile"] = INIFile
WeTtsDict[ "tts"] = tts

    The above dictionaries are used when needed inside the game or program 
you run. As I stated above, before creating the object modules I loaded the 
created versions of these modules in python code so they are the called upon 
when created if you have compiled the code inside an executable. By 
generating the python module version you now have windoweyes inside an 
exectable that can be transported any place you want to place it.
    You don't have to do all I did, just do it for Windoweyes and import 
only the windoweyes module at the top once it has been saved as a generated 
python module, Windoweyes.py

    I placed the error trap in for you have to skip the error to get to the 
create part. Once it has made the create part then the error trap will load 
the module and the create section will use it.
    As I stated this sequence is needed to have the game or script to run to 
install the python module version of Windoweyes. You must on the first run 
use a computer that has these speech libraries installed.
Once you have generated there python code version, you then do not need the 
voice engines installed, but still must have Python installed in order to 
find those modules.

    but,
    Once you have compiled the game or script as an executable, then you do 
not need any of them, Python, Windoweyes, nor SAPI engine on the computer 
that runs the executable.

    I use Pyinstaller for it is the best one out there and you can only use 
up to Python 2.7 using that installer.
Also Pygame module is best run using the Python 2.7 version.

    Hope my explanation is understandable.

        Bruce


---
This email has been checked for viruses by Avast antivirus software.
http://www.avast.com

_______________________________________________
Any views or opinions presented in this email are solely those of the author 
and do not necessarily represent those of Ai Squared.

For membership options, visit 
http://lists.window-eyes.com/options.cgi/scripting-window-eyes.com/archive%40mail-archive.com.
For subscription options, visit 
http://lists.window-eyes.com/listinfo.cgi/scripting-window-eyes.com
List archives can be found at 
http://lists.window-eyes.com/private.cgi/scripting-window-eyes.com

Reply via email to