[Subject Prev][Subject Next][Thread Prev][Thread Next][Date Index][Thread Index]

[hts-users:03848] Warning on using a german locale and HTS-demo_CMU-ARCTIC-SLT for HTS 2.2


Hello all,

 

I just wanted to inform you of an issue that might be of relevance to you if you are building the HTS 2.2 CMU_ARCTIC demo on a system using a german locale

(or any locale which does not use “.” as a decimal separator).

 

The best solution the problem described below is just to set the locale to English or C.

 

Problem description:

 

Regarding this piece of code in data/Makefile :

 

$(STEP) -l `printf "%.0f" $${count}` -v 0.0 | \

$(X2X) +fs > tmp.head; \

count=`echo "0.025 * $(SAMPFREQ)" | $(BC) -l`; \

$(STEP) -l `printf "%.0f" $${count}` -v 0.0 | \

 

 

Behaviour using en-locale:

 

LANG=en_US.UTF-8

count=240.0

printf "%.0f" $count

240

 

Behaviour using de-locale:

 

LANG=de_AT.UTF-8

count=240.0

printf "%.0f" $count

-bash: printf: 240.0: invalid number

 

This will then be passed to step -l , which states:

“if l<0, generate infinite sequence”

This is not quite correct: l==0 also leads to an infinite sequence.

 

Something like atoi(“-bash: printf…”) returns 0, effectively resulting in step –l 0 which then produces an infinite signal and passes it to x2x, pumping up tmp.head until the process gets killed by the OS.

As tmp.head will be deleted afterwards you might only notice very long calculation times (and incorrect results of course).

 

Hope this will save someone some headache.

 

Regards

Markus

 


Follow-Ups
[hts-users:03849] Re: Warning on using a german locale and HTS-demo_CMU-ARCTIC-SLT for HTS 2.2, Keiichiro Oura