Date   

[espeak-ng:master] reported: sluggish speech interruption #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #172 sluggish speech interruption
By sthibaul:

Hello,

I still got reports from user finding sluggish interruption. I tried various audio setups, and one which indeed brings me sluggish interruption seems to be when pcaudiolib is using alsa with mmap output. In that case, espeak-ng gets stuck inside the snd_pcm_writei call, apparently because there is not much room left in some kernel buffer, or some such. The recent patches thus do not improve things, since we're stuck having to wait for the 200ms of output being emitted.

I could reduce the issue strongly by reducing the buffer size of espeak-ng, in espeak_ng_InitializeOutput, e.g. to 50ms. Actually I'm surprised that the value is hardcoded such a high value as 200ms, while there are various studies which have shown that humans feel bad interactivity when latency is over 100ms. I'd argue to reduce the default buffer size to 50ms, which should only cost 4x more audio roundtrips, while improving latency considerably in cases where audio gets stuck


[espeak-ng:master] reported: sluggish speech interruption #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #172 sluggish speech interruption
By CMB:

I had pretty good luck setting the buffer size to 20 MS. Maybe 50 is a good compromise?

I'd also suggest reverting commit f9ab812e00549640ebf7d6f9416e151827ce5294 because this seems to make no difference, and I suspect that under the right conditions, it could actually cause loss of speech. I.E., if the audio device is closed and never reopened. As far as I can tell, that code path is basically not being exercised.


Updates to Github #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

2 New Commits:

[espeak-ng:master] By Reece H. Dunn <msclrhd@...>:
36d5a8b67b3e: Revert "Don't reset the parameters unless they have been set." This reverts commit 26e453dd2f2a1d32e628566e1915f49277167310.

Modified: CHANGELOG.md
Modified: src/libespeak-ng/speech.c


[espeak-ng:master] By Reece H. Dunn <msclrhd@...>:
a506dc52416d: Fix setting saved_parameters in espeak_ng_Initialize. This fixes a regression introduced in commit e341068d57dfec122cbb732b1a75c685d3fec059. This is needed for the case when espeak_Cancel is called before calling espeak_Synth.

Modified: CHANGELOG.md
Modified: src/libespeak-ng/speech.c


[espeak-ng:master] New Comment on Issue #171 monotonous speech by default when used as a lib?
By rhdunn:

Ah, you are correct! Thanks for taking the time to investigate this. I have pushed a proper fix now.


Updates to Github #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #171 monotonous speech by default when used as a lib?
By rhdunn:

NOTE: This was because the initialize function in eSpeak has a similar loop (does not set the saved_parameters). When merging/simplifying the logic, I thought those it was identical to the one in espeak_Initialize as the logic was duplicated.


2 New Commits:

[espeak-ng:master] By Reece H. Dunn <msclrhd@...>:
dae9cda060f3: Revert "issue 172: fix sluggish speech for stopped speech." This reverts commit f9ab812e00549640ebf7d6f9416e151827ce5294.

Modified: src/libespeak-ng/fifo.c
Modified: src/libespeak-ng/speech.c
Modified: src/libespeak-ng/speech.h


[espeak-ng:master] By Reece H. Dunn <msclrhd@...>:
d828156576d7: Reduce buffer length to 50mS and don't override it when using eSpeak for audio.

Modified: CHANGELOG.md
Modified: src/include/espeak-ng/speak_lib.h
Modified: src/libespeak-ng/speech.c


[espeak-ng:master] New Issue Created by sthibaul:
#172 sluggish speech interruption

Hello,

As reported on http://bugs.debian.org/848016 and https://www.spinics.net/lists/linux-speakup/msg60393.html , screen readers with espeak-ng are unusable because speech can't be interrupted promptly. This makes espeak-ng unusable.

Samuel


[espeak-ng:master] reported: sluggish speech interruption #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #172 sluggish speech interruption
By rhdunn:

I have made the following changes: * reverted f9ab812 per CMB's suggestion -- this was only added because it was present in espeak and was the point I noticed a regression in the audio. * set the default buffer length to 50mS per Samuel's suggestion. * removed the logic from espeak that overrides the buffer length when using espeak for audio.

Given the documented behaviour, I wonder if that was meant to be if buffer_length is 0 and using espeak for audio, set it to 200mS.

Regarding the overlapping audio, this may be due to the echo effect/buffer espeak adds to the audio in wavegen.c. The solution to this would be to reset/clear the echo buffer when espeak_Cancel is called.


Updates to Github #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Issue Created by sthibaul:
#194 lkjsdf

dflkjsdf


[espeak-ng:master] New Comment on Issue #194 lkjsdf
By rhdunn:

