<<< Back

Об "обделённых" пользователях Win-систем -- с точки зрения кэширования winTTS сообщений


tarasfrompir (2018-10-31 12:48:55):

нечего там мучатся оформляй однозначно

(0)
 
tarasfrompir (2018-10-31 12:54:39):

только думаю что надо просто остановится на мп3 и все

(0)
 
SergeJey (2018-11-01 11:40:16):

Отлично! Только если теперь однозначно можно будет определить наличие закэшированного файла, то можно даже не вызывать sapi-скрипт, а сразу отправлять файл на проигрывание через функцию playSound. А ещё было бы тогда здорово добавить инициирование события готовности файла кэша, как это сделано в модуле rhvoice, чтобы подписчики из других модулей могли его проиграть (терминалы наприример). Вот кусок кода из rhvoice:

                    if (file_exists($cached_filename)) {
                        processSubscriptions('SAY_CACHED_READY', array(
                            'level' => $level,
                            'tts_engine' => 'rhvoice',
                            'message' => $message,
                            'filename' => $cached_filename,
                        ));
                    }
(0)
 
tarasfrompir (2018-11-01 12:08:17):

я прошу прошения - но такого в модуле я не нашел

function processSubscription($event, &$details) {
    $this->getConfig();
    if ($event == 'SAY' && !$details['ignoreVoice']) {
        $level = $details['level'];
        $message = $details['message'];
        if ($level >= (int) getGlobal('minMsgLevel') && !IsWindowsOS()) {
            $out = '';
            $voice=$this->config['VOICE'];
            $use_spd = $this->config['USE_SPD'];
            $use_cache = $this->config['USE_CACHE'];
            if ($use_spd) {
                safe_exec('spd-say "'.$message.'" -w -y ' . $voice, 1, $out);
            } else {
             if ($use_cache) {
                 if (is_dir(ROOT . 'cms/cached')) {
                     $cached_filename = ROOT . 'cms/cached/voice/rh_' . md5($message) . '.wav';
                 } else {
                     $cached_filename = ROOT . 'cached/voice/rh_' . md5($message) . '.wav';
                 }

               if (!file_exists($cached_filename)) {
                safe_exec('echo "' . $message . '" | RHVoice-test -p ' . $voice . ' -o '.$cached_filename . ' && mplayer '.$cached_filename, 1, $out);
               } else {
                playSound($cached_filename,1);
               }
             } else {
                safe_exec('echo "' . $message . '" | RHVoice-test -p ' . $voice, 1, $out);
             }
            }
            $details['ignoreVoice'] = 1;
        }
        //...
    }
}
(0)
 
SergeJey (2018-11-01 12:17:24):

Точно... это изменение я для Яндекса загружал похоже. Сейчас загружу для rhvoice.

(0)
 
SergeJey (2018-11-01 12:26:49):

А нет, загружал: https://github.com/sergejey/majordomo-rhvoice/blob...

(0)
 

Please login to leave comments. Join us!