From d935ef2e3c35dfc230b40e43a612ad29b7831a07 Mon Sep 17 00:00:00 2001 From: Storm Dragon Date: Mon, 9 Jun 2025 12:48:02 -0400 Subject: [PATCH] The fix for hopefully not reading all spaces broke review by character. Hopefully fix that. --- src/fenrirscreenreader/core/outputManager.py | 2 +- src/fenrirscreenreader/core/punctuationManager.py | 7 ++++--- src/fenrirscreenreader/core/speechDriver.py | 2 +- src/fenrirscreenreader/speechDriver/debugDriver.py | 2 +- src/fenrirscreenreader/speechDriver/genericDriver.py | 2 +- src/fenrirscreenreader/speechDriver/speechdDriver.py | 7 +++++-- 6 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/fenrirscreenreader/core/outputManager.py b/src/fenrirscreenreader/core/outputManager.py index 3967b19f..41a56456 100644 --- a/src/fenrirscreenreader/core/outputManager.py +++ b/src/fenrirscreenreader/core/outputManager.py @@ -101,7 +101,7 @@ class outputManager(): cleanText = self.env['runtime']['textManager'].replaceHeadLines(cleanText) cleanText = self.env['runtime']['punctuationManager'].proceedPunctuation(cleanText, ignorePunctuation) cleanText = re.sub(' +$', ' ', cleanText) - self.env['runtime']['speechDriver'].speak(cleanText) + self.env['runtime']['speechDriver'].speak(cleanText, True, ignorePunctuation) self.env['runtime']['debug'].writeDebugOut("Speak: "+ cleanText, debug.debugLevel.INFO) except Exception as e: self.env['runtime']['debug'].writeDebugOut("\"speak\" in outputManager.speakText ", debug.debugLevel.ERROR) diff --git a/src/fenrirscreenreader/core/punctuationManager.py b/src/fenrirscreenreader/core/punctuationManager.py index 89e9308e..76806627 100644 --- a/src/fenrirscreenreader/core/punctuationManager.py +++ b/src/fenrirscreenreader/core/punctuationManager.py @@ -65,15 +65,16 @@ class punctuationManager(): def isPuctuation(self, char): return char in self.env['punctuation']['PUNCTDICT'] def proceedPunctuation(self, text, ignorePunctuation=False): + if ignorePunctuation: + return text resultText = text resultText = self.useCustomDict(resultText, self.env['punctuation']['CUSTOMDICT']) if self.env['runtime']['settingsManager'].getSettingAsBool('general', 'emoticons'): resultText = self.useCustomDict(resultText, self.env['punctuation']['EMOTICONDICT'], ' ') currPunctLevel = '' - if not ignorePunctuation and self.env['runtime']['settingsManager'].getSetting('general', 'punctuationLevel').lower() in self.env['punctuation']['LEVELDICT']: + if self.env['runtime']['settingsManager'].getSetting('general', 'punctuationLevel').lower() in self.env['punctuation']['LEVELDICT']: currPunctLevel = self.env['punctuation']['LEVELDICT'][self.env['runtime']['settingsManager'].getSetting('general', 'punctuationLevel').lower()] - elif not ignorePunctuation: - # Only use fallback punctuation if ignorePunctuation is False + else: currPunctLevel = string.punctuation +' ยง' resultText = self.usePunctuationDict(resultText, self.env['punctuation']['PUNCTDICT'], currPunctLevel) resultText = self.removeUnused(resultText, currPunctLevel) diff --git a/src/fenrirscreenreader/core/speechDriver.py b/src/fenrirscreenreader/core/speechDriver.py index 2f6f55ef..969dcbf6 100644 --- a/src/fenrirscreenreader/core/speechDriver.py +++ b/src/fenrirscreenreader/core/speechDriver.py @@ -24,7 +24,7 @@ class speechDriver(): self.cancel() self._isInitialized = False - def speak(self,text, queueable=True): + def speak(self,text, queueable=True, ignorePunctuation=False): if not self._isInitialized: return if not queueable: diff --git a/src/fenrirscreenreader/speechDriver/debugDriver.py b/src/fenrirscreenreader/speechDriver/debugDriver.py index 2b1f34f6..d8b18051 100644 --- a/src/fenrirscreenreader/speechDriver/debugDriver.py +++ b/src/fenrirscreenreader/speechDriver/debugDriver.py @@ -22,7 +22,7 @@ class driver(speechDriver): self._isInitialized = False print('Speech Debug Driver: Shutdown') - def speak(self,text, queueable=True): + def speak(self,text, queueable=True, ignorePunctuation=False): if not self._isInitialized: return if not queueable: diff --git a/src/fenrirscreenreader/speechDriver/genericDriver.py b/src/fenrirscreenreader/speechDriver/genericDriver.py index 971f6c62..116806dd 100644 --- a/src/fenrirscreenreader/speechDriver/genericDriver.py +++ b/src/fenrirscreenreader/speechDriver/genericDriver.py @@ -52,7 +52,7 @@ class driver(speechDriver): self.cancel() self.textQueue.put(-1) - def speak(self,text, queueable=True): + def speak(self,text, queueable=True, ignorePunctuation=False): if not self._isInitialized: return if not queueable: diff --git a/src/fenrirscreenreader/speechDriver/speechdDriver.py b/src/fenrirscreenreader/speechDriver/speechdDriver.py index b711d9e7..c87a86c0 100644 --- a/src/fenrirscreenreader/speechDriver/speechdDriver.py +++ b/src/fenrirscreenreader/speechDriver/speechdDriver.py @@ -37,7 +37,7 @@ class driver(speechDriver): pass self._isInitialized = False - def speak(self,text, queueable=True): + def speak(self,text, queueable=True, ignorePunctuation=False): if not queueable: self.cancel() if not self._isInitialized: @@ -66,7 +66,10 @@ class driver(speechDriver): self.env['runtime']['debug'].writeDebugOut('speechDriver setVoice:' + str(e),debug.debugLevel.ERROR) try: - self._sd.set_punctuation(self._punct.NONE) + if ignorePunctuation: + self._sd.set_punctuation(self._punct.ALL) + else: + self._sd.set_punctuation(self._punct.NONE) except Exception as e: self.env['runtime']['debug'].writeDebugOut('speechDriver set_punctuation:' + str(e),debug.debugLevel.ERROR)