On Sun, May 27, 2007 at 08:25:33PM +0300, Juhapekka Tolvanen wrote:
 
> Package: festvox-suopuhe-common
> Version: 1.0g-20051204-1
> Severity: important
> 
> How I am supposed to use this piece of crap^H^H^H^Hsoftware?

[...]

> Please fix 
> this before some angry (l)user of your software takes you behind some sauna!

Thank you for your bug report. Please consider being more polite
next time. Leaving out death threats would be a good start.

> Let's see a file /usr/share/doc/festvox-suopuhe-common/README.lj.gz
> 
> First I see it is in some ancient 8-bit charset. Meanwhile rest of the
> universe is quickly switching to UTF-8. I had to read that file in this way:
> 
> zcat README.lj.gz | iconv -f ISO-8859-15 -t UTF-8 | less

This file is from the upstream project, and latin1 / latin9 was much
more common at the time it was written. I will recode it into UTF-8 for
the next package version.

There's a much more serious problem with UTF-8, though: as I understand
it, non-ASCII characters are coded in the database as latin1 / latin9,
so trying to speak UTF-8 strings fails. This is unlikely to get fixed,
so the modern UTF-8 user is going to have to do some recoding anyway.

> WARNING
> No default voice found in ("/usr/share/festival/voices/")
> either no voices unpacked or voice-path is wrong
> Scheme interpreter will work, but there is no voice to speak with.
> WARNING

This indeed looks a bit scary. The festvox-suopuhe-* packages provide
the festival-voice virtual package, which is why you ended up with no
English voice at all. I will fix this in one way or another for the next
version, probably by making the Suopuhe packages recommend an English
voice package.

With or without an English voice, a simple (when you know it) way to
enable the Finnish voices is to call the voice_ -prefixed functions:

 festival> (voice_suo_fi_lj_diphone)
 suo_fi_lj_diphone
 festival> (voice_hy_fi_mv_diphone)
 hy_fi_mv_diphone

The default voice can also be set in ~/.festivalrc:

 (set! voice_default 'voice_suo_fi_lj_diphone)

which is good for eg. the text2wave utility.

The 'festival --language finnish' invocation sets the default language
to Finnish, but this only helps with the male voice.

I will add a README.Debian file describing the above issues (including the
UTF-8 problem), and giving some examples of playing text files and running
festival from a batch file. I hope this will satisfy your concerns.

> And then it works! But I still wonder, how I can add a pause defined in
> seconds.

One option is the SayPhones function: (SayPhones '(# #)) will "speak"
two silences of FP_duration (default 100 ms) each. The '#' symbol
is voice-specific, so it's better to grab it from the PhoneSet
description.

(It looks like you need to have at least two silences, festival segfaults
with just one.)

Here's a function definition for what you want:

 (define (say-silence seconds)
 "(say-silence SECONDS)
 Output SECONDS seconds of silence."
    (let ((old_duration FP_duration)
          (new_duration (* 500 seconds))
          (silence  (car (car (cdr (assoc 'silences (PhoneSet.description))))))
          (utterance))
        (set! FP_duration new_duration)
        (set! utterance (SayPhones (list silence silence)))
        (set! FP_duration old_duration)
        utterance
    ))

Hope this helps,
-- 
Niko Tyni   [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to