speech-dispatcher-cs: Konfigurace generického výstupního modulu

 
 2.3.3.3 Konfigurace generického výstupního modulu
 .................................................
 
 Generický výstupní modul uživatelům dovoluje jednoduše si napsat vlastní
 jednoduchý výstupní modul pro syntetizéry, které mají rozhraní ve formě
 jednoduchého řádkového klienta, pouze modifikací konfiguračního souboru.
 Tímto způsobem nemusí psát žádný specifický kód v C a uživatelé si mohou
 přidávat podporu pro výstupní zařízení i když neumí programovat.  See
 AddModule.
 
    Klíčová část každého generického výstupního modulu je definice
 řetězce, který se má spouštět.
 
  -- Konfigurace generického modulu: GenericExecuteSynth
           "EXECUTION_STRING"
 
      'execution_string' je příkaz, který by měl být zavolán v shellu,
      když je potřeba něco říct.  Ve skutečnosti to může být více jak
      jeden příkaz, dohromady zřetězené operátorem '&&'.  Když bude
      výstupní modul chtít přeříkávání zprávy zastavit, zašle těmto
      procesům signál KILL, takže je důležité, aby použité příkazy po
      obdržení KILL okamžitě přestaly mluvit.  (Na většině GNU/Linuxových
      systémů má tuto vlastnost utilita 'play')
 
      V 'execution_string' můžete využít těchto proměnných, které budou
      nahrazeny pořadovanými hodnotami, než bude příkaz vykonán.
 
         * '$DATA' Text, který by měl být přeříkán.  Znaky řetězce, které
           by nějak interferovali se zpracováním v bashi budou
           automaticky nahrazeny odpovídajícími escape sekvencemi.  Asi
           bude ale nutné uvést kolem této proměnné uvozovky (např.
           takto: '\"$DATA\"').
         * '$LANG' Identifikační řetězec jazyka (ten je definován pomocí
           GenericLanguage).
         * '$VOICE' Identifikační řetězec hlasu (ten je definován pomocí
           AddVoice).
         * '$PITCH' Požadovaná výška hlasu (desetinné číslo definované v
           GenericPitchAdd a v GenericPitchMultiply)
         * '$RATE' Požadovaná rychlost hlasu (desetinné číslo definované
           v GenericRateAdd a v GenericRateMultiply)
 
      Tady je příklad z 'etc/speech-dispatcher/modules/epos-generic.conf'
           GenericExecuteSynth \
           "epos-say -o --language $LANG --voice $VOICE --init_f $PITCH --init_t $RATE \
           \"$DATA\" | sed -e s+unknown.*$++ >/tmp/epos-said.wav && play /tmp/epos-said.wav >/dev/null"
 
  -- Konfigurace generického modulu: AddVoice "LANGUAGE" "SYMBOLICNAME"
           "NAME"
      SeeAddVoice.
 
  -- Konfigurace generického modulu: GenericLanguage "iso-code"
           "string-subst"
 
      Definuje, jaký řetězec 'string-subst' by měl být nahrazen za
      '$LANG' pro daný 'iso-code' ISO kód jazyka.
 
      Opět příklad z Epos generic:
           GenericLanguage "en" "english"
           GenericLanguage "cs" "czech"
           GenericLanguage "sk" "slovak"
 
  -- Konfigurace generického modulu: GenericRateAdd NUM
  -- Konfigurace generického modulu: GenericRateMultiply NUM
  -- Konfigurace generického modulu: GenericPitchAdd NUM
  -- Konfigurace generického modulu: GenericPitchMultiply NUM
      Tyto parametry nastavují konverzi pro výpočet rychlosti a výšky.
      ('$RATE' a '$PITCH').
 
      Výsledná rychlost (nebo výška) je dána následujícím vzorcem:
              (speechd_rate * GenericRateMultiply) + GenericRateAdd
      kde speechd_rate je hodnota mezi -100 (nejnižší) a +100 (nejvyšší).
      Je třeba definovat nějakou rozumnou konverzi pro daný syntetizér.
 
      (Hodnoty v GenericNěcoMultiply jsou vynásobeny stem, protože
      stávající verze DotConfu nepodporuje desetinná čísla.  Můžete tedy
      psát 0.85 jako 85 atd.)