diff --git a/src/fenrirscreenreader/speechDriver/emacspeakDriver.py b/src/fenrirscreenreader/speechDriver/emacspeakDriver.py index 414d225f..0c7fb354 100644 --- a/src/fenrirscreenreader/speechDriver/emacspeakDriver.py +++ b/src/fenrirscreenreader/speechDriver/emacspeakDriver.py @@ -5,11 +5,8 @@ # By Chrys, Storm Dragon, and contributers. # generic driver -from subprocess import Popen, PIPE import pexpect -import ptyprocess import shlex -import sys import time from fenrirscreenreader.core import debug from fenrirscreenreader.core.speechDriver import speechDriver @@ -20,13 +17,11 @@ class driver(speechDriver): def initialize(self, environment): self.env = environment try: - #self.server = ptyprocess.PtyProcessUnicode.spawn(['/usr/bin/tclsh', self.env['runtime']['settingsManager'].getSetting('speech', 'serverPath')]) self.server = pexpect.spawn('tclsh ' + self.env['runtime']['settingsManager'].getSetting('speech', 'serverPath')) self._isInitialized = True except Exception as e: self.env['runtime']['debug'].writeDebugOut('speechDriver:initialize:' + str(e),debug.debugLevel.ERROR) - print(e) - + def shutdown(self): if self.server: try: @@ -40,16 +35,15 @@ class driver(speechDriver): if not queueable: self.cancel() try: - cleanText = shlex.split('tts_say "'+text.replace(',','')+'"') + cleanText = text + for c in '[]{}\\|_@#^*<>\"`~^': + cleanText.replace(c,'') + cleanText = shlex.split(cleanText) for idx, word in enumerate(cleanText): cleanText[idx] = word cleanText = ' '.join(cleanText) - #print(cleanText[0]) - #self.server.write('tts_say ' + '"' + cleanText[0] +'"\n') - #print(self.server.read(1000)) - #self.server.sendline('tts_say ' + '"' + cleanText + '"') + cleanText = 'tts_say \"' + cleanText +'\"' self.server.sendline(cleanText) - print(cleanText) except Exception as e: self.env['runtime']['debug'].writeDebugOut('speechDriver:speak:self.server.sendline():' + str(e),debug.debugLevel.ERROR) @@ -57,10 +51,7 @@ class driver(speechDriver): if not self._isInitialized: return try: - pass - #self.server.write('s\n') - #print(self.server.read(1000)) - #self.server.sendline('stop') + self.server.sendline('stop') except Exception as e: print(e) self.env['runtime']['debug'].writeDebugOut('speechDriver:cancel:self.server.sendline():' + str(e),debug.debugLevel.ERROR) @@ -69,14 +60,11 @@ class driver(speechDriver): if not self._isInitialized: return try: - pass - #self.server.write('tts_set_speech_rate ' + str(int(rate * 400)) + '\n') - #self.server.sendline('tts_set_speech_rate ' + str(int(rate * 400)) + '') + self.server.sendline('tts_set_speech_rate ' + str(int(rate * 400))) except Exception as e: self.env['runtime']['debug'].writeDebugOut('speechDriver:setRate:self.server.sendline():' + str(e),debug.debugLevel.ERROR) def setLanguage(self, language): if not self._isInitialized: return - #self.server.write('set_lang ' + language + '\n') - #self.server.sendline('set_lang ' + language + '') + self.server.sendline('set_lang ' + language)