Some time horrible speech in Ubuntu 13.10 awailable Espeak and Speech-dispatcher
Hammer Attila
hammera at pickup.hu
Fri Nov 22 11:19:52 UTC 2013
Hi,
My local system I resolved the wrote problem.
I downloaded the Espeak source package in Saucy, and removed
/debian/patches/series file the sonic and Pulseaudio related patches.
My system I using since morning the modified Espeak package and not
happened any distortion with Orca and Speech-dispatcher in Ubuntu Saucy.
Previous day I first time removed only the sonic related patch without
good luck.
Have chance only the Pulseaudio related patch producing the problem, but
I choosed the safest way now my local system.
I attaching the two patches with I not applied my system when compiling
Saucy awailable Espeak from source.
Luke, can you little look this patches to we known full sure what patch
producing this distortion/fast speech related problem with some
undeterminable situations?
Only sonic patch remove not solved my machine the experienced problems,
but not tryed yet only remove the pulseaudio related patch and keep the
sonic related patch.
If the sonic related patch absolute clean and good, I doing an another
longer test the second combination.
Final, if we knowing what patch need absolute sure removing, I will be
opening a report in Launchpad and attaching a debdiff.
Attila
-------------- next part --------------
Description: Trigger speech start on final chunk of write
When espeak is used with pulseaudio, the last part of a line or other chunk
is not spoken because pa_stream_trigger needs to get called to start
speech. This is called if the buffer is full and writes are not
progressing. However nothing calls this for the last part of what's
being spoken. The contract for wave_write on the portaudio side
seems to start the stream, so do the same on pulse.
This patch takes advantage of the fact that calling pulse_free twice
in a row with no write causes a trigger. An alternative but larger
change would be to refactor that code out of pulse_free.
Author: Sam hartman <hartmans at debian.org>
---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:
--- espeak-1.46.02.orig/src/wave_pulse.cpp
+++ espeak-1.46.02/src/wave_pulse.cpp
@@ -731,6 +731,9 @@ size_t wave_write(void* theHandler, char
}
pulse_write(aBuffer, bytes_to_write);
+ //trigger
+ aTotalFreeMem = pulse_free();
+ aTotalFreeMem = pulse_free();
terminate:
pthread_mutex_unlock(&pulse_mutex);
-------------- next part --------------
Index: espeak/src/Makefile
===================================================================
--- espeak.orig/src/Makefile 2013-05-13 15:18:04.079656594 +1000
+++ espeak/src/Makefile 2013-05-13 15:18:04.075656594 +1000
@@ -73,21 +73,21 @@
speak_SOURCES = speak.cpp compiledict.cpp dictionary.cpp intonation.cpp \
readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \
synthdata.cpp synthesize.cpp translate.cpp mbrowrap.cpp \
- tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp klatt.cpp sonic.cpp
+ tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp klatt.cpp
libespeak_SOURCES = speak_lib.cpp compiledict.cpp dictionary.cpp intonation.cpp \
readclause.cpp setlengths.cpp numbers.cpp synth_mbrola.cpp \
synthdata.cpp synthesize.cpp translate.cpp mbrowrap.cpp \
tr_languages.cpp voices.cpp wavegen.cpp phonemelist.cpp \
- espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp klatt.cpp sonic.cpp
+ espeak_command.cpp event.cpp fifo.cpp $(WAVE) debug.cpp klatt.cpp
SRCS1=$(speak_SOURCES)
OBJS1=$(patsubst %.cpp,%.o,$(SRCS1))
-LIBS1=-lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS)
+LIBS1=-lstdc++ $(LIB_AUDIO) -lpthread $(EXTRA_LIBS) -lsonic
SRCS2=$(libespeak_SOURCES)
OBJS2=$(patsubst %.cpp,x_%.o,$(SRCS2))
-LIBS2=-lstdc++ $(LIB_AUDIO) -lpthread
+LIBS2=-lstdc++ $(LIB_AUDIO) -lpthread -lsonic
SRCS3 = espeak.cpp
OBJS3=$(patsubst %.cpp,%.o,$(SRCS3))
More information about the Ubuntu-accessibility
mailing list