LINUX.ORG.RU
ФорумAdmin

Генератор речи торопится

 ,


0

3
# festival -v
festival: Festival Speech Synthesis System: 2.1:release November 2010

/etc/festival.scm

...
;; Debian-specific: Use aplay to play audio
;;;;(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")
;;;;(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -D plug:dmix -q -c 1 -t raw -f s16 -r $SR $FILE")
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Required_Format 'snd)


;;; Command for Asterisk begin
    (define (tts_textasterisk string mode)
    "(tts_textasterisk STRING MODE)
    Apply tts to STRING. This function is specifically designed for
    use in server mode so a single function call may synthesize the string.
    This function name may be added to the server safe functions."
    (let ((wholeutt (utt.synth (eval (list 'Utterance 'Text string)))))
    (utt.wave.resample wholeutt 8000)
    (utt.wave.rescale wholeutt 5)
    (utt.send.wave.client wholeutt)))
;;; Command for Asterisk end

;; set russian voice (comment the following 2 lines to use british_american)
(language_russian)
(set! voice_default 'voice_msu_ru_nsh_clunits)
 sh /usr/share/doc/festival/examples/festival.init start
При первом синтезе речи, первые слова произносятся очень быстро.
exten=> s,n,Festival( - Здравствуйте! Аркадий Петрович. Вы записаны на прием к доктору Чечерену)
Потом из кеша /var/lib/asterisk/festivalcache читает номр.

Где бяка спряталась?

UPD.:Ощущение, что он выигрывает время, увеличивая скорость диктора потраченное на время он-лайн синтеза.

★★★★★

Ответ на: комментарий от petav

Он на знак восклицания так реагировал.

Если у вас появляются проблемы с командой Festival, когда она пропускает часть Вашего текста, то этот метод может Вам помочь. А также, если у Вас сервер Asterisk сильно загружен, то, таким образом Вы можете разделить процессы, запустив синтез речи в фоне, и, через некоторое время, проиграть сгенерированные инструкции Вашему пользователю. Например:

(c) Команда Festival

petav ★★★★★ ()
Ответ на: комментарий от petav

Я не нашел способа поправить работу команды Festival. Предгенерация выход из этой беды.

[informator3]
exten => s,1,Answer
exten => s,n,Background(${File})
exten => s,n,Read(NUMBER,,1,,10)
exten => s,n,NoOp(Нажата клавиша ${NUMBER})
exten => s,n,System(echo Вы нажали ${NUMBER}|text2wave -eval '(voice_msu_ru_nsh_clunits)' -F 8000 -o tmp/test4.wav)
exten => s,n,Background(/tmp/test4)

petav ★★★★★ ()
Ответ на: комментарий от petav

Не знаю, в тему или нет. Есть опыт использования генерации речи из текста на основе АПИ гугла - очень неплохо получается. Минус один конечно - зависимость от внешнего сервиса, ну и интернет соответственно нужен быстрый.

awkaw ()
Ответ на: комментарий от awkaw

Festival тоже неплохо, если не командой Festival Asterisk, сравнимо с Гуглом. Если сил хватит сделаю универсальный макрос с выбором API синтезатора. Выложу.

petav ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.