vishnuelectric / eyes-free

Automatically exported from code.google.com/p/eyes-free
0 stars 0 forks source link

Talkback doesn't play along nicely with other apps that use TTS with same voice #482

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Some apps provide some speech by directly directly programming to the TTS 
interface of Android. Previous versions of talkback, e.g. the stock version of 
5.1.1 will let those apps speak if Talkback has nothing to say. The current 
version of talkback (4.2 and 4.3Beta) will interrupt speech from these 
programs, especially if the speech of the app is triggered by pressing the 
screen. It looks as if talkback always resets the TTS even when there is no 
need for it.
1. Open a program like GetThere and press back to exit the program
2. The program will try to ask a question followed by a voice prompt, but it 
will fail.
3. suspend talkback and repeat 1 and 2

What is the expected output? What do you see instead?
I expect the question to be audible, even when talkback is running. In previous 
versions this was the case.

What version of the product are you using? On what operating system?
Talkback 4.2 and 4.3.1 Beta 2. They have the same issues.

Please provide any additional information below.

Original issue reported on code.google.com by henk.a...@gmail.com on 25 Sep 2015 at 9:54

GoogleCodeExporter commented 9 years ago
I was able to reproduce this problem in TalkBack version 4.3.1, with an 
extremely simple app.  The app has one activity, which has one button.  When 
the user presses the button, the app attempts to do TTS speech.  If TalkBack is 
turned off, then the speech happens correctly.  If TalkBack is turned on, then 
no speech is heard.  The app writes log entries that indicate, in both cases, 
success status on all TTS calls.

See attached code.

Original comment by lewlas...@gmail.com on 6 Oct 2015 at 9:42

Attachments:

GoogleCodeExporter commented 9 years ago
I just looked at the recently-opened source code for TalkBack.

Evidently, the code where TalkBack interrupts speech from other apps is in the 
method FailoverTextToSpeech.stopAll() .

The question that I would like to investigate is whether this code is, perhaps, 
being called overzealously, from the Java class SpeechController, in 
circumstances where TalkBack has nothing to say, but where it just wants to 
clear out its own, higher-level queue, without doing a SPEECH_FLUSH_ALL at the 
level of the underlying TTS engine.

Original comment by lewlas...@gmail.com on 7 Oct 2015 at 4:18

GoogleCodeExporter commented 9 years ago
Some possibly useful information:

I tested this issue with Android version 6.0, with TalkBack versions 4.3.0 and 
4.3.1 .  The issue does NOT occur with TalkBack version 4.3.0, but DOES occur 
with TalkBack version 4.3.1 .

Therefore (obviously) this was a side-effect of a code change in TalkBack 
version 4.3.1 .

Original comment by lewlas...@gmail.com on 22 Oct 2015 at 1:56