• eSpeak - can't access file en_rules

    From Harriet Bazley@21:1/5 to All on Tue Mar 1 00:12:39 2022
    I've been playing around with creating an en_extra file inside !eSpeak
    in order to correct the program's pronunciation of various proper nouns,
    and managed to get it to work for a while, though the process is not
    exactly user-friendly.

    But when I tried to recompile it again after a few days' rest, I
    couldn't get anything other than the perplexing error "Can't access
    file"

    *show espeak*
    eSpeak$Dir : SCSI::SSD.$.Sound.!eSpeak
    *speak --compile=en
    Can't access (r) file 'en_rules'
    *

    If I try the other languages supplied, e.g. Polish, I just get the error
    "Can't access (r) file 'pl_rules'" etc. instead

    But the files are all still present (and unaltered by me) inside !eSpeak.dictsource, and the software is clearly able to locate the
    compiled versions in SCSI::SSD.$.Sound.!eSpeak.espeak-dat, because it's
    using the new pronunciations I supplied to it earlier on. I just appear
    to have lost the ability to make any further changes in some
    inexplicable fashion....

    I've tried RMKilling the Speak module, and resetting the computer in
    case it has its system variables confused. But it doesn't seem to make
    any difference; the *speak --compile command has stopped working.

    (The files are all listed as WR/ access by the RISC OS Filer - I don't
    know what "Can't access (r)" means in Linux-speak.)


    --
    Harriet Bazley == Loyaulte me lie ==

    We prefer to speak evil of ourselves than not speak of ourselves at all.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Harriet Bazley@21:1/5 to [email protected] on Tue Mar 1 23:16:59 2022
    XPost: comp.sys.acorn.programmer

    In message <[email protected]>, Harriet Bazley <[email protected]> wrote:

    I've been playing around with creating an en_extra file inside !eSpeak
    in order to correct the program's pronunciation of various proper nouns,
    and managed to get it to work for a while, though the process is not
    exactly user-friendly.

    But when I tried to recompile it again after a few days' rest, I
    couldn't get anything other than the perplexing error "Can't access
    file"

    *show espeak*
    eSpeak$Dir : SCSI::SSD.$.Sound.!eSpeak
    *speak --compile=en
    Can't access (r) file 'en_rules'
    *

    OK, I've had a blinding flash of inspiration and worked out the issue
    here - it works if you *set the current directory* from the command-line
    to !eSpeak.dictsource first... which I have very vague memories of doing
    for some reason or other during my original experimentation.

    So the module is looking for the literal file "en_rules" in the CSD,
    rather than in the location "<eSpeak$dir>.dictsource.en_rules". Probably
    the classic Unix/RISC OS directory separator problem? (Unless the code
    really is written only to operate on files in the root directory, which
    seems unlikely....)

    --
    Harriet Bazley == Loyaulte me lie ==

    If it's not broken, don't fix it.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)