brailcom/speechd

`GenericMaxChunkLength` causes incomplete multibyte characters

Aperta

#806 aperta il 18 gen 2023

 (4 commenti) (0 reazioni) (0 assegnatari)C (86 fork)auto 404
buggood first issuehelp wanted

Metriche repository

Star
 (325 stelle)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

Steps to reproduce

Create /etc/speech-dispatcher/modules/test.conf

# GenericMaxChunkLength 300
GenericExecuteSynth "echo $DATA >> /tmp/tts.log"

GenericLanguage "en" "en" "utf-8"
GenericLanguage "zh" "zh" "utf-8"

AddVoice "en" "male1" "voice1"

Add configuration to /etc/speech-dispatcher/speechd.conf

AddModule "test-generic"  "sd_generic" "test.conf"

Restart speech-dispatcher and use test-generic

$ sudo killall speech-dispatcher

$ spd-say -o test-generic "ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇"

Obtained behavior

$ cat /tmp/tts.log
ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇〇〇〇〇〇〇〇ab〇〇〇�
��〇〇〇〇〇〇

Passing incomplete multibyte characters to external commands is likely to not work properly, and subsequent chunks will not even be recognized as UTF-8 strings.

Expected behavior

Do not break down multibyte characters.

The string should be broken down into chunks of the specified length in characters (not bytes).

Behavior information

speech-dispatcher.log

Distribution

Debian

Version of Speech-dispatcher

0.11.4

Guida contributor