[orca] Check for pauses-only results when generating speech



commit 1edd8174d158ae69c9455385312159db359cd752
Author: Joanmarie Diggs <jdiggs igalia com>
Date:   Wed Jan 6 12:35:45 2021 +0100

    Check for pauses-only results when generating speech
    
    For most accessible objects, we attempt to generate lots of things
    (e.g. role, relevant states, displayed text, selection, etc.) and
    by default we separate these pieces of information by pauses. In
    some cases (e.g. an empty paragraph) it is possible to generate
    results consisting solely of pauses. We don't want to treat that as
    actual results because it can cause other logic (e.g. saying "blank")
    to not kick in and lead to our speaking nothing.

 src/orca/speech_generator.py | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
---
diff --git a/src/orca/speech_generator.py b/src/orca/speech_generator.py
index 6f314bf26..f56fa55dd 100644
--- a/src/orca/speech_generator.py
+++ b/src/orca/speech_generator.py
@@ -114,7 +114,13 @@ class SpeechGenerator(generator.Generator):
         globalsDict['voice'] = self.voice
 
     def generateSpeech(self, obj, **args):
-        return self.generate(obj, **args)
+        rv = self.generate(obj, **args)
+        if rv and not list(filter(lambda x: not isinstance(x, Pause), rv)):
+            msg = 'SPEECH GENERATOR: Results for %s are pauses only' % obj
+            debug.println(debug.LEVEL_INFO, msg, True)
+            rv = []
+
+        return rv
 
     def _resultElementToString(self, element, includeAll=True):
         if debug.LEVEL_ALL < debug.debugLevel:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]