???


[espeak-ng:master] New Comment on Issue #194 lkjsdf
By sthibaul:

Errgl, so github did commit the bug report?! Sorry about the noise, it was just a test for github. It really behaves oddly with the w3m browser.


[espeak-ng:master] Issue #194 lkjsdf closed by sthibaul.


[espeak-ng:master] reported: lkjsdf #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #194 lkjsdf
By rhdunn:

No problem.


[espeak-ng:master] reported: sluggish speech interruption #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #172 sluggish speech interruption
By CMB:

Quoting from the documentation for espeak_Initialize() in the espeak 1.48 header:

buflength: The length in mS of sound buffers passed to the SynthCallback function. Value=0 gives a default of 200mS. This paramater is only used for AUDIO_OUTPUT_RETRIEVAL and AUDIO_OUTPUT_SYNCHRONOUS modes.

So if I understand correctly, in audio output playback mode, the buffer size is not tunable, and it is simply ignored. espeak will use the default of 200. In other modes (retrieval, synchronous), the buffer size is tunable, and 0 means use the default.


[espeak-ng:master] reported: Make the phoneme output more flexible #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #173 Make the phoneme output more flexible
By ValdisVitolins:

Regarding to subtires. espeak(-ng) interprets blank line as sentence separator, what is usually used in *.srt format. So, ``` espeak-ng -x -ven " One Two

Three

Four" says: w'0n t'u: Tr'i: f'o@ ``` or one and two in one sentence, but three and four in separate sentences.


[espeak-ng:master] new issue: multi-channel voice-component output for DSPs, mixing or debugging #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Issue Created by cmrdt:
#179 multi-channel voice-component output for DSPs, mixing or debugging

add command option to split voice into multiple channels?

  • voice-tone
  • voice-tone-roughness
  • consonants voiced
  • consonants unvoiced
  • breath

(time/pitch stretching, noise removal, compression, remastering)

if not, have to manually craft multiple voice variant files to maybe emulate


Updates to Github #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Issue Created by ValdisVitolins:
#195 Different non-Latin diacritized consonants are wrongly counted as doubled

