[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Search]

Emacspeak+freetts




This is all correct. In addition emacspeak TTS servers maintain
their own queue of text to be spoken because there is no point in
dumping a large amount of text at the engine, only to stop speech
after a couple of clauses.

So this is how things work:

Emacspeak queues text a clause at a time to the server and then
asks it to go process the queue.

The server takes things off the queue, sends it to the TTS
engine, waits for an acknowledgement and then sends the next
"chunk" from the queue.

While in the above loop the server responds to other requests
from the client (Emacspeak) so that stop-speech requests get
immediately processed.

All this is a fairly standard programming pattern when dealing
with multiple threads --- or alternatively multiple processes
--- for a good review, study the dequeue  (priority queues)
implementation in Python 2.4 

>>>>> "Tim" == Tim Cross <tcross@xxxxxxxxxxx> writes:
    Tim> Others may disagree, but here is my view on the benefits
    Tim> of queuing speech segments prior to having them spoken.
    Tim> 
    Tim> Many TTS engines are able to provide improved speech
    Tim> based on the context of the word. For example, providing
    Tim> slightly different inflection or a longer pause at the
    Tim> end of a sentence. Having more text in larger chunks
    Tim> increases the likelihood of being able to do this.
    Tim> 
    Tim> There is also an efficiency aspect. To some extent,
    Tim> there is a certain amount of overhead which occurs
    Tim> regardless of whether your synthasising one word or a
    Tim> whole sentence. You could think of this as a fixed cost
    Tim> of synthesis. With larger chungs of text, you are
    Tim> spreading this cost over more words, in effect reducing
    Tim> the cost per word. Another advantage of synthesising
    Tim> larger blocks is that it can provide smoother speech. In
    Tim> most cases, there will be some lag between sending the
    Tim> speech to be synthesised and getting the resulting
    Tim> sound.  If you do the synthesis one word at a time, you
    Tim> can get a slightly jerky sound because of extended
    Tim> delays between words occuring as the TTS does its
    Tim> thing. If you pass, for example, whole sentences to be
    Tim> processed at once, you don't get additional delays
    Tim> between the words and the overall speech sounds smoother
    Tim> and possibly more natural.
    Tim> 
    Tim> 
    Tim> Tim
    Tim> 
    Tim> Deepak Thomas writes:
    >> I was trying to enhance the funtionality of the speech
    >> server provided with the FreeTTS packageas as it does not
    >> implement all the functionality of the protocol specified
    >> at
    >> http://emacspeak.sourceforge.net/info/html/TTS-Servers.html
    >> 
    >> The main thing is that it handles the tts_say and the q
    >> text identically.  I.e ,when the speech server recevies
    >> the q text commands,it starts playback immediately.  It
    >> does not queue the text in any way.Also the d command is
    >> ignored ,it is not handled by the speech server. It would
    >> be really helpful if someone could shed some light about
    >> why some text strings are to be queued. And also the
    >> repurcursions of handling both the tts_say and the q
    >> command identically.
    >> 
    >> Thank you, Deepak &nbsp;I was trying to enhance the
    >> funtionality of the speech server provided <br>with the
    >> FreeTTS packageas as it&nbsp; does not implement all the
    >> functionality of the protocol specified at<br><a
    >> href="http://emacspeak.sourceforge.net/info/html/TTS-Servers.html"
    >> target="_blank" onclick="return
    >> top.js.OpenExtLink(window,event,this)">
    >> http://emacspeak.sourceforge.net/info/html/TTS-Servers.html</a><br><br>The
    >> main thing is that it handles the tts_say and the q text
    >> identically. I.e ,when the speech server recevies the q
    >> text commands,it starts playback immediately.  <br>It does
    >> not queue the text in any way.Also the d command is
    >> ignored ,it is not handled by the speech server. It would
    >> be really helpful if someone could shed some light about
    >> why some text strings are to be queued. And also the
    >> repurcursions of handling both the tts_say and the q
    >> command identically.  <br><br>Thank you,<br>Deepak
    Tim> 
    Tim> -----------------------------------------------------------------------------
    Tim> To unsubscribe from the emacspeak list or change your
    Tim> address on the emacspeak list send mail to
    Tim> "emacspeak-request@xxxxxxxxxxx" with a subject of
    Tim> "unsubscribe" or "help"

-- 
Best Regards,
--raman

      
Email:  raman@xxxxxxxxxxx
WWW:    http://emacspeak.sf.net/raman/
AIM:    emacspeak       GTalk: tv.raman.tv@xxxxxxxxxxx
PGP:    http://emacspeak.sf.net/raman/raman-almaden.asc
Google: tv+raman 

-----------------------------------------------------------------------------
To unsubscribe from the emacspeak list or change your address on the
emacspeak list send mail to "emacspeak-request@xxxxxxxxxxx" with a
subject of "unsubscribe" or "help"


Emacspeak Files | Subscribe | Unsubscribe | Search