|
From: Jonathan D. <jo...@js...> - 2009-05-19 11:29:41
|
On 19 May, Reece Dunn <ms...@go...> wrote: > The eSpeak engine is using the speak_lib.h API. At the moment, there > are a few issues with the eSpeak engine: > * the speak_lib.h API does not report the sentence length, so > cannot correctly highlight the sentences being read. The events list which eSpeak passes to your SynthCallback() callback function includes events which indicate the start of each word and sentence (espeakEVENT_WORD and espeakEVENT_SENTENCE). So you can highlight each word or each sentence as it is being read. > * the speak_lib.h API does not support phrase events, so the UI > treats them the same as sentences. Please explain what you mean by a "phrase event". How do you define a "phrase"? You should be able to use the espeakEVENT_WORD events to match the current speaking position with words on your text, and therefore determine which phrase is being spoken. > * there is no pause functionality available in speak_lib.h, so this > option is disabled. You could implement pause by either of two methods: 1. Stop speaking, and note the position of the last word that was spoken (using the espeakEVENT_WORD event). To resume, start speaking from the next word in the text. or 2. Don't let your SynthCallback() function return until you want to resume speaking text. |