if following rule a (C% u, then it passes also for 'aņša'. As workaround one can use character group (e.g. .L01 ņ and .L02 š) and ... (L01% ... (L02% rules instead.


[espeak-ng:master] New Issue Created by ValdisVitolins:
#195 Different non-Latin diacritized consonants are wrongly counted as doubled

if following rule a (C% u, then it passes also for 'aņša'. As workaround one can use character group (e.g. .L01 ņ and .L02 š) and ... (L01% ... (L02% rules instead.


[espeak-ng:master] New Comment on Issue #195 Different non-Latin diacritized consonants are wrongly considered as one doubled
By rhdunn:

The better approach would be to fix the logic in espeak-ng when processing C% rules.


[espeak-ng:master] reported: Different non-Latin diacritized consonants are wrongly considered as one doubled #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #195 Different non-Latin diacritized consonants are wrongly considered as one doubled
By ValdisVitolins:

Agree, but I want to highlight known caveats.


Updates to Github #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Issue Created by ValdisVitolins:
#196 Word end mark _ doesn't work properly with ~ character group.

.L01 ~ b c
.group a
 _L01) a       i  // this works
       a (L01_ u  // this doesn't work

Current workaround is added logic in dictionary.c file while (*p != RULE_GROUP_END) { ... that it always checks for word start or end, so adding _ has the same logic.


[espeak-ng:master] New Issue Created by ValdisVitolins:
#196 Word end mark _ doesn't work properly with ~ character group.

.L01 ~ b c
.group a
 _L01) a       i  // this works
       a (L01_ u  // this doesn't work

Current workaround is added logic in dictionary.c file while (*p != RULE_GROUP_END) { ... that it always checks for word start or end, so adding _ has the same logic.


Pull Request Opened #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng/espeak-ng] Pull request opened by ValdisVitolins:

#197 Some improvements for Latvian, code and documentation
Reece, can you mark issues related to language rules mark with appropriate tag? Thanks! Valdis


[espeak-ng:master] reported: Different non-Latin diacritized consonants are wrongly considered as one doubled #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #195 Different non-Latin diacritized consonants are wrongly considered as one doubled
By ValdisVitolins:

Actually... I got idea how to fix it.


Updates to Github #github

espeak-ng@groups.io Integration <espeak-ng@...>
 


Updates to Github #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] Label added to issue #156 Documentation lacks examples and man page by gnbl.


[espeak-ng:master] Label added to issue #156 Documentation lacks examples and man page by gnbl.


[espeak-ng:master] Label removed from issue #156 Documentation lacks examples and man page by gnbl.


[espeak-ng:master] Label added to issue #156 Documentation lacks examples and man page by gnbl.


[espeak-ng:master] Label added to issue #156 Documentation lacks examples and man page by gnbl.


[espeak-ng:master] Label removed from issue #163 [French] cerf should be pronounced sεʁ and not sεʁf by Shallowmallow.


[espeak-ng:master] Label added to issue #163 [French] cerf should be pronounced sεʁ and not sεʁf by Shallowmallow.


[espeak-ng:master] Label added to issue #180 make: src/espeak-ng: line 117: .../espeak/src/.libs/lt-espeak-ng: cannot execute binary file: Exec format error by midaszhou.


[espeak-ng:master] New Issue Created by midaszhou:
#180 make: src/espeak-ng: line 117: .../espeak/src/.libs/lt-espeak-ng: cannot execute binary file: Exec format error

Just cross compile espeak-ng for Openwrt, Errors arise at final make stage :

image


Updates to Github #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #180 Undefined reference to rpl_malloc
By rhdunn:

The build process uses the built espeak-ng program to build the dictionary and phoneme data. You could do the following:

  1. Build the program locally to build the dictionary and voice data (make).
  2. Build the espeak-ng and speak-ng programs with the library using cross compilation (make -B src/speak-ng src/espeak-ng).

The "undefined reference to rpl_malloc" error is an issue with the configure.ac script.


[espeak-ng:master] Label added to issue #179 multi-channel voice-component output for DSPs, mixing or debugging by cmrdt.


Updates to Github #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #178 upgrade internal audio quality (sample-rate & bit-depth)
By rhdunn:

The current voice data is already recorded at a low quality. That will not change for that voice. I intend on supporting other voices, where we can look at using better recordings to provide better audio quality.

I'm not keen on automatically detecting the sample rate. For Android, espeak does not have control over the audio as that is handled externally, so what you suggest is not possible. It would be better to provide different voices at different sample rates and then let the user select the voice they want.


[espeak-ng:master] Label added to issue #178 upgrade internal audio quality (sample-rate & bit-depth) by cmrdt.


[espeak-ng:master] Label added to issue #175 GUI for real-time custom voice-variant parameter tuning by cmrdt.


[espeak-ng:master] New Comment on Issue #175 GUI for real-time custom voice-variant parameter tuning
By rhdunn:

Something like this is what I intend to implement with the espeakedit replacement planned in issue #3.


[espeak-ng:master] Label removed from issue #172 sluggish speech interruption by sthibaul.


[espeak-ng:master] Label added to issue #172 sluggish speech interruption by sthibaul.


[espeak-ng:master] Label added to issue #155 Letter group of rules should allow to add "empty string" as one of possible options by ValdisVitolins.


Updates to Github #github

espeak-ng@groups.io Integration <espeak-ng@...>
 

[espeak-ng:master] New Comment on Issue #151 Compiling on Arch Linux
By rhdunn:

If you are building the dictionary file for the first time, it cannot read that file. This is to be expected.

The actual error you have is:

Error processing file '/home/alexander/archpackages/community/espeak/trunk/src/espeak-ng/espeak-ng-data/temp': No such file or directory.

NOTE: Building the voice and language data does not work when using multiple make jobs. You need to run:

make -j8 src/espeak-ng src/speak-ng
make

This is documented in the README file.


[espeak-ng:master] Label added to issue #151 Compiling on Arch Linux by xyproto.


[espeak-ng:master] Label added to issue #151 Compiling on Arch Linux by xyproto.


[espeak-ng:master] Label added to issue #151 Compiling on Arch Linux by xyproto.


[espeak-ng:master] Issue #151 Compiling on Arch Linux closed by xyproto.


[espeak-ng:master] Label added to issue #144 Creating an Ukrainian language for Espeak NG by Giovani93.


[espeak-ng:master] Label added to issue #132 Rhythm Types, Trochaic, Iambic by elspru.


[espeak-ng:master] Label added to issue #132 Rhythm Types, Trochaic, Iambic by elspru.


[espeak-ng:master] New Comment on Issue #146 Extended tracing of eSpeak NG rules (and other things)
By rhdunn:

Ideally, I don't want to litter the code with trace statements. The espeak codebase had something similar, but this made it harder to read and maintain the code. The problem I have with this is that typically what you need to trace varies depending on the problem you are debugging.


[espeak-ng:master] Issue #146 Extended tracing of eSpeak NG rules (and other things) closed by ValdisVitolins.


[espeak-ng:master] Label added to issue #146 Extended tracing of eSpeak NG rules (and other things) by ValdisVitolins.