|
From: Reece D. <ms...@go...> - 2009-05-25 16:57:15
|
Hi, I have implemented progress completed for my orator TTS project when speaking/recording a file and have noticed the following in eSpeak: after a certain amount of text, the value of text_position reported by eSpeak appears to be reset to 0 despite passing the complete (mmapped) text to the speak function. For example, Mary Shelly's Frankenstein (http://www.gutenberg.org/files/84/84.txt) resets every 14.5% or so. This appears to be 65535, from printing out the value of text_position along with the % complete value (indeed, 441064/65535 = 0.14858, where 441064 is the length of Frankenstein). Therefore, it looks as if text_position is stored as a 16-bit value. However, this does not seem to be the case, as http://espeak.sourceforge.net/speak_lib.h shows text_position to be an int, and: printf("sizeof(int) = %d\n", sizeof(int)); gives: sizeof(int) = 4 where 4*8 = 32, not 16. Is eSpeak internally using 16-bit numbers? Is it chunking the data into 64K blocks? A bug? - Reece |